Author: tchemit Date: 2011-11-12 23:53:44 +0100 (Sat, 12 Nov 2011) New Revision: 47 Url: http://forge.codelutin.com/repositories/revision/echobase/47 Log: - finish export (create csv file to donwload) - add filtred data in configuration from pom - improve layout for actions Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageSqlQuery.java Removed: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/SaveExportQuery.java trunk/echobase-ui/src/main/webapp/WEB-INF/includes/menu.jsp Modified: trunk/echobase-ui/pom.xml trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadPage.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadSqlGrid.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetEntities.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetSqlResult.java trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml trunk/echobase-ui/src/main/resources/config/struts-export.xml trunk/echobase-ui/src/main/resources/config/struts-json.xml trunk/echobase-ui/src/main/resources/echobase.properties trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/includes/i18n.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/export.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userForm.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp trunk/echobase-ui/src/main/webapp/css/screen.css Modified: trunk/echobase-ui/pom.xml =================================================================== --- trunk/echobase-ui/pom.xml 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/pom.xml 2011-11-12 22:53:44 UTC (rev 47) @@ -227,21 +227,23 @@ <resources> <resource> - <directory>src/main/filters</directory> - <filtering>true</filtering> + <directory>src/main/resources</directory> <includes> - <include>*.properties</include> + <include>**/*</include> </includes> + <excludes> + <exclude>echobase.properties</exclude> + </excludes> </resource> <resource> <directory>src/main/resources</directory> + <filtering>true</filtering> <includes> - <include>**/*</include> + <include>echobase.properties</include> </includes> </resource> <resource> <directory>src/main/env/${env}/resources</directory> - <!--<filtering>true</filtering>--> <includes> <include>*.properties</include> </includes> Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java (rev 0) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java 2011-11-12 22:53:44 UTC (rev 47) @@ -0,0 +1,92 @@ +/* + * #%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.export; + +import fr.ifremer.echobase.services.ExportSqlService; +import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; + +/** + * To export sql to a csv file. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public class ExportSql extends EchoBaseActionSupport { + + private static final long serialVersionUID = 1L; + + /** Sql request to execute. */ + protected String sql; + + /** Input stream to load by the stream result. */ + protected transient InputStream inputStream; + + protected String fileName; + + protected int contentLength; + + protected String contentType; + + public void setSql(String sql) { + this.sql = sql; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public InputStream getInputStream() { + return inputStream; + } + + public String getFileName() { + return fileName; + } + + public int getContentLength() { + return contentLength; + } + + public String getContentType() { + return contentType; + } + + @Override + public String execute() throws Exception { + + ExportSqlService service = newService(ExportSqlService.class); + + contentType = "text/csv"; + String content = service.createCsvStream(sql, + getEchoBaseSession().getEchoBaseUser() + ); + contentLength = content.length(); + inputStream = new ByteArrayInputStream(content.getBytes()); + + return SUCCESS; + } +} Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.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/export/LoadPage.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadPage.java 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadPage.java 2011-11-12 22:53:44 UTC (rev 47) @@ -89,25 +89,4 @@ return INPUT; } -// public String getEditType(ColumnMeta meta) { -// Class<?> type = meta.getType(); -// String editType = "text"; -// if (boolean.class.equals(type)) { -// editType = "checkbox"; -// } else if (TopiaEntity.class.isAssignableFrom(type)) { -// editType = "select"; -// } -// return editType; -// } -// -// public String getFormatter(ColumnMeta meta) { -// Class<?> type = meta.getType(); -// String editType = "'string'"; -// if (boolean.class.equals(type)) { -// editType = "'checkbox'"; -// } else if (TopiaEntity.class.isAssignableFrom(type)) { -// editType = "'formatEntityLabel'"; -// } -// return editType; -// } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadSqlGrid.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadSqlGrid.java 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadSqlGrid.java 2011-11-12 22:53:44 UTC (rev 47) @@ -39,6 +39,9 @@ /** Sql request to execute. */ protected String sql; + /** Default file name for export. */ + protected String fileName; + /** names of columns from the executed sql request. */ protected String[] columnNames; @@ -50,6 +53,10 @@ return columnNames; } + public String getFileName() { + return fileName; + } + public void setSql(String sql) { this.sql = sql; } @@ -61,6 +68,9 @@ ExportSqlService service = newService(ExportSqlService.class); columnNames = service.getColumnNames(sql); + // create default file name + + fileName = "export.csv"; return INPUT; } } Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageSqlQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageSqlQuery.java (rev 0) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageSqlQuery.java 2011-11-12 22:53:44 UTC (rev 47) @@ -0,0 +1,81 @@ +/* + * #%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.export; + +import fr.ifremer.echobase.entities.ExportQuery; +import fr.ifremer.echobase.entities.ExportQueryImpl; +import fr.ifremer.echobase.services.ExportSqlService; +import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; + +/** + * To manage {@link ExportQuery}. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public class ManageSqlQuery extends EchoBaseActionSupport { + + private static final long serialVersionUID = 1L; + + /** Selected query */ + protected ExportQuery query; + + public ExportQuery getQuery() { + if (query == null) { + query = new ExportQueryImpl(); + } + return query; + } + + public String saveQuery() throws Exception { + + //TODO : do validation + ExportSqlService service = newService(ExportSqlService.class); + + query = service.createOrUpdate(getQuery(), + getEchoBaseSession().getEchoBaseUser() + ); + return SUCCESS; + } + + public String cloneQuery() throws Exception { + + //TODO : do validation + ExportSqlService service = newService(ExportSqlService.class); + + getQuery().setTopiaId(null); + query = service.createOrUpdate(getQuery(), + getEchoBaseSession().getEchoBaseUser() + ); + return SUCCESS; + } + + public String deleteQuery() throws Exception { + + //TODO : do validation + ExportSqlService service = newService(ExportSqlService.class); + service.delete(getQuery().getTopiaId()); + return SUCCESS; + } +} \ No newline at end of file Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageSqlQuery.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/SaveExportQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/SaveExportQuery.java 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/SaveExportQuery.java 2011-11-12 22:53:44 UTC (rev 47) @@ -1,62 +0,0 @@ -/* - * #%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.export; - -import fr.ifremer.echobase.entities.ExportQuery; -import fr.ifremer.echobase.entities.ExportQueryImpl; -import fr.ifremer.echobase.services.ExportSqlService; -import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; - -/** - * To save a given export query. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.1 - */ -public class SaveExportQuery extends EchoBaseActionSupport { - - private static final long serialVersionUID = 1L; - - /** Selected query */ - protected ExportQuery query; - - public ExportQuery getQuery() { - if (query == null) { - query = new ExportQueryImpl(); - } - return query; - } - - @Override - public String execute() throws Exception { - - //TODO : do validation - ExportSqlService service = newService(ExportSqlService.class); - - service.createOrUpdate(getQuery(), - getEchoBaseSession().getEchoBaseUser() - ); - return SUCCESS; - } -} Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetEntities.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetEntities.java 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetEntities.java 2011-11-12 22:53:44 UTC (rev 47) @@ -87,11 +87,11 @@ String sortColumn = getSortColumn(); Object filterObject = getFilterObject(); - if (log.isInfoEnabled()) { - log.info("filters = " + getFilters()); - log.info("filterObject = " + filterObject); - log.info("sidx = " + sortColumn); - log.info("sord = " + ascendantOrder); + if (log.isDebugEnabled()) { + log.debug("filters = " + getFilters()); + log.debug("filterObject = " + filterObject); + log.debug("sidx = " + sortColumn); + log.debug("sord = " + ascendantOrder); } DbEditorService dbEditorService = newService(DbEditorService.class); @@ -103,8 +103,8 @@ ascendantOrder ); - if (log.isInfoEnabled()) { - log.info("Total page = " + getTotal()); + if (log.isDebugEnabled()) { + log.debug("Total page = " + getTotal()); } return SUCCESS; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetSqlResult.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetSqlResult.java 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetSqlResult.java 2011-11-12 22:53:44 UTC (rev 47) @@ -40,9 +40,6 @@ /** Sql request to execute. */ protected String sql; -// /** names of columns from the executed sql request. */ -// protected String[] columnNames; - /** Datas of the given table. */ protected Map<?, ?>[] datas; @@ -54,10 +51,6 @@ this.sql = sql; } -// public String[] getColumnNames() { -// return columnNames; -// } - public Map<?, ?>[] getDatas() { return datas; } Modified: trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml =================================================================== --- trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2011-11-12 22:53:44 UTC (rev 47) @@ -37,12 +37,6 @@ <result name="input">/WEB-INF/jsp/dbeditor/dbeditor.jsp</result> </action> - <action name="getTableDatas" - class="fr.ifremer.echobase.ui.actions.json.GetEntities"> - <interceptor-ref name="basicStackLoggued"/> - <result type="json"/> - </action> - <action name="getForeignEntities" class="fr.ifremer.echobase.ui.actions.dbeditor.GetForeignEntities"> <interceptor-ref name="basicStackLoggued"/> Modified: trunk/echobase-ui/src/main/resources/config/struts-export.xml =================================================================== --- trunk/echobase-ui/src/main/resources/config/struts-export.xml 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/resources/config/struts-export.xml 2011-11-12 22:53:44 UTC (rev 47) @@ -37,14 +37,18 @@ <result name="input">/WEB-INF/jsp/export/export.jsp</result> </action> - <action name="loadResult" method="input" - class="fr.ifremer.echobase.ui.actions.export.LoadSqlGrid"> + <action name="cloneQuery" method="cloneQuery" + class="fr.ifremer.echobase.ui.actions.export.ManageSqlQuery"> <interceptor-ref name="basicStackLoggued"/> - <result name="input">/WEB-INF/jsp/export/exportGrid.jsp</result> + <result type="redirectAction"> + <param name="actionName">exportSql</param> + <param name="namespace">export</param> + <param name="query.topiaId">${query.topiaId}</param> + </result> </action> - <action name="saveQuery" - class="fr.ifremer.echobase.ui.actions.export.SaveExportQuery"> + <action name="saveQuery" method="saveQuery" + class="fr.ifremer.echobase.ui.actions.export.ManageSqlQuery"> <interceptor-ref name="basicStackLoggued"/> <result type="redirectAction"> <param name="actionName">exportSql</param> @@ -53,12 +57,31 @@ </result> </action> - <action name="getSqlResult" method="execute" - class="fr.ifremer.echobase.ui.actions.json.GetSqlResult"> + <action name="deleteQuery" method="deleteQuery" + class="fr.ifremer.echobase.ui.actions.export.ManageSqlQuery"> <interceptor-ref name="basicStackLoggued"/> - <result type="json"/> + <result type="redirectAction"> + <param name="actionName">exportSql</param> + <param name="namespace">export</param> + </result> </action> + <action name="loadResult" method="input" + class="fr.ifremer.echobase.ui.actions.export.LoadSqlGrid"> + <interceptor-ref name="basicStackLoggued"/> + <result name="input">/WEB-INF/jsp/export/exportGrid.jsp</result> + </action> + + <action name="downloadExport" method="execute" + class="fr.ifremer.echobase.ui.actions.export.ExportSql"> + <interceptor-ref name="basicStackLoggued"/> + <result type="stream"> + <param name="contentType">${contentType}</param> + <param name="contentLength">${contentLength}</param> + <param name="contentDisposition">filename="${fileName}"</param> + </result> + </action> + </package> </struts> Modified: trunk/echobase-ui/src/main/resources/config/struts-json.xml =================================================================== --- trunk/echobase-ui/src/main/resources/config/struts-json.xml 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/resources/config/struts-json.xml 2011-11-12 22:53:44 UTC (rev 47) @@ -38,6 +38,18 @@ <result type="json"/> </action> + <action name="getExportSqlResult" method="execute" + class="fr.ifremer.echobase.ui.actions.json.GetSqlResult"> + <interceptor-ref name="basicStackLoggued"/> + <result type="json"/> + </action> + + <action name="getTableDatas" + class="fr.ifremer.echobase.ui.actions.json.GetEntities"> + <interceptor-ref name="basicStackLoggued"/> + <result type="json"/> + </action> + </package> </struts> Modified: trunk/echobase-ui/src/main/resources/echobase.properties =================================================================== --- trunk/echobase-ui/src/main/resources/echobase.properties 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/resources/echobase.properties 2011-11-12 22:53:44 UTC (rev 47) @@ -21,6 +21,10 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # #L% ### + +application.version=${project.version} +application.site.url=${project.url} + hibernate.hbm2ddl.auto=none hibernate.show_sql=false hibernate.dialect=org.hibernate.dialect.H2Dialect 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-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2011-11-12 22:53:44 UTC (rev 47) @@ -1,16 +1,22 @@ echobase.action.applySqlQuery=Appliquer la requête +echobase.action.backToUserList=Retour à la liste des utilisateurs +echobase.action.cloneSqlQuery=Cloner la requête echobase.action.create=Créer echobase.action.delete=Suppression +echobase.action.deleteSqlQuery=Supprimer la requête +echobase.action.exportSqlData=Exporter les données echobase.action.import=Importer echobase.action.locale.english=Anglais echobase.action.locale.french=Français echobase.action.login=Connection echobase.action.logout=Déconnexion +echobase.action.reloadSqlQuery=Recharger echobase.action.save=Sauvegarder echobase.action.saveSqlQuery=Enregistrer la requête echobase.common.admin=Administrateur echobase.common.comment=Commentaire echobase.common.email=Email +echobase.common.exportFileName=Nom du fichier d'export echobase.common.import=Import configuration echobase.common.password=Mot de passe echobase.common.query.description=Description @@ -47,12 +53,12 @@ echobase.label.locale.french=Français echobase.label.login=Connexion echobase.label.user.login=Utilisateur \: %s -echobase.label.welcome=Bienvenue -echobase.menu.dbeditor=Modification du référentiel -echobase.menu.export=Export sql -echobase.menu.import=Imports -echobase.menu.logs=Logs -echobase.menu.users=Utilisateurs +echobase.label.welcome=Bienvenue dans EchoBase +echobase.menu.dbeditor=Modifier les données +echobase.menu.export=Exporter des données +echobase.menu.import=Importer des données +echobase.menu.logs=Visualiser les modifications +echobase.menu.users=Gérer les utilisateurs echobase.message.modified.property= 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/decorators.xml =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml 2011-11-12 22:53:44 UTC (rev 47) @@ -31,7 +31,7 @@ <pattern>/index*</pattern> <pattern>/dbeditor/getForeignEntities*</pattern> <pattern>/export/loadResult*</pattern> - <pattern>/export/getSqlResult*</pattern> + <pattern>/json/*</pattern> </excludes> <decorator name="layout-default" page="layout-default.jsp"> Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp 2011-11-12 22:53:44 UTC (rev 47) @@ -24,7 +24,8 @@ <%@ taglib prefix="s" uri="/struts-tags" %> <%@ taglib prefix="sj" uri="/struts-jquery-tags" %> -<s:set var="userIsAdmin" value="%{#session.echoBaseSession.echoBaseUser.admin}"/> +<s:set var="userIsAdmin" + value="%{#session.echoBaseSession.echoBaseUser.admin}"/> <div class='displayBlock'> @@ -48,9 +49,37 @@ </ul> </div> <br/> - <%@ include file="i18n.jsp" %> + <%@ include file="i18n.jsp" %> <br/> </div> - <%@ include file="menu.jsp" %> + <div class="cleanBoth"> + <ul> + <li> + <s:a action="import" namespace="/import"> + <s:text name="echobase.menu.import"/></s:a> + </li> + <li> + <s:a action="exportSql" namespace="/export"> + <s:text name="echobase.menu.export"/> + </s:a> + </li> + <li> + <s:a action="dbeditor" namespace="/dbeditor"> + <s:text name="echobase.menu.dbeditor"/> + </s:a> + </li> + <li> + <s:a action="logs"><s:text name="echobase.menu.logs"/></s:a> + </li> + <s:if + test="%{userIsAdmin}"> + <li> + <s:a action="userList" namespace="/user"> + <s:text name="echobase.menu.users"/> + </s:a> + </li> + </s:if> + </ul> + </div> </div> <hr/> Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/i18n.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/i18n.jsp 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/i18n.jsp 2011-11-12 22:53:44 UTC (rev 47) @@ -22,7 +22,7 @@ #L% --%> <%@ taglib prefix="s" uri="/struts-tags" %> -<div class="cleanBoth"> +<%--div class="cleanBoth"> <s:text name="echobase.label.language"/> <ul> <li> @@ -50,4 +50,4 @@ </s:else> </li> </ul> -</div> +</div--%> Deleted: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/menu.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/menu.jsp 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/menu.jsp 2011-11-12 22:53:44 UTC (rev 47) @@ -1,46 +0,0 @@ -<%-- - #%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% - --%> -<%@ taglib prefix="s" uri="/struts-tags" %> -<div class="cleanBoth"> - <ul> - <li> - <s:a action="import" namespace="/import"><s:text name="echobase.menu.import"/></s:a> - </li> - <li> - <s:a action="exportSql" namespace="/export"><s:text name="echobase.menu.export"/></s:a> - </li> - <li> - <s:a action="logs"><s:text name="echobase.menu.logs"/></s:a> - </li> - <li> - <s:a action="dbeditor" namespace="/dbeditor"><s:text name="echobase.menu.dbeditor"/></s:a> - </li> - <s:if - test="%{userIsAdmin}"> - <li> - <s:a action="userList" namespace="/user"><s:text name="echobase.menu.users"/></s:a> - </li> - </s:if> - </ul> -</div> 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-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2011-11-12 22:53:44 UTC (rev 47) @@ -53,7 +53,7 @@ <br/> <s:if test="tableName!=null and tableName != ''"> - <s:url id="loadUrl" action="getTableDatas" namespace="/dbeditor" + <s:url id="loadUrl" action="getTableDatas" namespace="/json" escapeAmp="false"> <s:param name="tableName" value="%{tableName}"/> </s:url> @@ -64,9 +64,8 @@ </s:url> - <sjg:grid id="tableDatas" + <sjg:grid id="datas" dataType="json" href="%{loadUrl}" gridModel="datas" caption="%{getText('echobase.common.tableDatas', tableNames[tableName])}" - dataType="json" href="%{loadUrl}" gridModel="datas" pager="true" pagerButtons="true" pagerInput="true" navigator="true" autowidth="true" rownumbers="false" navigatorEdit="true" @@ -100,7 +99,6 @@ editoptions="{dataUrl : '%{urlName}'}" formatter='formatEntityLabel' sortable="true" editable="true"/> - </s:if> <s:else> <sjg:gridColumn name="%{#meta.name}" Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/export.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/export.jsp 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/export.jsp 2011-11-12 22:53:44 UTC (rev 47) @@ -29,32 +29,48 @@ <s:url id="loadGridUrl" action="loadResult" namespace="/export"/> <script type="text/javascript"> + function reloadQuery() { + var queryId = $('[name="query.topiaId"]').val(); + var url = "${loadUrl}?" + $.param({ 'query.topiaId':queryId}); + window.location = url; + return false; + } + + function loadGridData() { + // get sql query + var sqlQuery = "${loadGridUrl}?" + $.param({ sql :$('[name="query.sqlQuery"]').val()}); + + $.ajax(sqlQuery, { + success: function(data, textStatus, jqXHR) { + $('#resultGrid').html(data); + } + }); + return false; + } + jQuery(document).ready(function () { $('[name="query.topiaId"]').change(function(event) { var url = "${loadUrl}?" + $.param({ 'query.topiaId':this.value}); - console.info("Reload url " + url); window.location = url; }); + + var queryId = $('[name="query.topiaId"]').val(); + if (queryId) { + // auto launch query + loadGridData(); + } + }); - function loadGridData() { - // get sql query - var sqlQuery = "${loadGridUrl}?" + $.param({ sql :$('[name="query.sqlQuery"]').val()}); - $.ajax(sqlQuery, { - success: function(data, textStatus, jqXHR) { - $('#resultGrid').html(data); - console.info("Return " + data); - } - }); - return false; - } </script> <title><s:text name="echobase.title.export"/></title> +<s:set var="queryExists" value="query.topiaId != null && query.topiaId != ''"/> + <s:form id="exportQueryForm" namespace="/export"> <s:select key="query.topiaId" label="%{getText('echobase.common.sqlQueries')}" @@ -65,30 +81,56 @@ <fieldset> <legend><s:text name="echobase.sqlQuery.configuration"/></legend> - <s:textfield key="query.name" required="true" - label="%{getText('echobase.common.query.name')}" size="40"/> + <s:textarea key="query.name" required="true" cols="160" rows="1" + label="%{getText('echobase.common.query.name')}"/> - <s:textarea key="query.description" required="true" cols="160" rows="6" + <s:textarea key="query.description" required="true" cols="160" rows="2" label="%{getText('echobase.common.query.description')}"/> - <s:textarea key="query.sqlQuery" required="true" cols="160" rows="6" + <s:textarea key="query.sqlQuery" required="true" cols="160" rows="4" label="%{getText('echobase.common.sqlQuery')}"/> - <s:label value="%{query.lastModifiedDate}" readonly="true" - label="%{getText('echobase.common.lastModifiedDate')}"/> + <s:if test="queryExists"> - <s:label value="%{decorate(query.lastModifiedUser, null)}" readonly="true" - label="%{getText('echobase.common.lastModifiedUser')}"/> - </fieldset> - <br/> + <s:label value="%{query.lastModifiedDate}" readonly="true" + label="%{getText('echobase.common.lastModifiedDate')}"/> - <s:submit action="saveQuery" key="echobase.action.saveSqlQuery" - align="right"/> + <s:label value="%{decorate(query.lastModifiedUser, null)}" readonly="true" + label="%{getText('echobase.common.lastModifiedUser')}"/> - <s:submit key="echobase.action.applySqlQuery" align="right" onclick="return loadGridData();"/> + </s:if> + + + <ul class="toolbar floatRight"> + <s:if test="queryExists"> + <li> + <s:submit onclick="return reloadQuery();" + key="echobase.action.reloadSqlQuery" + theme="simple"/> + </li> + <li> + <s:submit action="cloneQuery" key="echobase.action.cloneSqlQuery" + theme="simple"/> + </li> + <li> + <s:submit action="deleteQuery" key="echobase.action.deleteSqlQuery" + theme="simple"/> + </li> + </s:if> + <li> + <s:submit action="saveQuery" key="echobase.action.saveSqlQuery" + theme="simple"/> + </li> + <li> + <s:submit key="echobase.action.applySqlQuery" theme="simple" + onclick="return loadGridData();"/> + </li> + </ul> + </fieldset> </s:form> <br/> -<div id="resultGrid"></div> +<div id="resultGrid" class="cleanBoth"></div> + Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp 2011-11-12 22:53:44 UTC (rev 47) @@ -26,17 +26,25 @@ <%@ taglib prefix="sj" uri="/struts-jquery-tags" %> <%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %> -<s:url id="loadUrl" action="getSqlResult" namespace="/export" +<s:url id="loadUrl" action="getExportSqlResult" namespace="/json" escapeAmp="false"> <s:param name="sql" value="%{sql}"/> </s:url> +<s:form action="downloadExport" namespace="/export"> + <s:hidden key="sql" label=""/> + <s:textfield key="fileName" required="true" size="100" + label="%{getText('echobase.common.exportFileName')}"/> + <s:submit key="echobase.action.exportSqlData" align="left"/> +</s:form> + +<br/> <sjg:grid id="rows" caption="%{getText('echobase.common.request.result')}" dataType="json" href="%{loadUrl}" gridModel="datas" pager="true" pagerButtons="true" pagerInput="true" navigator="true" autowidth="true" rownumbers="false" navigatorEdit="false" navigatorDelete="false" - navigatorSearch="false" navigatorRefresh="true" + navigatorSearch="false" navigatorRefresh="false" navigatorAdd="false" rowList="10,15,20,50" rowNum="10" viewrecords="true" resizable="true" editinline="false"> Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userForm.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userForm.jsp 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userForm.jsp 2011-11-12 22:53:44 UTC (rev 47) @@ -30,9 +30,12 @@ src="<s:url value='/js/gridHelper.js' />"></script> <%-- CRUD constants --%> -<s:set name="create"><%=EditActionEnum.CREATE.toString()%></s:set> -<s:set name="edit"><%=EditActionEnum.EDIT.toString()%></s:set> -<s:set name="delete"><%=EditActionEnum.DELETE.toString()%></s:set> +<s:set name="create"><%=EditActionEnum.CREATE.toString()%> +</s:set> +<s:set name="edit"><%=EditActionEnum.EDIT.toString()%> +</s:set> +<s:set name="delete"><%=EditActionEnum.DELETE.toString()%> +</s:set> <s:if test="userEditAction == #create"> <s:set name="title"><s:text name="echobase.label.admin.user.create"/></s:set> @@ -60,12 +63,17 @@ <s:hidden key="userEditAction" label=""/> <s:textfield key="user.email" label="%{getText('echobase.common.email')}" size="40" required="true"/> - <s:password key="user.password" label="%{getText('echobase.common.password')}" - size="40" required="true"/> + <s:password key="user.password" + label="%{getText('echobase.common.password')}" + size="40" required="true"/> <s:checkbox key="user.admin" label="%{getText('echobase.common.admin')}"/> </fieldset> - <br/> - <s:submit action="userForm" method="doCreateOrUpdate" key="echobase.action.create" align="right"/> + <ul class="toolbar floatRight"> + <li><s:submit action="userForm" method="doCreateOrUpdate" + key="echobase.action.create" theme="simple"/></li> + <li><s:submit action="userList" key="echobase.action.backToUserList" + theme="simple"/></li> + </ul> </s:form> </s:if> <s:elseif test="userEditAction == #edit"> @@ -82,12 +90,16 @@ <s:textfield key="user.email" label="%{getText('echobase.common.email')}" size="40"/> <s:password name="user.password" value="" key="echobase.common.password" - size="40"/> + size="40"/> <s:checkbox value="%{user.admin}" key="echobase.common.admin"/> </fieldset> <p><s:text name="echobase.label.info.changePassword"/></p> - <br/> - <s:submit action="userForm" method="doCreateOrUpdate" key="echobase.action.save" align="right"/> + <ul class="toolbar floatRight"> + <li><s:submit action="userForm" method="doCreateOrUpdate" + key="echobase.action.save" theme="simple"/></li> + <li><s:submit action="userList" key="echobase.action.backToUserList" + theme="simple"/></li> + </ul> </s:form> </s:elseif> <s:elseif test="userEditAction == #delete"> @@ -103,10 +115,15 @@ <s:hidden name="userEditAction" label=""/> <s:textfield key="user.email" label="%{getText('echobase.common.email')}" size="40" disabled="true"/> - <s:checkbox value="%{user.admin}" key="echobase.common.admin" disabled="true"/> + <s:checkbox value="%{user.admin}" key="echobase.common.admin" + disabled="true"/> </fieldset> - <br/> - <s:submit action="userForm" method="doDelete" key="echobase.action.delete" align="right"/> + <ul class="toolbar floatRight"> + <li><s:submit action="userForm" method="doDelete" + key="echobase.action.delete" theme="simple"/></li> + <li><s:submit action="userList" key="echobase.action.backToUserList" + theme="simple"/></li> + </ul> </s:form> </s:elseif> Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp 2011-11-12 22:53:44 UTC (rev 47) @@ -67,7 +67,7 @@ navigatorSearch="false" navigatorRefresh="false" navigatorAdd="false" editinline="false" resizable="true" - rowList="10,15,20, 50" rowNum="10" + rowList="10,15,20, 50" rowNum="10" viewrecords="true" navigatorExtraButtons="{ add: { title : 'Ajouter', icon: 'ui-icon-plus', topic: 'users-rowAdd' }, update: { title : 'Mettre à jour', icon: 'ui-icon-pencil', topic: 'users-rowUpdate' }, Modified: trunk/echobase-ui/src/main/webapp/css/screen.css =================================================================== --- trunk/echobase-ui/src/main/webapp/css/screen.css 2011-11-12 22:52:13 UTC (rev 46) +++ trunk/echobase-ui/src/main/webapp/css/screen.css 2011-11-12 22:53:44 UTC (rev 47) @@ -195,6 +195,17 @@ padding: 0 5px; } +ul.toolbar { + display:inline; + /*line-height: 20px;*/ + /*padding: 0 5px;*/ +} + +ul.toolbar li { + display:inline; + padding: 0 5px; +} + #footer ul li { display:inline; list-style: none;