mirror of
https://github.com/Prominence/grails-translations-plugin.git
synced 2026-01-09 19:06:41 +03:00
Code refactoring. Changed design for index page.
Minor changes...
This commit is contained in:
parent
c05cf24ba4
commit
34048f9525
@ -22,19 +22,19 @@ class TranslationsGrailsPlugin {
|
|||||||
// Extra (optional) plugin metadata
|
// Extra (optional) plugin metadata
|
||||||
|
|
||||||
// License: one of 'APACHE', 'GPL2', 'GPL3'
|
// License: one of 'APACHE', 'GPL2', 'GPL3'
|
||||||
// def license = "APACHE"
|
def license = "APACHE"
|
||||||
|
|
||||||
// Details of company behind the plugin (if there is one)
|
// Details of company behind the plugin (if there is one)
|
||||||
// def organization = [ name: "My Company", url: "http://www.my-company.com/" ]
|
// def organization = [ name: "My Company", url: "http://www.my-company.com/" ]
|
||||||
|
|
||||||
// Any additional developers beyond the author specified above.
|
// Any additional developers beyond the author specified above.
|
||||||
// def developers = [ [ name: "Joe Bloggs", email: "joe@bloggs.net" ]]
|
def developers = [ [ name: "Alexey Zinchenko", email: "prominence96@gmail.com" ]]
|
||||||
|
|
||||||
// Location of the plugin's issue tracker.
|
// Location of the plugin's issue tracker.
|
||||||
// def issueManagement = [ system: "JIRA", url: "http://jira.grails.org/browse/GPMYPLUGIN" ]
|
// def issueManagement = [ system: "JIRA", url: "http://jira.grails.org/browse/GPMYPLUGIN" ]
|
||||||
|
|
||||||
// Online location of the plugin's browseable source code.
|
// Online location of the plugin's browseable source code.
|
||||||
// def scm = [ url: "http://svn.codehaus.org/grails-plugins/" ]
|
def scm = [ url: "https://github.com/Prominence/grails-translations-plugin" ]
|
||||||
|
|
||||||
def doWithWebDescriptor = { xml ->
|
def doWithWebDescriptor = { xml ->
|
||||||
// TODO Implement additions to web.xml (optional), this event occurs before
|
// TODO Implement additions to web.xml (optional), this event occurs before
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package by.prominence.translations
|
package by.prominence.translations
|
||||||
|
|
||||||
class TranslationsOverviewController {
|
class TranslationsManagementController {
|
||||||
|
|
||||||
def bundleService
|
def bundleService
|
||||||
|
|
||||||
@ -9,23 +9,6 @@ class TranslationsOverviewController {
|
|||||||
render view: 'index', model: [bundles: bundleService.getBundles()]
|
render view: 'index', model: [bundles: bundleService.getBundles()]
|
||||||
}
|
}
|
||||||
|
|
||||||
def show() {
|
|
||||||
|
|
||||||
if (!params.bundleName) {
|
|
||||||
redirect action: 'index'
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
Bundle bundle = bundleService.findBundleByName(params.bundleName as String)
|
|
||||||
|
|
||||||
if (!bundle) {
|
|
||||||
render view: 'index', model: [message: g.message(code: 'plugin.translations.error.bundleNotFound', args: [params.bundleName as String])]
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
render view: 'show', model: [bundle: bundle]
|
|
||||||
}
|
|
||||||
|
|
||||||
def edit() {
|
def edit() {
|
||||||
|
|
||||||
if (!params.bundleName) {
|
if (!params.bundleName) {
|
||||||
@ -1,10 +0,0 @@
|
|||||||
plugin.translations.overview.index.page.title = Translations overview
|
|
||||||
plugin.translations.overview.show.page.title = Bundle {0}
|
|
||||||
plugin.translations.overview.edit.page.title = Edit {0} bundle
|
|
||||||
|
|
||||||
plugin.translations.totalRecords = Total: {0} records
|
|
||||||
plugin.translations.totalBundles = Total: {0} bundles
|
|
||||||
|
|
||||||
plugin.translations.error.bundleNotFound = Cannot find bundle <b>{0}</b>.
|
|
||||||
|
|
||||||
plugin.translations.action.save = Save
|
|
||||||
@ -7,4 +7,11 @@ plugin.translations.totalBundles = Total: {0} bundles
|
|||||||
|
|
||||||
plugin.translations.error.bundleNotFound = Cannot find bundle <b>{0}</b>.
|
plugin.translations.error.bundleNotFound = Cannot find bundle <b>{0}</b>.
|
||||||
|
|
||||||
plugin.translations.action.save = Save
|
plugin.translations.message.noBundles = There is no bundles in your application!
|
||||||
|
|
||||||
|
plugin.translations.action.save = Save
|
||||||
|
plugin.translations.action.edit = Edit
|
||||||
|
plugin.translations.action.export = Export
|
||||||
|
|
||||||
|
plugin.translations.header.bundleName = Bundle
|
||||||
|
plugin.translations.header.actions = Actions
|
||||||
@ -7,4 +7,11 @@ plugin.translations.totalBundles = Total: {0} bundles
|
|||||||
|
|
||||||
plugin.translations.error.bundleNotFound = Cannot find bundle <b>{0}</b>.
|
plugin.translations.error.bundleNotFound = Cannot find bundle <b>{0}</b>.
|
||||||
|
|
||||||
plugin.translations.action.save = Save
|
plugin.translations.message.noBundles = There is no bundles in your application!
|
||||||
|
|
||||||
|
plugin.translations.action.save = Save
|
||||||
|
plugin.translations.action.edit = Edit
|
||||||
|
plugin.translations.action.export = Export
|
||||||
|
|
||||||
|
plugin.translations.header.bundleName = Bundle
|
||||||
|
plugin.translations.header.actions = Actions
|
||||||
@ -7,4 +7,11 @@ plugin.translations.totalBundles = Всего: {0} бандлов
|
|||||||
|
|
||||||
plugin.translations.error.bundleNotFound = Бандл с именем <b>{0}</b> не найден.
|
plugin.translations.error.bundleNotFound = Бандл с именем <b>{0}</b> не найден.
|
||||||
|
|
||||||
plugin.translations.action.save = Сохранить
|
plugin.translations.message.noBundles = В вашем приложении нет бандлов!
|
||||||
|
|
||||||
|
plugin.translations.action.save = Сохранить
|
||||||
|
plugin.translations.action.edit = Редактировать
|
||||||
|
plugin.translations.action.export = Экспорт
|
||||||
|
|
||||||
|
plugin.translations.header.bundleName = Бандл
|
||||||
|
plugin.translations.header.actions = Действия
|
||||||
@ -5,9 +5,13 @@
|
|||||||
<title><g:layoutTitle default="Translations overview" /></title>
|
<title><g:layoutTitle default="Translations overview" /></title>
|
||||||
<r:layoutResources/>
|
<r:layoutResources/>
|
||||||
</head>
|
</head>
|
||||||
<g:layoutBody />
|
|
||||||
<r:layoutResources/>
|
<r:layoutResources/>
|
||||||
|
<link rel="stylesheet" href="${resource(dir: 'css', file: 'translations.css')}" type="text/css">
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
<div class="container main-container">
|
||||||
|
<g:layoutBody />
|
||||||
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
63
grails-app/views/translationsManagement/index.gsp
Normal file
63
grails-app/views/translationsManagement/index.gsp
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<%@ page contentType="text/html;charset=UTF-8" %>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta name="layout" content="main"/>
|
||||||
|
<title><g:message code="plugin.translations.overview.index.page.title" /></title>
|
||||||
|
<r:require modules="bootstrap"/>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="raw">
|
||||||
|
<h2 align="center"><g:message code="plugin.translations.overview.index.page.title"/></h2>
|
||||||
|
<g:if test="${message}">
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
${message}
|
||||||
|
</div>
|
||||||
|
</g:if>
|
||||||
|
<g:if test="${bundles}">
|
||||||
|
<table class="table table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td>#</td>
|
||||||
|
<td width="95%" colspan="2">
|
||||||
|
<g:message code="plugin.translations.header.bundleName"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<g:each in="${bundles}" var="bundle" status="index">
|
||||||
|
<tr>
|
||||||
|
<td width="5%">
|
||||||
|
${index + 1}
|
||||||
|
</td>
|
||||||
|
<td width="75%">
|
||||||
|
<b>${bundle.name}</b>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="action-buttons">
|
||||||
|
<g:link action="edit" params="${[bundleName: bundle.name]}"
|
||||||
|
class="btn btn-default">
|
||||||
|
<g:message code="plugin.translations.action.edit"/>
|
||||||
|
</g:link>
|
||||||
|
<g:link action="export" params="${[bundleName: bundle.name]}"
|
||||||
|
class="btn btn-primary">
|
||||||
|
<g:message code="plugin.translations.action.export"/>
|
||||||
|
</g:link>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</g:each>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="total">
|
||||||
|
<g:message code="plugin.translations.totalBundles" args="${[bundles.size()]}"/>
|
||||||
|
</div>
|
||||||
|
</g:if>
|
||||||
|
<g:else>
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
<g:message code="plugin.translations.message.noBundles"/>
|
||||||
|
</div>
|
||||||
|
</g:else>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -1,27 +0,0 @@
|
|||||||
<%@ page contentType="text/html;charset=UTF-8" %>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta name="layout" content="main"/>
|
|
||||||
<title><g:message code="plugin.translations.overview.index.page.title" /></title>
|
|
||||||
<r:require modules="bootstrap"/>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<g:if test="${message}">
|
|
||||||
<div class="alert alert-danger">
|
|
||||||
${message}
|
|
||||||
</div>
|
|
||||||
</g:if>
|
|
||||||
<g:if test="${bundles}">
|
|
||||||
<ol>
|
|
||||||
<g:each in="${bundles}" var="bundle">
|
|
||||||
<li><g:link action="show" params="${[bundleName: bundle.name]}" >${bundle.name}</g:link></li>
|
|
||||||
</g:each>
|
|
||||||
</ol>
|
|
||||||
<g:message code="plugin.translations.totalBundles" args="${[bundles.size()]}"/>
|
|
||||||
</g:if>
|
|
||||||
<g:else>
|
|
||||||
There is no bundles!
|
|
||||||
</g:else>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
<%@ page contentType="text/html;charset=UTF-8" %>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta name="layout" content="main"/>
|
|
||||||
<title><g:message code="plugin.translations.overview.show.page.title" args="${[bundle.name]}" /></title>
|
|
||||||
<r:require modules="bootstrap"/>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<h1><g:message code="plugin.translations.overview.show.page.title" args="${[bundle.name]}" /></h1>
|
|
||||||
<br/>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<g:each in="${bundle.languages}" var="language">
|
|
||||||
<th>${language.languageTag.toUpperCase()}</th>
|
|
||||||
</g:each>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<g:each in="${bundle.languages}" var="language">
|
|
||||||
<td>
|
|
||||||
<g:each in="${language.translations}" var="translation">
|
|
||||||
${translation.key} = ${translation.value} </br>
|
|
||||||
</g:each>
|
|
||||||
</td>
|
|
||||||
</g:each>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<g:each in="${bundle.languages}" var="language">
|
|
||||||
<td><g:message code="plugin.translations.totalRecords" args="${language.translations.size() ?: '0'}"/></td>
|
|
||||||
</g:each>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
36
web-app/css/translations.css
Normal file
36
web-app/css/translations.css
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
html {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #222222;
|
||||||
|
color: #e3e3e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-container {
|
||||||
|
margin-top: 10%;
|
||||||
|
border: #000 solid 1px;
|
||||||
|
background-color: #707070;
|
||||||
|
padding: 10px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.total {
|
||||||
|
margin: 10px;
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-buttons {
|
||||||
|
padding-top: 1px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-hover tbody tr:hover {
|
||||||
|
color: #111;
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user