Author: tchemit Date: 2011-11-19 15:29:57 +0100 (Sat, 19 Nov 2011) New Revision: 97 Url: http://forge.codelutin.com/repositories/revision/echobase/97 Log: Revue rapide de dbEditor, faut revoir l'import-export c'est pas du tout user friendly :( Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable-doImport-validation.xml trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/modifImportResult.jsp Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java (rev 0) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java 2011-11-19 14:29:57 UTC (rev 97) @@ -0,0 +1,95 @@ +/* + * #%L + * EchoBase :: UI + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package fr.ifremer.echobase.ui.actions.dbeditor; + +import com.google.common.collect.Maps; +import fr.ifremer.echobase.entities.meta.ColumnMeta; +import fr.ifremer.echobase.entities.meta.DbMeta; +import fr.ifremer.echobase.entities.meta.TableMeta; +import fr.ifremer.echobase.services.DbEditorService; +import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; +import java.util.Map; + +import static org.nuiton.i18n.I18n.l_; + +/** + * A abstract action which can load the table names and a selected table + * meta datas. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public abstract class AbstractLoadPage extends EchoBaseActionSupport { + + private static final long serialVersionUID = 1L; + + /** Name of the table to load. */ + protected String tableName; + + /** All tables availables */ + protected Map<String, String> tableNames; + + /** Metas of the table */ + protected TableMeta tableMeta; + + public Map<String, String> getTableNames() { + return tableNames; + } + + public List<ColumnMeta> getColumnMetas() { + return tableMeta.getColumns(); + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getTableName() { + return tableName; + } + + public void load() throws Exception { + tableNames = Maps.newTreeMap(); + DbMeta dbMeta = getEchoBaseApplicationContext().getDbMeta(); + for (TableMeta tableMeta : dbMeta) { + String name = tableMeta.getName(); + String i18nKey = tableMeta.getI18nKey(); + tableNames.put(name, l_(getLocale(), i18nKey)); + } + if (StringUtils.isEmpty(tableName)) { + + // no table selected + addActionMessage(_("echobase.info.no.table.selected")); + } else { + + // load table metas + DbEditorService dbEditorService = newService(DbEditorService.class); + tableMeta = dbEditorService.getTableMetas(tableName); + } + } + +} Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java 2011-11-19 14:10:49 UTC (rev 96) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java 2011-11-19 14:29:57 UTC (rev 97) @@ -2,8 +2,8 @@ * #%L * EchoBase :: UI * - * $Id: GetEntities.java 51 2011-11-13 16:20:45Z tchemit $ - * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/java/... $ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2011 Ifremer, Codelutin * %% @@ -50,8 +50,14 @@ /** Default file name to create. */ protected String fileName; + + /** WTF ? */ protected InputStream inputStream; + + /** WTF ? */ protected long contentLength; + + /** WTF ? */ protected String contentType; public void setTableName(String tableName) { Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java 2011-11-19 14:10:49 UTC (rev 96) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java 2011-11-19 14:29:57 UTC (rev 97) @@ -23,9 +23,13 @@ */ package fr.ifremer.echobase.ui.actions.dbeditor; +import com.google.common.collect.Maps; +import fr.ifremer.echobase.entities.meta.ColumnMeta; +import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.services.DbEditorService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import java.util.List; import java.util.Map; /** @@ -36,6 +40,8 @@ */ public class GetEntity extends EchoBaseActionSupport { + private static final long serialVersionUID = 1L; + /** Name of the table to load. */ protected String tableName; @@ -45,6 +51,9 @@ /** Datas of the given table. */ protected Map<?, ?> datas; + /** Universe of columns metat datas of the selected entity type. */ + protected Map<String, ColumnMeta> metas; + public void setTableName(String tableName) { this.tableName = tableName; } @@ -57,6 +66,10 @@ return datas; } + public Map<String, ColumnMeta> getMetas() { + return metas; + } + @Override public String execute() throws Exception { @@ -64,6 +77,12 @@ datas = dbEditorService.getData(tableName, id); + TableMeta table = serviceContext.getDbMeta().getTable(tableName); + List<ColumnMeta> columnMetas = table.getColumns(); + metas = Maps.newHashMap(); + for (ColumnMeta columnMeta : columnMetas) { + metas.put(columnMeta.getName(), columnMeta); + } return SUCCESS; } } Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java 2011-11-19 14:10:49 UTC (rev 96) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java 2011-11-19 14:29:57 UTC (rev 97) @@ -2,8 +2,8 @@ * #%L * EchoBase :: UI * - * $Id: GetEntities.java 51 2011-11-13 16:20:45Z tchemit $ - * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/java/... $ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2011 Ifremer, Codelutin * %% @@ -36,48 +36,54 @@ /** * To import datas from import file. - * + * <p/> * FIXME 20111117 sletellier : extends {@link LoadEntities} find a better way to redirect to dbeditor page on validation error * UPDATE 20111118 sletellier : with {@link @InputConfig} probleme is solve ? dbeditor root page is prepared only on validation error... * * @author sletellier <letellier@codelutin.com> * @since 0.1 */ -public class ImportTable extends LoadEntities { +public class ImportTable extends AbstractLoadPage { private static final long serialVersionUID = 1L; /** Logger. */ private static final Log log = LogFactory.getLog(ImportTable.class); - protected File modifImport; - protected String modifImportContentType; - protected String modifImportFileName; + /** WTF ? */ + protected File importFile; + /** WTF ? */ + protected String importFileContentType; + + /** WTF ? */ + protected String importFileFileName; + + /** WTF ? */ protected List<PropertyDiff[]> propertyDiffs; - public File getModifImport() { - return modifImport; + public File getImportFile() { + return importFile; } - public void setModifImport(File modifImport) { - this.modifImport = modifImport; + public void setImportFile(File importFile) { + this.importFile = importFile; } - public String getModifImportContentType() { - return modifImportContentType; + public String getImportFileContentType() { + return importFileContentType; } - public void setModifImportContentType(String modifImportContentType) { - this.modifImportContentType = modifImportContentType; + public void setImportFileContentType(String importFileContentType) { + this.importFileContentType = importFileContentType; } - public String getModifImportFileName() { - return modifImportFileName; + public String getImportFileFileName() { + return importFileFileName; } - public void setModifImportFileName(String modifImportFileName) { - this.modifImportFileName = modifImportFileName; + public void setImportFileFileName(String importFileFileName) { + this.importFileFileName = importFileFileName; } public List<PropertyDiff[]> getPropertyDiffs() { @@ -87,19 +93,26 @@ return propertyDiffs; } - public void setPropertyDiffs(List<PropertyDiff[]> propertyDiffs) { - this.propertyDiffs = propertyDiffs; +// public void setPropertyDiffs(List<PropertyDiff[]> propertyDiffs) { +// this.propertyDiffs = propertyDiffs; +// } + + @Override + public String input() throws Exception { + load(); + return INPUT; } @Override - @InputConfig(methodName = "input") // to call inpu method on validation error to initialize dbeditor page + @InputConfig(methodName = "input") + // to call input method on validation error to initialize dbeditor page public String execute() throws Exception { DbEditorService dbEditorService = newService(DbEditorService.class); try { propertyDiffs = dbEditorService.importDatas(tableName, - modifImport, + importFile, getEchoBaseSession().getEchoBaseUser()); } catch (Exception eee) { @@ -110,15 +123,15 @@ return ERROR; } for (PropertyDiff[] diffs : propertyDiffs) { - for (PropertyDiff diff : diffs) { - String msg = _("echobase.message.modified.property", - diff.getSourceProperty(), - diff.getSourceValue(), - diff.getTargetValue()); + for (PropertyDiff diff : diffs) { + String msg = _("echobase.message.modified.property", + diff.getSourceProperty(), + diff.getSourceValue(), + diff.getTargetValue()); - log.info(msg); + log.info(msg); - addActionMessage(msg); + addActionMessage(msg); } } Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java 2011-11-19 14:10:49 UTC (rev 96) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java 2011-11-19 14:29:57 UTC (rev 97) @@ -23,89 +23,26 @@ */ package fr.ifremer.echobase.ui.actions.dbeditor; -import com.google.common.collect.Maps; -import com.opensymphony.xwork2.Preparable; import fr.ifremer.echobase.entities.meta.ColumnMeta; -import fr.ifremer.echobase.entities.meta.DbMeta; -import fr.ifremer.echobase.entities.meta.TableMeta; -import fr.ifremer.echobase.services.DbEditorService; -import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; -import org.apache.commons.lang3.StringUtils; -import java.util.List; -import java.util.Map; - -import static org.nuiton.i18n.I18n.l_; - /** * To load the db editor pages. * * @author tchemit <chemit@codelutin.com> * @since 0.1 */ -public class LoadEntities extends EchoBaseActionSupport { +public class LoadEntities extends AbstractLoadPage { private static final long serialVersionUID = 1L; - /** Name of the table to load. */ - protected String tableName; - - /** All tables availables */ - protected Map<String, String> tableNames; - - /** Metas of the table */ - protected TableMeta tableMeta; - - public Map<String, String> getTableNames() { - return tableNames; - } - - public List<ColumnMeta> getColumnMetas() { - return tableMeta.getColumns(); - } - - public void setTableName(String tableName) { - this.tableName = tableName; - } - - public String getTableName() { - return tableName; - } - @Override public String input() throws Exception { - tableNames = Maps.newTreeMap(); - DbMeta dbMeta = getEchoBaseApplicationContext().getDbMeta(); - for (TableMeta tableMeta : dbMeta) { - String name = tableMeta.getName(); - String i18nKey = tableMeta.getI18nKey(); - tableNames.put(name, l_(getLocale(), i18nKey)); - } - if (StringUtils.isEmpty(tableName)) { - - // no table selected - addActionMessage(_("echobase.info.no.table.selected")); - } else { - - // load table metas - DbEditorService dbEditorService = newService(DbEditorService.class); - tableMeta = dbEditorService.getTableMetas(tableName); - } + load(); return INPUT; } - public String getEditType(ColumnMeta meta) { - String editType="text"; - if (meta.isBoolean()) { - editType = "checkbox"; - } else if (meta.isDate()) { - editType = "select"; - } - return editType; - } - public String getFormatter(ColumnMeta meta) { - String editType="'string'"; + String editType = "'string'"; if (meta.isBoolean()) { editType = "'checkbox'"; } else if (meta.isFK()) { Modified: trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml =================================================================== --- trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2011-11-19 14:10:49 UTC (rev 96) +++ trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2011-11-19 14:29:57 UTC (rev 97) @@ -65,13 +65,13 @@ <result type="json"/> </action> - <!-- save the modified entity (no result as a grid json edit action)--> + <!-- Save the modified entity (no result as a grid json edit action)--> <action name="editTableData" class="fr.ifremer.echobase.ui.actions.dbeditor.SaveEntity"> <result name="success" type="redirectToDbEditor"/> </action> - <!-- save the modified entity (no result as a grid json edit action)--> + <!-- Import some entities from a csv file --> <action name="doImport" class="fr.ifremer.echobase.ui.actions.dbeditor.ImportTable"> <interceptor-ref name="paramsPrepareParamsStackLoggued"/> <result>/WEB-INF/jsp/dbeditor/modifImportResult.jsp</result> @@ -79,7 +79,7 @@ <result name="error">/WEB-INF/jsp/dbeditor/modifImportResult.jsp</result> </action> - <!-- save the modified entity (no result as a grid json edit action)--> + <!-- Export a selected entity type to a csv file --> <action name="doExport" class="fr.ifremer.echobase.ui.actions.dbeditor.ExportTable"> <interceptor-ref name="paramsPrepareParamsStackLoggued"/> Modified: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable-doImport-validation.xml =================================================================== --- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable-doImport-validation.xml 2011-11-19 14:10:49 UTC (rev 96) +++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable-doImport-validation.xml 2011-11-19 14:29:57 UTC (rev 97) @@ -26,10 +26,10 @@ "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> - <field name="modifImport"> + <field name="importFile"> <field-validator type="required"> - <message key="echobase.validation.dbeditor.modifImport.required"/> + <message key="echobase.error.importFile.required"/> </field-validator> </field> Property changes on: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable-doImport-validation.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties =================================================================== --- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2011-11-19 14:10:49 UTC (rev 96) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2011-11-19 14:29:57 UTC (rev 97) @@ -6,7 +6,9 @@ echobase.action.delete=Suppression echobase.action.deleteSqlQuery=Supprimer la requête echobase.action.exportSqlData=Exporter les données +echobase.action.exportTable=Exporter echobase.action.import=Importer +echobase.action.importTable=Importer echobase.action.locale.english=Anglais echobase.action.locale.french=Français echobase.action.login=Connection @@ -21,6 +23,7 @@ echobase.common.embeddedWarFileName=Nom du war à utiliser echobase.common.exportFileName=Nom du fichier d'export echobase.common.import=Import configuration +echobase.common.importFile=Fichier à importer echobase.common.jdbcLogin=Login de connexion echobase.common.jdbcPassword=Mot de passe echobase.common.jdbcUrl=Url de connexion @@ -36,16 +39,14 @@ echobase.common.voyage=Voyage echobase.common.voyagesToSelect=Voyage à exporter echobase.dbEditor.propertyDiffsResult=Nombres d'entrées modifiés \: %s -echobase.dbeditor.create=Création de '%s' echobase.dbeditor.edit=Edition de '%s' -echobase.dbeditor.export=Exporter -echobase.dbeditor.import=Importer echobase.embeddedApplication.configuration=Configuration de l'application embarquée echobase.error.bad.password=Mot de passe incorrrect echobase.error.email.already.used= echobase.error.fileDontExist= echobase.error.fileNotFound= echobase.error.importArgument= +echobase.error.importFile.required=Fichier d'import obligatoire echobase.error.login.unknown=Utilisateur inconnu echobase.error.required.email=L'email est obligatoire echobase.error.required.password=Le mot de passe est obligatoire @@ -81,6 +82,7 @@ echobase.menu.users=Gérer les utilisateurs echobase.message.askAdministratorPassword=Demander à un administrateur le mot de passe pour l'utilisateur donné echobase.message.modified.property=Propriété '%s', ancienne valeur \: %s, nouvelle valeur \: %s +echobase.message.no.row.selected=Aucune donnée sélectionnée echobase.message.noEntrySelection=Aucune entrée sélectionnée echobase.msg.warnImportInProgress=Merci de ne pas fermer la fenêtre pour pouvoir accéder aux résultats de l'import. echobase.sqlQuery.configuration=Configuration de la requête Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2011-11-19 14:10:49 UTC (rev 96) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2011-11-19 14:29:57 UTC (rev 97) @@ -25,10 +25,13 @@ <%@ taglib prefix="sj" uri="/struts-jquery-tags" %> <%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %> +<script type="text/javascript" + src="<s:url value='/js/gridHelper.js' />"></script> + <s:url id="reloadUrl" action="dbeditor" namespace="/dbeditor"/> <s:url id="getTableData" action="getTableData" namespace="/dbeditor"/> -<s:set name="tableSelected" value="%{tableName == null}"/> +<s:set name="tableSelected" value="%{tableName != null && tableName != ''}"/> <title><s:text name="echobase.title.dbEditor"/></title> @@ -47,82 +50,94 @@ this.name = this.id; }); + // on table name change, let's reload reload this page $('[name="tableName"]').change(function(event) { var url = "${reloadUrl}?" + $.param({tableName:this.value}); window.location = url; }); - }); - $.subscribe('rowselect', function(event) { + // on reset let's just reload the selected row + $('[name="resetAction"]').click(function(event){ + $.publish('datas-rowSelect') + }); - // Display edit label - toggleLabels(true); + // on grid selected clear, let's remove the edit form + $.addClearSelectTopic('datas', function(event) { - // get selected id - var id = event.originalEvent.id; + $('#noRowSelected').show(); + $('#editForm').hide(); + }); - // get table name - var tableName = "${tableName}"; + // on row selection, let's load the edit form + $.addRowSelectTopic('datas', function(event) { + + $('#noRowSelected').hide(); + $('#editForm').show(); - // get entity value from json - jQuery.getJSON("${getTableData}", - { - "tableName":tableName, - "id":id - }, - function (result) { + // get selected id + var id = jQuery.struts2_jquery['datas']['selectedRow']; - // for all json result - // get data as pair : [property, value] - for (var data in Iterator(result.datas)) { - if (data) { + // get table name + var tableName = "${tableName}"; - // get property - var propertyName = data[0]; + // get entity value from json + jQuery.getJSON("${getTableData}", + { "tableName":tableName, "id":id }, function (result) { - // get value - var value = data[1]; + // get metadatas from the response + var metas = result.metas; - // get concerned editor - var editor = document.getElementById(propertyName); + // iterate on result to push in form the value to edit - // if editor found - if (editor) { + $.each(result.datas, function(propertyName, value) { - if ($(editor).hasClass("hasDatepicker")) { + if (propertyName == 'id') { - // Update date - updateDate(value, editor); - } else { + // push the id of row + $("#" + propertyName).val(value); + return; + } - // get type for checkbox - var editorType = editor.type; + var meta = metas[propertyName]; - if (editorType == "checkbox") { - editor.checked = value; - } else { - editor.value = value; - } + if (!meta) { + + // not a meta to treate + return; } - } - } - } + + var type = meta['typeSimpleName']; + if (meta['fK']) { + type = 'FK'; + } + + // get concerned editor + var editor = $("#" + propertyName); + + switch (type) { + case 'boolean': + case 'Boolean': + editor.attr('checked', value); + break; + + case 'Date': + // Update date + updateDate(value, editor); + break; + + case 'FK': + // select value in the select box + $('#' + propertyName + ' option[value="' + value + '"]').attr('selected', true); + break; + + default: + editor.val(value); + } + }); + }); }); }); - function toggleLabels(edit) { - var editDiv = $(document.getElementById("editDiv")); - var createDiv = $(document.getElementById("createDiv")); - - if (edit) { - createDiv.hide(); - editDiv.show(); - } else { - editDiv.hide(); - createDiv.show(); - } - } - function formatEntityLabel(cellvalue, options, rowObject) { var columnName = options.colModel.name + "_lib"; return rowObject[columnName]; @@ -159,46 +174,45 @@ <s:select key="tableName" label='%{getText("echobase.common.tableName")}' list="tableNames" headerKey="" headerValue=""/> - <s:form id="importForm" action="doImport" namespace="/dbeditor" method="post" - enctype="multipart/form-data" theme="simple" cssClass="floatLeft"> + <s:if test="tableSelected"> + <s:form id="importForm" namespace="/dbeditor" method="post" + enctype="multipart/form-data" cssClass="floatLeft"> - <s:hidden key="tableName"/> - <s:file name="modifImport" - required="true" - key="echobase.dbeditor.importFile" - disabled="%{tableSelected}"/> - <s:submit value="%{getText('echobase.dbeditor.import')}" disabled="%{tableSelected}"/> + <s:hidden key="tableName" label=''/> + <s:file key="importFile" required="true" + label="%{getText('echobase.common.importFile')}"/> + <s:submit key="echobase.action.importTable" action="doImport" /> </s:form> - <s:form id="exportForm" action="doExport" namespace="/dbeditor" theme="simple" cssClass="floatRight"> + <s:form id="exportForm" namespace="/dbeditor" theme="simple" cssClass="floatRight"> - <s:hidden key="tableName"/> - <s:submit value="%{getText('echobase.dbeditor.export')}" disabled="%{tableSelected}"/> + <s:hidden key="tableName" label=''/> + <s:submit key="echobase.action.exportTable" action="doExport" /> </s:form> + + </s:if> + </div> <br class="clearBoth"/> -<s:if test="tableName!=null and tableName != ''"> +<s:if test="tableSelected"> <s:url id="loadUrl" action="getTableDatas" namespace="/dbeditor" escapeAmp="false"> <s:param name="tableName" value="%{tableName}"/> </s:url> - <s:url id="editUrl" action="editTableData" namespace="/dbeditor" - escapeAmp="false"> - <s:param name="tableName" value="%{tableName}"/> - </s:url> + <s:set var="tableI18nName" + value="%{getText('echobase.common.tableDatas', tableNames[tableName])}"/> - <s:set var="tableI18nName" value="%{getText('echobase.common.tableDatas', tableNames[tableName])}"/> - <sjg:grid id="datas" dataType="json" href="%{loadUrl}" gridModel="datas" caption="%{tableI18nName}" pager="true" pagerButtons="true" pagerInput="true" navigator="true" autowidth="true" rownumbers="false" viewrecords="true" - navigatorEdit="true" navigatorSearch="true" - navigatorDelete="false" navigatorAdd="false" resizable="true" - editurl="%{editUrl}" rowList="10,15,20, 50" rowNum="10" - onSelectRowTopics="rowselect" + navigatorEdit="false" navigatorSearch="true" + navigatorDelete="false" navigatorAdd="false" + rowList="10,15,20, 50" rowNum="10" + onSelectRowTopics="datas-rowSelect" + onCompleteTopics="datas-clearSelect" navigatorSearchOptions="{multipleGroup:false,showQuery:true,multipleSearch:true,sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn','in','ni']}"> <sjg:gridColumn name="id" title="id" hidden="true" editable="true"/> @@ -206,25 +220,14 @@ <s:iterator value="columnMetas" var="meta" status="status"> <s:if test="#meta.fK"> - - <s:set name="urlName">getForeignEntitiesUrl_<s:property value="%{#meta.typeSimpleName}"/></s:set> - <s:url id="urlName" - action="getForeignEntities" - namespace="/dbeditor" - escapeAmp="false"> - <s:param name="entityType" value="%{#meta.typeSimpleName}"/> - </s:url> <sjg:gridColumn name="%{#meta.name}" title="%{getText(#meta.i18nKey)}" - edittype='select' - editoptions="{dataUrl : '%{urlName}'}" formatter='formatEntityLabel' - sortable="true" editable="true"/> + sortable="true"/> </s:if> <s:else> <sjg:gridColumn name="%{#meta.name}" title="%{getText(#meta.i18nKey)}" - edittype='%{getEditType(#meta)}' formatter='%{getFormatter(#meta)}' formatoptions="{newformat : 'd/m/Y'}" sortable="true" editable="true"/> @@ -237,37 +240,39 @@ <br class="clearBoth"/> - <s:form id="editForm" action="editTableData" namespace="/dbeditor"> - <fieldset> - <legend> - <div id="editDiv" style="display: none;"> + <fieldset id="noRowSelected"> + <legend> <s:text name="echobase.dbeditor.edit"> <s:param value="%{tableI18nName}"/> </s:text> - </div> - <div id="createDiv"> - <s:text name="echobase.dbeditor.create"> - <s:param value="%{tableI18nName}"/> - </s:text> - </div> </legend> - <s:hidden key="tableName"/> + <i><s:text name="echobase.message.no.row.selected"/>.</i> + </fieldset> - <%-- hidden field dont reset --%> - <s:textfield id="id" name="id" cssClass="hidden"/> + <s:form id="editForm" namespace="/dbeditor"> + <fieldset> + <legend> + <s:text name="echobase.dbeditor.edit"> + <s:param value="%{tableI18nName}"/> + </s:text> + </legend> + + <s:hidden key="tableName" label=''/> + + <s:hidden id="id" name="id"/> + <s:iterator value="columnMetas" var="meta" status="status"> - <s:url id="urlName" + <s:if test="#meta.fK"> + <s:url id="urlName" action="getForeignEntities" namespace="/dbeditor" escapeAmp="false"> - <s:param name="entityType" value="%{#meta.typeSimpleName}"/> - </s:url> - <s:if test="#meta.fK"> + <s:param name="entityType" value="%{#meta.typeSimpleName}"/> + </s:url> <sj:select id="%{#meta.name}" label="%{getText(#meta.i18nKey)}" href="%{urlName}" list="entities" - listenTopics="rowselect" emptyOption="true"/> </s:if> <s:else> @@ -284,9 +289,6 @@ label="%{getText(#meta.i18nKey)}" value="%{false}"/> </s:elseif> <s:elseif test='#meta.columnType == "date"'> - <%--<sj:datepicker id="%{#meta.name}"--%> - <%--name="%{#meta.name}"--%> - <%--label="%{getText(#meta.i18nKey)}"/>--%> <sj:datepicker id="%{#meta.name}" name="%{#meta.name}" label="%{getText(#meta.i18nKey)}" @@ -299,8 +301,12 @@ </s:iterator> </fieldset> <ul class="toolbar floatRight"> - <li><s:reset key="echobase.common.reset" onclick="toggleLabels(false)"/></li> - <li><s:submit name="submit" key="echobase.action.save" theme="simple"/></li> + <li><s:submit name='resetAction' key="echobase.common.reset" + theme="simple" onclick="return false;"/> + </li> + <li><s:submit name="submitAction" key="echobase.action.save" + action="editTableData" theme="simple"/> + </li> </ul> </s:form> Property changes on: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/modifImportResult.jsp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native