Echobase-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
November 2013
- 2 participants
- 19 discussions
22 Nov '13
Author: tchemit
Date: 2013-11-22 10:11:50 +0100 (Fri, 22 Nov 2013)
New Revision: 894
Url: http://forge.codelutin.com/projects/echobase/repository/revisions/894
Log:
refs #3856: Probl?\195?\168me de g?\195?\169n?\195?\169ration des donn?\195?\169es spatiales suite ?\195?\160 un import de base.
Modified:
trunk/echobase-services/src/main/resources/postgis-structure.sql
Modified: trunk/echobase-services/src/main/resources/postgis-structure.sql
===================================================================
--- trunk/echobase-services/src/main/resources/postgis-structure.sql 2013-11-22 09:11:02 UTC (rev 893)
+++ trunk/echobase-services/src/main/resources/postgis-structure.sql 2013-11-22 09:11:50 UTC (rev 894)
@@ -264,7 +264,7 @@
*
FROM echobase_cell_spatial_temp LOOP
- PERFORM echobase_fill_cell_spatial_row(cellRow.cellid, cellRow.celltype);
+ PERFORM echobase_fill_cell_spatial_row(cellRow.cellid);
END LOOP;
1
0
r893 - in trunk: echobase-domain/src/main/java/fr/ifremer/echobase/persistence echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb
by tchemit@users.forge.codelutin.com 22 Nov '13
by tchemit@users.forge.codelutin.com 22 Nov '13
22 Nov '13
Author: tchemit
Date: 2013-11-22 10:11:02 +0100 (Fri, 22 Nov 2013)
New Revision: 893
Url: http://forge.codelutin.com/projects/echobase/repository/revisions/893
Log:
fixes #3776: Erreur lors de la cr?\195?\169ation d'une base embarqu?\195?\169e
Modified:
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseDbMeta.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportDbService.java
Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseDbMeta.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseDbMeta.java 2013-11-22 07:01:59 UTC (rev 892)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseDbMeta.java 2013-11-22 09:11:02 UTC (rev 893)
@@ -99,11 +99,15 @@
EchoBaseEntityEnum.Data,
+ // Result has a link on cell, need then to import cell before result
+ // see http://forge.codelutin.com/issues/3776
+ EchoBaseEntityEnum.Cell,
+
EchoBaseEntityEnum.Echotype,
EchoBaseEntityEnum.Category,
EchoBaseEntityEnum.Result,
- EchoBaseEntityEnum.Cell,
+// EchoBaseEntityEnum.Cell,
EchoBaseEntityEnum.DataProcessing,
EchoBaseEntityEnum.DataAcquisition,
EchoBaseEntityEnum.Transect,
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportDbService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportDbService.java 2013-11-22 07:01:59 UTC (rev 892)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportDbService.java 2013-11-22 09:11:02 UTC (rev 893)
@@ -69,7 +69,8 @@
throw new ImportException("Could not import db", e);
}
- if (ImportDbMode.REFERENTIAL != importDbMode) {
+ if (ImportDbMode.REFERENTIAL != importDbMode &&
+ getSpatialService().isSpatialAware()) {
// let's update postgis table
getSpatialService().updatePostgisTable();
1
0
r892 - in trunk/echobase-ui/src/main: java/fr/ifremer/echobase/ui/actions/dbeditor resources/config
by tchemit@users.forge.codelutin.com 22 Nov '13
by tchemit@users.forge.codelutin.com 22 Nov '13
22 Nov '13
Author: tchemit
Date: 2013-11-22 08:01:59 +0100 (Fri, 22 Nov 2013)
New Revision: 892
Url: http://forge.codelutin.com/projects/echobase/repository/revisions/892
Log:
fixes #3851: Can't modify data anymore
Modified:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java
trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml
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 2013-11-22 06:42:18 UTC (rev 891)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java 2013-11-22 07:01:59 UTC (rev 892)
@@ -41,12 +41,16 @@
}
@Override
- public String input() throws Exception {
+ public String execute() throws Exception {
load();
if (tableMeta != null) {
exportFileName = "export-" + tableMeta.getEntityType().getSimpleName() + ".csv";
}
- return INPUT;
+ return SUCCESS;
}
+
+ public boolean isAdmin() {
+ return getEchoBaseSession().isAdmin();
+ }
}
Modified: trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2013-11-22 06:42:18 UTC (rev 891)
+++ trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2013-11-22 07:01:59 UTC (rev 892)
@@ -42,10 +42,10 @@
</result-types>
<!-- Load db editor main page -->
- <action name="dbeditor" method="input"
+ <action name="dbeditor"
class="fr.ifremer.echobase.ui.actions.dbeditor.LoadEntities">
<interceptor-ref name="prepareParamsStackLogguedWithDb"/>
- <result name="input">/WEB-INF/jsp/dbeditor/dbeditor.jsp</result>
+ <result>/WEB-INF/jsp/dbeditor/dbeditor.jsp</result>
</action>
<!-- Get foreign entities as a select box -->
1
0
Author: tchemit
Date: 2013-11-22 07:42:18 +0100 (Fri, 22 Nov 2013)
New Revision: 891
Url: http://forge.codelutin.com/projects/echobase/repository/revisions/891
Log:
fixes 3850: Updates mavenpom to 4.3
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-11-10 08:22:52 UTC (rev 890)
+++ trunk/pom.xml 2013-11-22 06:42:18 UTC (rev 891)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>4.2</version>
+ <version>4.3</version>
</parent>
<groupId>fr.ifremer</groupId>
1
0
r890 - in trunk: echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb echobase-domain/src/main/resources/META-INF/services echobase-domain/src/main/xmi echobase-services/src/main/resources
by tchemit@users.forge.codelutin.com 10 Nov '13
by tchemit@users.forge.codelutin.com 10 Nov '13
10 Nov '13
Author: tchemit
Date: 2013-11-10 09:22:52 +0100 (Sun, 10 Nov 2013)
New Revision: 890
Url: http://forge.codelutin.com/projects/echobase/repository/revisions/890
Log:
refs #3672: Ajout de vues spatiales
Added:
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_5.java
Modified:
trunk/echobase-domain/src/main/resources/META-INF/services/fr.ifremer.echobase.persistence.migration.workingDb.MigrationCallBackForVersion
trunk/echobase-domain/src/main/xmi/echobase.properties
trunk/echobase-services/src/main/resources/postgis-structure.sql
Added: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_5.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_5.java (rev 0)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_5.java 2013-11-10 08:22:52 UTC (rev 890)
@@ -0,0 +1,107 @@
+package fr.ifremer.echobase.persistence.migration.workingDb;
+
+/*
+ * #%L
+ * EchoBase :: Domain
+ * $Id$
+ * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-domain/src/main/… $
+ * %%
+ * Copyright (C) 2011 - 2013 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%
+ */
+
+import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext;
+import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.util.Version;
+
+import java.util.List;
+
+/**
+ * Migrate workgin db to version {@code 2.5}.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.5
+ */
+public class MigrationCallBackForVersion2_5 extends MigrationCallBackForVersion {
+
+ @Override
+ public Version getVersion() {
+ return new Version("2.5");
+ }
+
+ @Override
+ protected void prepareMigrationScript(TopiaContext tx,
+ List<String> queries,
+ boolean showSql,
+ boolean showProgression) throws TopiaException {
+
+ // add spatial view (http://forge.codelutin.com/issues/3672)
+ updatePostgis(tx, queries);
+ }
+
+ protected void updatePostgis(TopiaContext tx, List<String> queries) {
+ TopiaEchoBasePersistenceContext persistenceContext =
+ new TopiaEchoBasePersistenceContext(tx);
+ boolean spatialAware =
+ persistenceContext.isSpatialAware();
+
+ try {
+ if (spatialAware) {
+
+ // add cell data view
+ queries.add("DROP VIEW IF EXISTS echobase_cell_spatial_data;");
+ queries.add("CREATE OR REPLACE VIEW echobase_cell_spatial_data AS\n" +
+ "SELECT\n" +
+ " s.*,\n" +
+ " m.topiaId as metaDataId,\n" +
+ " m.name as metaDataName,\n" +
+ " d.datavalue as dataValue,\n" +
+ " d.topiaid as dataId\n" +
+ "FROM\n" +
+ " echobase_cell_spatial s,\n" +
+ " data d,\n" +
+ " datametadata m\n" +
+ "WHERE\n" +
+ " s.cellid = d.cell AND\n" +
+ " d.datametadata = m.topiaid;");
+
+ // add cell result view
+ queries.add("DROP VIEW IF EXISTS echobase_cell_spatial_result;");
+ queries.add("CREATE OR REPLACE VIEW echobase_cell_spatial_result AS\n" +
+ "SELECT\n" +
+ " s.*,\n" +
+ " m.topiaId as metaDataId,\n" +
+ " m.name as metaDataName,\n" +
+ " r.resultvalue as resultValue,\n" +
+ " r.topiaid as resultId\n" +
+ "FROM\n" +
+ " echobase_cell_spatial s,\n" +
+ " result r,\n" +
+ " datametadata m\n" +
+ "WHERE\n" +
+ " s.cellid = r.cell AND\n" +
+ " r.datametadata = m.topiaid;");
+
+ // add operation data view
+ queries.add("DROP VIEW IF EXISTS echobase_operation_spatial_data;");
+ //TODO Add spatial table
+ }
+ } finally {
+ persistenceContext.rollbackTransaction();
+ }
+ }
+}
Property changes on: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_5.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/echobase-domain/src/main/resources/META-INF/services/fr.ifremer.echobase.persistence.migration.workingDb.MigrationCallBackForVersion
===================================================================
--- trunk/echobase-domain/src/main/resources/META-INF/services/fr.ifremer.echobase.persistence.migration.workingDb.MigrationCallBackForVersion 2013-11-10 08:20:40 UTC (rev 889)
+++ trunk/echobase-domain/src/main/resources/META-INF/services/fr.ifremer.echobase.persistence.migration.workingDb.MigrationCallBackForVersion 2013-11-10 08:22:52 UTC (rev 890)
@@ -1 +1,2 @@
-fr.ifremer.echobase.persistence.migration.workingDb.MigrationCallBackForVersion2_2
\ No newline at end of file
+fr.ifremer.echobase.persistence.migration.workingDb.MigrationCallBackForVersion2_2
+fr.ifremer.echobase.persistence.migration.workingDb.MigrationCallBackForVersion2_5
\ No newline at end of file
Modified: trunk/echobase-domain/src/main/xmi/echobase.properties
===================================================================
--- trunk/echobase-domain/src/main/xmi/echobase.properties 2013-11-10 08:20:40 UTC (rev 889)
+++ trunk/echobase-domain/src/main/xmi/echobase.properties 2013-11-10 08:22:52 UTC (rev 890)
@@ -25,7 +25,7 @@
model.tagValue.generateOperatorForDAOHelper=true
model.tagValue.generateStandaloneEnumForDAOHelper=true
model.tagValue.constantPrefix=PROPERTY_
-model.tagValue.version=2.2
+model.tagValue.version=2.5
model.tagValue.noPCS=true
model.tagValue.doNotGenerateBooleanGetMethods=true
model.tagValue.indexForeignKeys=true
Modified: trunk/echobase-services/src/main/resources/postgis-structure.sql
===================================================================
--- trunk/echobase-services/src/main/resources/postgis-structure.sql 2013-11-10 08:20:40 UTC (rev 889)
+++ trunk/echobase-services/src/main/resources/postgis-structure.sql 2013-11-10 08:22:52 UTC (rev 890)
@@ -60,6 +60,40 @@
CREATE INDEX echobase_cell_spatial_coordinate3D_gix ON echobase_cell_spatial USING GIST (coordinate3d);
CREATE INDEX echobase_cell_spatial_shape_gix ON echobase_cell_spatial USING GIST (shape);
+-- ajout de vues
+
+DROP VIEW IF EXISTS echobase_spatial_cell_result;
+CREATE OR REPLACE VIEW echobase_spatial_cell_result AS
+SELECT
+ s.*,
+ m.topiaId as metaDataId,
+ m.name as metaDataName,
+ r.resultvalue as resultValue,
+ r.topiaid as resultId
+FROM
+ echobase_cell_spatial s,
+ result r,
+ datametadata m
+WHERE
+ s.cellid = r.cell AND
+ r.datametadata = m.topiaid;
+
+DROP VIEW IF EXISTS echobase_spatial_cell_data;
+CREATE OR REPLACE VIEW echobase_spatial_cell_data AS
+SELECT
+ s.*,
+ m.topiaId as metaDataId,
+ m.name as metaDataName,
+ d.datavalue as dataValue,
+ d.topiaid as dataId
+FROM
+ echobase_cell_spatial s,
+ data d,
+ datametadata m
+WHERE
+ s.cellid = d.cell AND
+ d.datametadata = m.topiaid;
+
-- pour stoquer les traitements spatiaux a effectuer
DROP TABLE IF EXISTS echobase_cell_spatial_temp;
CREATE TABLE echobase_cell_spatial_temp (
@@ -862,6 +896,24 @@
CREATE INDEX echobase_operation_spatial_coordinate_gix ON echobase_operation_spatial USING GIST (coordinate);
+-- ajout de vues
+
+DROP VIEW IF EXISTS echobase_spatial_operation_data;
+
+--CREATE OR REPLACE VIEW echobase_spatial_operation_data AS
+--SELECT
+-- echobase_cell_spatial.*,
+-- datametadata.name,
+-- data.dataValue
+-- data.topiaid as dataId
+--FROM
+-- echobase_cell_spatial,
+-- data,
+-- datametadata
+--WHERE
+-- echobase_cell_spatial.cellid = data.cell AND
+-- data.datametadata = datametadata.topiaid;
+
-- pour stoquer les traitements spatiaux a effectuer
DROP TABLE IF EXISTS echobase_operation_spatial_temp;
CREATE TABLE echobase_operation_spatial_temp (
1
0
r889 - trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery
by tchemit@users.forge.codelutin.com 10 Nov '13
by tchemit@users.forge.codelutin.com 10 Nov '13
10 Nov '13
Author: tchemit
Date: 2013-11-10 09:20:40 +0100 (Sun, 10 Nov 2013)
New Revision: 889
Url: http://forge.codelutin.com/projects/echobase/repository/revisions/889
Log:
remove obsolete class
Removed:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java 2013-11-10 08:20:13 UTC (rev 888)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java 2013-11-10 08:20:40 UTC (rev 889)
@@ -1,225 +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.exportQuery;
-
-import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.entities.ExportQuery;
-import fr.ifremer.echobase.services.service.InternalDbPersistenceService;
-import fr.ifremer.echobase.services.service.exportquery.ExportQueryNotFoundException;
-import fr.ifremer.echobase.services.service.exportquery.ExportQueryService;
-import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.util.Map;
-
-/**
- * To manage {@link ExportQuery}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class ManageExportQuery extends EchoBaseActionSupport {//implements Preparable {
-
- private static final long serialVersionUID = 1L;
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(ManageExportQuery.class);
-
- /** Selected query loaded from database if his id is not empty. */
- protected ExportQuery query;
-
- public ExportQuery getQuery() {
- if (query == null) {
- query = exportQueryService.newExportQuery();
- }
- return query;
- }
-
-// protected boolean newQuery;
-//
-// public void setNewQuery(boolean newQuery) {
-// this.newQuery = newQuery;
-// }
-
- public boolean isNewQuery() {
- return false;
- }
-
- public boolean isQueryExists() {
- return StringUtils.isNotEmpty(getQuery().getTopiaId());
- }
-
- protected boolean canUpdateQuery;
-
- public boolean isCanUpdateQuery() {
- return canUpdateQuery;
- }
-
- /** All available queries from database. */
- protected Map<String, String> queries;
-
- public Map<String, String> getQueries() {
- return queries;
- }
-
- public Map<String, String> getTableNames() {
- return queries;
- }
-
- @Override
- public String execute() throws ExportQueryNotFoundException {
-
- queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class);
-
- if (queries.isEmpty()) {
-
- // no query saved
- addFlashMessage(_("echobase.info.no.sqlQuery.saved"));
- } else {
-
- String selectedQueryId = getQuery().getTopiaId();
-
- if (!isQueryExists()) {
-
- // no query selected
- addFlashMessage(_("echobase.info.no.sqlQuery.selected"));
-
-// if (isNewQuery()) {
-//
-// // new query in progress
-// addFlashMessage(_("echobase.info.new.sqlQuery.inprogress"));
-// } else {
-//
-// // no query selected
-// addFlashMessage(_("echobase.info.no.sqlQuery.selected"));
-// }
- } else {
-
- // load query from database
- query = exportQueryService.getExportQuery(selectedQueryId);
-
- EchoBaseUser echoBaseUser =
- getEchoBaseSession().getUser();
- canUpdateQuery = echoBaseUser.isAdmin() ||
- echoBaseUser.getEmail().equals(
- query.getLastModifiedUser());
-
- if (!canUpdateQuery) {
-
- // this user can not update selected query
- addFlashMessage(
- _("echobase.info.sqlQuery.not.modifiable"));
- }
- }
- }
-
- if (isQueryExists()) {
-
- // test query
- checkQuery();
- }
- return SUCCESS;
- }
-
-// @Override
-// public void prepare() throws Exception {
-//
-// queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class);
-//
-// if (queries.isEmpty()) {
-//
-// // no query saved
-// addFlashMessage(_("echobase.info.no.sqlQuery.saved"));
-// } else {
-//
-// String selectedQueryId = getQuery().getTopiaId();
-//
-// if (!isQueryExists()) {
-//
-// if (isNewQuery() || isNewLibreOfficeQuery()) {
-//
-// // new query in progress
-// addFlashMessage(_("echobase.info.new.sqlQuery.inprogress"));
-// } else {
-//
-// // no query selected
-// addFlashMessage(_("echobase.info.no.sqlQuery.selected"));
-// }
-// } else {
-//
-// // load query from database
-// query = exportQueryService.getExportQuery(selectedQueryId);
-//
-// EchoBaseUser echoBaseUser =
-// getEchoBaseSession().getUser();
-// canUpdateQuery = echoBaseUser.isAdmin() ||
-// echoBaseUser.getEmail().equals(
-// query.getLastModifiedUser());
-//
-// if (!canUpdateQuery) {
-//
-// // this user can not update selected query
-// addFlashMessage(
-// _("echobase.info.sqlQuery.not.modifiable"));
-// }
-// }
-// }
-// }
-
- private boolean checkQuery() {
-
- boolean result;
- try {
- exportQueryService.testSql(getQuery().getSqlQuery());
- result = true;
- } catch (Exception e) {
- Throwable cause = e.getCause();
- if (log.isWarnEnabled()) {
- log.warn("Invalid sql ", cause);
- }
- addFieldError("query.sqlQuery",
- _("echobase.error.invalid.sql", cause.getMessage()));
- result = false;
- }
- return result;
- }
-
- //------------------------------------------------------------------------//
- //-- Injected objects //
- //------------------------------------------------------------------------//
-
- protected transient ExportQueryService exportQueryService;
-
- public void setExportQueryService(ExportQueryService exportQueryService) {
- this.exportQueryService = exportQueryService;
- }
-
- protected transient InternalDbPersistenceService internalDbPersistenceService;
-
- public void setInternalDbPersistenceService(InternalDbPersistenceService internalDbPersistenceService) {
- this.internalDbPersistenceService = internalDbPersistenceService;
- }
-}
\ No newline at end of file
1
0
r888 - trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery
by tchemit@users.forge.codelutin.com 10 Nov '13
by tchemit@users.forge.codelutin.com 10 Nov '13
10 Nov '13
Author: tchemit
Date: 2013-11-10 09:20:13 +0100 (Sun, 10 Nov 2013)
New Revision: 888
Url: http://forge.codelutin.com/projects/echobase/repository/revisions/888
Log:
improve count of request
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/GenericSQLQuery.java
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/GenericSQLQuery.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/GenericSQLQuery.java 2013-11-09 18:18:09 UTC (rev 887)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/GenericSQLQuery.java 2013-11-10 08:20:13 UTC (rev 888)
@@ -115,7 +115,31 @@
}
}
+ /**
+ * From a given result set, let's count his number of row.
+ * <p/>
+ * <strong>Note:</strong> the result set must be scrollable to go back to
+ * before first row.
+ *
+ * @param set the result set to inspect
+ * @return the number of row of the given result set
+ * @throws SQLException if any pb
+ * @since 2.6.4
+ */
@Override
+ protected long getNbRows(ResultSet set) throws SQLException {
+
+ //TODO Bring this back to Topia
+ long nbRows = 0;
+ if (set.last()) {
+ nbRows = set.getRow();
+ }
+ // go back before first row (be ware the resultset must be scrollable)
+ set.beforeFirst();
+ return nbRows;
+ }
+
+ @Override
protected Map<String, Object> prepareResult(ResultSet set) throws SQLException {
if (pager != null) {
1
0
09 Nov '13
Author: tchemit
Date: 2013-11-09 19:18:09 +0100 (Sat, 09 Nov 2013)
New Revision: 887
Url: http://forge.codelutin.com/projects/echobase/repository/revisions/887
Log:
fixes #3680: Pb export des donn?\195?\169es echobase
Added:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/AbstractEditExportQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CloneExportQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ConfirmDeleteExportQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CreateNewExportQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DeleteExportQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/EditExportQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/SaveExportQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ShowExportQuery.java
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/CloneExportQuery-validation.xml
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/SaveExportQuery-validation.xml
Removed:
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery-clone-validation.xml
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery-save-validation.xml
Modified:
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryDAOImpl.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryService.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/GetExportQueryResult.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/EchoBaseInjectInterceptor.java
trunk/echobase-ui/src/main/resources/config/struts-exportQuery.xml
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/resources/struts.xml
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportQuery/exportQuery.jsp
Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryDAOImpl.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryDAOImpl.java 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryDAOImpl.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -23,29 +23,30 @@
* #L%
*/
-import com.google.common.collect.Lists;
-import org.apache.commons.lang3.StringUtils;
import org.nuiton.topia.TopiaException;
-import java.util.List;
-
public class ExportQueryDAOImpl<E extends ExportQuery> extends ExportQueryDAOAbstract<E> {
- public boolean isQueryExists(String id, String queryName) throws TopiaException {
+ public boolean isQueryExists(String queryName) throws TopiaException {
String hql = "SELECT COUNT(*)" +
" FROM " + getTopiaEntityEnum().getImplementationFQN() +
" WHERE " + ExportQuery.PROPERTY_NAME + " = :name";
- List<Object> params = Lists.<Object>newArrayList("name", queryName);
+ boolean result = existsByQuery(hql, new String[]{"name", queryName});
+ return result;
+ }
- if (StringUtils.isNotBlank(id)) {
- hql += " AND " + ExportQuery.PROPERTY_TOPIA_ID + " = :id";
- params.add("id");
- params.add(id);
- }
+ public boolean isQueryExists(String id, String queryName) throws TopiaException {
- boolean result = existsByQuery(hql, params.toArray());
+ String hql = "SELECT COUNT(*)" +
+ " FROM " + getTopiaEntityEnum().getImplementationFQN() +
+ " WHERE " + ExportQuery.PROPERTY_NAME + " = :name" +
+ " AND " + ExportQuery.PROPERTY_TOPIA_ID + " != :id";
+
+ boolean result = existsByQuery(
+ hql,
+ new String[]{"name", queryName, "id", id});
return result;
}
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryService.java 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryService.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -65,6 +65,27 @@
}
+ public boolean isQueryNameValid(ExportQuery exportQuery) {
+ String queryName = exportQuery.getName();
+ boolean result = ExportQueries.isQueryNameValid(queryName);
+ return result;
+ }
+
+ public boolean isQueryNameAvailable(ExportQuery exportQuery) {
+ String queryName = exportQuery.getName();
+ String id = exportQuery.getTopiaId();
+ boolean mustCreate = StringUtils.isEmpty(id);
+
+ boolean result;
+ if (mustCreate) {
+
+ result = !getDAO().isQueryExists(queryName);
+ } else {
+ result = !getDAO().isQueryExists(id, queryName);
+ }
+ return result;
+ }
+
public ExportQuery createOrUpdate(ExportQuery exportQuery,
EchoBaseUser user) throws ExportQueryNameAlreadyExistException, ExportQueryInvalidNameException {
try {
@@ -78,20 +99,15 @@
String queryName = exportQuery.getName();
- if (!ExportQueries.isQueryNameValid(queryName)) {
+ if (!isQueryNameValid(exportQuery)) {
// can not accept a non alpha numeric name
throw new ExportQueryInvalidNameException();
}
// check query does not already exists with this name
- if (mustCreate) {
-
- boolean queryExists = dao.isQueryExists(id, queryName);
-
- if (queryExists) {
- throw new ExportQueryNameAlreadyExistException();
- }
+ if (!isQueryNameAvailable(exportQuery)) {
+ throw new ExportQueryNameAlreadyExistException();
}
ExportQuery entityToSave;
@@ -158,11 +174,11 @@
String safeSql = getSafeSql(sql);
GenericSQLQuery sqlQuery = new GenericSQLQuery(safeSql, null);
- getEchoBaseInternalPersistenceContext().findSingleResult(sqlQuery);
+ getEchoBasePersistenceContext().findSingleResult(sqlQuery);
sqlQuery.getColumnNames();
}
- public Map<String, Object>[] executeExportquery(String queryId,
+ public Map<String, Object>[] executeExportQuery(String queryId,
TopiaPagerBean pager) throws ExportQueryNotFoundException {
String sql = getSqlQuery(queryId);
@@ -171,7 +187,7 @@
GenericSQLQuery sqlQuery = new GenericSQLQuery(sql, pager);
try {
List<Map<String, Object>> result =
- getEchoBaseInternalPersistenceContext().findMultipleResult(sqlQuery);
+ getEchoBasePersistenceContext().findMultipleResult(sqlQuery);
return result.toArray(new Map[result.size()]);
} catch (TopiaException eee) {
throw new EchoBaseTechnicalException(
@@ -190,7 +206,7 @@
// do a limit query to one result and obtain the column names
// from the meta data of the result set
GenericSQLQuery sqlQuery = new GenericSQLQuery(limitSql, null);
- getEchoBaseInternalPersistenceContext().findSingleResult(sqlQuery);
+ getEchoBasePersistenceContext().findSingleResult(sqlQuery);
String[] result = sqlQuery.getColumnNames();
return result;
} catch (TopiaException eee) {
@@ -209,7 +225,7 @@
GenericSQLQuery sqlQuery = new GenericSQLQuery(sql, null);
List<Map<String, Object>> rows;
try {
- rows = getEchoBaseInternalPersistenceContext().findMultipleResult(sqlQuery);
+ rows = getEchoBasePersistenceContext().findMultipleResult(sqlQuery);
} catch (TopiaException eee) {
throw new EchoBaseTechnicalException(
"Could not execute sql query", eee);
Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/AbstractEditExportQuery.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/AbstractEditExportQuery.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/AbstractEditExportQuery.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -0,0 +1,133 @@
+package fr.ifremer.echobase.ui.actions.exportQuery;
+
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.ExportQuery;
+import fr.ifremer.echobase.services.service.InternalDbPersistenceService;
+import fr.ifremer.echobase.services.service.exportquery.ExportQueryService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.Map;
+
+/**
+ * To save a export query.
+ * <p/>
+ * Created on 11/9/13.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.5
+ */
+public abstract class AbstractEditExportQuery extends EchoBaseActionSupport {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(AbstractEditExportQuery.class);
+
+ private static final long serialVersionUID = 1L;
+
+ /** Selected query loaded from database if his id is not empty. */
+ protected ExportQuery query;
+
+ public ExportQuery getQuery() {
+ if (query == null) {
+ query = exportQueryService.newExportQuery();
+ }
+ return query;
+ }
+
+ protected boolean canUpdateQuery;
+
+ protected boolean queryExist;
+
+ public boolean isCanUpdateQuery() {
+ return canUpdateQuery;
+ }
+
+ public boolean isQueryExists() {
+ return StringUtils.isNotEmpty(getQuery().getTopiaId());
+ }
+
+ public boolean isNewQuery() {
+ return !isQueryExists();
+ }
+
+ /** All available queries from database. */
+ protected Map<String, String> queries;
+
+ public Map<String, String> getQueries() {
+ return queries;
+ }
+
+ @Override
+ public String input() throws Exception {
+
+ // come back here when validation failed
+ queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class);
+
+ EchoBaseUser echoBaseUser = getEchoBaseSession().getUser();
+
+ canUpdateQuery = echoBaseUser.isAdmin() ||
+ echoBaseUser.getEmail().equals(
+ query.getLastModifiedUser());
+
+ if (isNewQuery()) {
+
+ // new query in progress
+ addFlashMessage(_("echobase.info.new.sqlQuery.inprogress"));
+ }
+ return INPUT;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ query = exportQueryService.createOrUpdate(
+ getQuery(), getEchoBaseSession().getUser());
+
+ return SUCCESS;
+ }
+
+ @Override
+ public void validate() {
+ super.validate();
+ if (!hasFieldErrors()) {
+ if (!exportQueryService.isQueryNameValid(getQuery())) {
+ addFieldError("query.name",
+ _("echobase.error.query.invalid.name"));
+ } else if (!exportQueryService.isQueryNameAvailable(getQuery())) {
+ addFieldError("query.name",
+ _("echobase.error.query.name.already.exists"));
+ } else {
+ try {
+ exportQueryService.testSql(getQuery().getSqlQuery());
+ } catch (Exception e) {
+ Throwable cause = e.getCause();
+ if (log.isWarnEnabled()) {
+ log.warn("Invalid sql ", cause);
+ }
+ addFieldError("query.sqlQuery",
+ _("echobase.error.invalid.sql", cause.getMessage()));
+ }
+ }
+ }
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Injected objects //
+ //------------------------------------------------------------------------//
+
+ protected transient ExportQueryService exportQueryService;
+
+ public void setExportQueryService(ExportQueryService exportQueryService) {
+ this.exportQueryService = exportQueryService;
+ }
+
+ protected transient InternalDbPersistenceService internalDbPersistenceService;
+
+ public void setInternalDbPersistenceService(InternalDbPersistenceService internalDbPersistenceService) {
+ this.internalDbPersistenceService = internalDbPersistenceService;
+ }
+
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/AbstractEditExportQuery.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CloneExportQuery.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CloneExportQuery.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CloneExportQuery.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -0,0 +1,48 @@
+package fr.ifremer.echobase.ui.actions.exportQuery;
+
+import com.opensymphony.xwork2.interceptor.annotations.InputConfig;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * To clone an export query.
+ * <p/>
+ * Created on 11/9/13.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.5
+ */
+public class CloneExportQuery extends AbstractEditExportQuery {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(CloneExportQuery.class);
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void validate() {
+
+ // remove his id
+ query.setTopiaId(null);
+
+ // rename it
+ query.setName(getQuery().getName() + "-clone");
+ super.validate();
+ }
+
+ @InputConfig(methodName = INPUT)
+ @Override
+ public String execute() throws Exception {
+
+ String selectedQueryId = getQuery().getTopiaId();
+
+ if (log.isInfoEnabled()) {
+ log.info("Will clone query: " + selectedQueryId);
+ }
+
+ String result = super.execute();
+ addFlashMessage(_("echobase.info.query.cloned"));
+ return result;
+ }
+
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CloneExportQuery.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ConfirmDeleteExportQuery.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ConfirmDeleteExportQuery.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ConfirmDeleteExportQuery.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -0,0 +1,59 @@
+package fr.ifremer.echobase.ui.actions.exportQuery;
+
+import fr.ifremer.echobase.entities.ExportQuery;
+import fr.ifremer.echobase.services.service.exportquery.ExportQueryService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * To confirm delete an export query.
+ * <p/>
+ * Created on 11/9/13.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.5
+ */
+public class ConfirmDeleteExportQuery extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(ConfirmDeleteExportQuery.class);
+
+ /** Selected query loaded from database if his id is not empty. */
+ protected ExportQuery query;
+
+ public ExportQuery getQuery() {
+ if (query == null) {
+ query = exportQueryService.newExportQuery();
+ }
+ return query;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ String selectedQueryId = getQuery().getTopiaId();
+
+ if (log.isInfoEnabled()) {
+ log.info("Will confirm to delete query: " + selectedQueryId);
+ }
+
+ // get query
+ query = exportQueryService.getExportQuery(selectedQueryId);
+ return SUCCESS;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Injected objects //
+ //------------------------------------------------------------------------//
+
+ protected transient ExportQueryService exportQueryService;
+
+ public void setExportQueryService(ExportQueryService exportQueryService) {
+ this.exportQueryService = exportQueryService;
+ }
+
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ConfirmDeleteExportQuery.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CreateNewExportQuery.java (from rev 886, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CreateNewExportQuery.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CreateNewExportQuery.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -0,0 +1,108 @@
+/*
+ * #%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.exportQuery;
+
+import fr.ifremer.echobase.entities.ExportQuery;
+import fr.ifremer.echobase.services.service.InternalDbPersistenceService;
+import fr.ifremer.echobase.services.service.exportquery.ExportQueryNotFoundException;
+import fr.ifremer.echobase.services.service.exportquery.ExportQueryService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.Map;
+
+/**
+ * To create a new {@link ExportQuery}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class CreateNewExportQuery extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(CreateNewExportQuery.class);
+
+ /** Selected query loaded from database if his id is not empty. */
+ protected ExportQuery query;
+
+ public ExportQuery getQuery() {
+ if (query == null) {
+ query = exportQueryService.newExportQuery();
+ }
+ return query;
+ }
+
+ public boolean isNewQuery() {
+ return true;
+ }
+
+ public boolean isQueryExists() {
+ return false;
+ }
+
+ public boolean isCanUpdateQuery() {
+ return false;
+ }
+
+ /** All available queries from database. */
+ protected Map<String, String> queries;
+
+ public Map<String, String> getQueries() {
+ return queries;
+ }
+
+ @Override
+ public String execute() throws ExportQueryNotFoundException {
+
+ if (log.isInfoEnabled()) {
+ log.info("Will create a new query");
+ }
+
+ queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class);
+
+ // new query in progress
+ addFlashMessage(_("echobase.info.new.sqlQuery.inprogress"));
+
+ return SUCCESS;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Injected objects //
+ //------------------------------------------------------------------------//
+
+ protected transient ExportQueryService exportQueryService;
+
+ public void setExportQueryService(ExportQueryService exportQueryService) {
+ this.exportQueryService = exportQueryService;
+ }
+
+ protected transient InternalDbPersistenceService internalDbPersistenceService;
+
+ public void setInternalDbPersistenceService(InternalDbPersistenceService internalDbPersistenceService) {
+ this.internalDbPersistenceService = internalDbPersistenceService;
+ }
+}
\ No newline at end of file
Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DeleteExportQuery.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DeleteExportQuery.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DeleteExportQuery.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -0,0 +1,57 @@
+package fr.ifremer.echobase.ui.actions.exportQuery;
+
+import fr.ifremer.echobase.entities.ExportQuery;
+import fr.ifremer.echobase.services.service.exportquery.ExportQueryService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * To delete an export query.
+ * <p/>
+ * Created on 11/9/13.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.5
+ */
+public class DeleteExportQuery extends EchoBaseActionSupport {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(DeleteExportQuery.class);
+
+ private static final long serialVersionUID = 1L;
+
+ /** Selected query loaded from database if his id is not empty. */
+ protected ExportQuery query;
+
+ public ExportQuery getQuery() {
+ if (query == null) {
+ query = exportQueryService.newExportQuery();
+ }
+ return query;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ //TODO : do validation
+ if (log.isInfoEnabled()) {
+ log.info("Will delete query: " + getQuery().getTopiaId());
+ }
+ exportQueryService.delete(getQuery().getTopiaId());
+ query = null;
+ addFlashMessage(_("echobase.info.query.removed"));
+ return SUCCESS;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Injected objects //
+ //------------------------------------------------------------------------//
+
+ protected transient ExportQueryService exportQueryService;
+
+ public void setExportQueryService(ExportQueryService exportQueryService) {
+ this.exportQueryService = exportQueryService;
+ }
+
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DeleteExportQuery.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/EditExportQuery.java (from rev 886, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/EditExportQuery.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/EditExportQuery.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -0,0 +1,145 @@
+/*
+ * #%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.exportQuery;
+
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.ExportQuery;
+import fr.ifremer.echobase.services.service.InternalDbPersistenceService;
+import fr.ifremer.echobase.services.service.exportquery.ExportQueryNotFoundException;
+import fr.ifremer.echobase.services.service.exportquery.ExportQueryService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.Map;
+
+/**
+ * To edit a {@link ExportQuery}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class EditExportQuery extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(EditExportQuery.class);
+
+ /** Selected query loaded from database if his id is not empty. */
+ protected ExportQuery query;
+
+ public ExportQuery getQuery() {
+ if (query == null) {
+ query = exportQueryService.newExportQuery();
+ }
+ return query;
+ }
+
+ public boolean isNewQuery() {
+ return false;
+ }
+
+ public boolean isQueryExists() {
+ return StringUtils.isNotEmpty(getQuery().getTopiaId());
+ }
+
+ protected boolean canUpdateQuery;
+
+ public boolean isCanUpdateQuery() {
+ return canUpdateQuery;
+ }
+
+ /** All available queries from database. */
+ protected Map<String, String> queries;
+
+ public Map<String, String> getQueries() {
+ return queries;
+ }
+
+ @Override
+ public String execute() throws ExportQueryNotFoundException {
+
+ queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class);
+
+ String selectedQueryId = getQuery().getTopiaId();
+
+
+ // load query from database
+ query = exportQueryService.getExportQuery(selectedQueryId);
+
+ EchoBaseUser echoBaseUser =
+ getEchoBaseSession().getUser();
+ canUpdateQuery = echoBaseUser.isAdmin() ||
+ echoBaseUser.getEmail().equals(
+ query.getLastModifiedUser());
+
+ if (!canUpdateQuery) {
+
+ // this user can not update selected query
+ addFlashMessage(
+ _("echobase.info.sqlQuery.not.modifiable"));
+ }
+
+ // test query
+ checkQuery();
+
+ return SUCCESS;
+ }
+
+ private boolean checkQuery() {
+
+ boolean result;
+ try {
+ exportQueryService.testSql(getQuery().getSqlQuery());
+ result = true;
+ } catch (Exception e) {
+ Throwable cause = e.getCause();
+ if (log.isWarnEnabled()) {
+ log.warn("Invalid sql ", cause);
+ }
+ addFieldError("query.sqlQuery",
+ _("echobase.error.invalid.sql", cause.getMessage()));
+ result = false;
+ }
+ return result;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Injected objects //
+ //------------------------------------------------------------------------//
+
+ protected transient ExportQueryService exportQueryService;
+
+ public void setExportQueryService(ExportQueryService exportQueryService) {
+ this.exportQueryService = exportQueryService;
+ }
+
+ protected transient InternalDbPersistenceService internalDbPersistenceService;
+
+ public void setInternalDbPersistenceService(InternalDbPersistenceService internalDbPersistenceService) {
+ this.internalDbPersistenceService = internalDbPersistenceService;
+ }
+}
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/GetExportQueryResult.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/GetExportQueryResult.java 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/GetExportQueryResult.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -61,7 +61,7 @@
@Override
public String execute() throws Exception {
- datas = exportQueryService.executeExportquery(queryId, pager);
+ datas = exportQueryService.executeExportQuery(queryId, pager);
return SUCCESS;
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -23,12 +23,10 @@
*/
package fr.ifremer.echobase.ui.actions.exportQuery;
-import com.opensymphony.xwork2.Preparable;
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.ExportQuery;
import fr.ifremer.echobase.services.service.InternalDbPersistenceService;
-import fr.ifremer.echobase.services.service.exportquery.ExportQueryInvalidNameException;
-import fr.ifremer.echobase.services.service.exportquery.ExportQueryNameAlreadyExistException;
+import fr.ifremer.echobase.services.service.exportquery.ExportQueryNotFoundException;
import fr.ifremer.echobase.services.service.exportquery.ExportQueryService;
import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
import org.apache.commons.lang3.StringUtils;
@@ -43,7 +41,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public class ManageExportQuery extends EchoBaseActionSupport implements Preparable {
+public class ManageExportQuery extends EchoBaseActionSupport {//implements Preparable {
private static final long serialVersionUID = 1L;
@@ -60,28 +58,16 @@
return query;
}
- protected boolean newQuery;
+// protected boolean newQuery;
+//
+// public void setNewQuery(boolean newQuery) {
+// this.newQuery = newQuery;
+// }
- public void setNewQuery(boolean newQuery) {
- this.newQuery = newQuery;
- }
-
public boolean isNewQuery() {
- return newQuery;
+ return false;
}
- protected boolean newLibreOfficeQuery;
-
- public void setNewLibreOfficeQuery(boolean newLibreOfficeQuery) {
- this.newLibreOfficeQuery = newLibreOfficeQuery;
- }
-
- public boolean isNewLibreOfficeQuery() {
- return newLibreOfficeQuery;
- }
-
- protected boolean queryExists;
-
public boolean isQueryExists() {
return StringUtils.isNotEmpty(getQuery().getTopiaId());
}
@@ -103,66 +89,9 @@
return queries;
}
- public String saveQuery() throws Exception {
-
- String result = INPUT;
-
- boolean safeSql = checkQuery();
-
- if (safeSql) {
- try {
- query = exportQueryService.createOrUpdate(
- getQuery(), getEchoBaseSession().getUser());
-
- result = SUCCESS;
- } catch (ExportQueryInvalidNameException e) {
- addFieldError("query.name",
- _("echobase.error.query.invalid.name"));
- } catch (ExportQueryNameAlreadyExistException e) {
- addFieldError("query.name",
- _("echobase.error.query.name.already.exists"));
- }
- }
- return result;
- }
-
- public String cloneQuery() throws Exception {
-
- getQuery().setTopiaId(null);
- getQuery().setName(getQuery().getName() + "-clone");
- query = exportQueryService.createOrUpdate(getQuery(),
- getEchoBaseSession().getUser()
- );
- return SUCCESS;
- }
-
- public String confirmDeleteQuery() throws Exception {
-
- return SUCCESS;
- }
-
- public String deleteQuery() throws Exception {
-
- //TODO : do validation
- exportQueryService.delete(getQuery().getTopiaId());
- query = null;
- return SUCCESS;
- }
-
@Override
- public String execute() {
+ public String execute() throws ExportQueryNotFoundException {
- if (StringUtils.isNotEmpty(getQuery().getTopiaId())) {
-
- // test query
- checkQuery();
- }
- return SUCCESS;
- }
-
- @Override
- public void prepare() throws Exception {
-
queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class);
if (queries.isEmpty()) {
@@ -175,15 +104,18 @@
if (!isQueryExists()) {
- if (isNewQuery() || isNewLibreOfficeQuery()) {
+ // no query selected
+ addFlashMessage(_("echobase.info.no.sqlQuery.selected"));
- // new query in progress
- addFlashMessage(_("echobase.info.new.sqlQuery.inprogress"));
- } else {
-
- // no query selected
- addFlashMessage(_("echobase.info.no.sqlQuery.selected"));
- }
+// if (isNewQuery()) {
+//
+// // new query in progress
+// addFlashMessage(_("echobase.info.new.sqlQuery.inprogress"));
+// } else {
+//
+// // no query selected
+// addFlashMessage(_("echobase.info.no.sqlQuery.selected"));
+// }
} else {
// load query from database
@@ -203,8 +135,60 @@
}
}
}
+
+ if (isQueryExists()) {
+
+ // test query
+ checkQuery();
+ }
+ return SUCCESS;
}
+// @Override
+// public void prepare() throws Exception {
+//
+// queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class);
+//
+// if (queries.isEmpty()) {
+//
+// // no query saved
+// addFlashMessage(_("echobase.info.no.sqlQuery.saved"));
+// } else {
+//
+// String selectedQueryId = getQuery().getTopiaId();
+//
+// if (!isQueryExists()) {
+//
+// if (isNewQuery() || isNewLibreOfficeQuery()) {
+//
+// // new query in progress
+// addFlashMessage(_("echobase.info.new.sqlQuery.inprogress"));
+// } else {
+//
+// // no query selected
+// addFlashMessage(_("echobase.info.no.sqlQuery.selected"));
+// }
+// } else {
+//
+// // load query from database
+// query = exportQueryService.getExportQuery(selectedQueryId);
+//
+// EchoBaseUser echoBaseUser =
+// getEchoBaseSession().getUser();
+// canUpdateQuery = echoBaseUser.isAdmin() ||
+// echoBaseUser.getEmail().equals(
+// query.getLastModifiedUser());
+//
+// if (!canUpdateQuery) {
+//
+// // this user can not update selected query
+// addFlashMessage(
+// _("echobase.info.sqlQuery.not.modifiable"));
+// }
+// }
+// }
+// }
+
private boolean checkQuery() {
boolean result;
Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/SaveExportQuery.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/SaveExportQuery.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/SaveExportQuery.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -0,0 +1,45 @@
+package fr.ifremer.echobase.ui.actions.exportQuery;
+
+import com.opensymphony.xwork2.interceptor.annotations.InputConfig;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * To save a query.
+ * <p/>
+ * Created on 11/9/13.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.5
+ */
+public class SaveExportQuery extends AbstractEditExportQuery {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(SaveExportQuery.class);
+
+ private static final long serialVersionUID = 1L;
+
+ @InputConfig(methodName = INPUT)
+ @Override
+ public String execute() throws Exception {
+
+ boolean newQuery = isNewQuery();
+ if (log.isInfoEnabled()) {
+ if (newQuery) {
+
+ log.info("Will create query: " + getQuery().getName());
+ } else {
+ log.info("Will save query with id: " + getQuery().getTopiaId());
+ }
+ }
+
+ String result = super.execute();
+ if (newQuery) {
+ addFlashMessage(_("echobase.info.query.created"));
+ } else {
+ addFlashMessage(_("echobase.info.query.saved"));
+ }
+ return result;
+ }
+
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/SaveExportQuery.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ShowExportQuery.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ShowExportQuery.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ShowExportQuery.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -0,0 +1,110 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/java… $
+ * %%
+ * 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.exportQuery;
+
+import fr.ifremer.echobase.entities.ExportQuery;
+import fr.ifremer.echobase.entities.ExportQueryImpl;
+import fr.ifremer.echobase.services.service.InternalDbPersistenceService;
+import fr.ifremer.echobase.services.service.exportquery.ExportQueryNotFoundException;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.Map;
+
+/**
+ * To show all {@link ExportQuery}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class ShowExportQuery extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(ShowExportQuery.class);
+
+ /** Selected query loaded from database if his id is not empty. */
+ protected final ExportQuery query = new ExportQueryImpl();
+
+ public ExportQuery getQuery() {
+// if (query == null) {
+// query = exportQueryService.newExportQuery();
+// }
+ return query;
+ }
+
+ public boolean isNewQuery() {
+ return false;
+ }
+
+ public boolean isQueryExists() {
+ return false;
+ }
+
+ public boolean isCanUpdateQuery() {
+ return false;
+ }
+
+ /** All available queries from database. */
+ protected Map<String, String> queries;
+
+ public Map<String, String> getQueries() {
+ return queries;
+ }
+
+ @Override
+ public String execute() throws ExportQueryNotFoundException {
+
+ if (log.isInfoEnabled()) {
+ log.info("Will show all queries");
+ }
+
+ queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class);
+
+ if (queries.isEmpty()) {
+
+ // no query saved
+ addFlashMessage(_("echobase.info.no.sqlQuery.saved"));
+ }
+ return SUCCESS;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Injected objects //
+ //------------------------------------------------------------------------//
+
+// protected transient ExportQueryService exportQueryService;
+//
+// public void setExportQueryService(ExportQueryService exportQueryService) {
+// this.exportQueryService = exportQueryService;
+// }
+
+ protected transient InternalDbPersistenceService internalDbPersistenceService;
+
+ public void setInternalDbPersistenceService(InternalDbPersistenceService internalDbPersistenceService) {
+ this.internalDbPersistenceService = internalDbPersistenceService;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ShowExportQuery.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/EchoBaseInjectInterceptor.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/EchoBaseInjectInterceptor.java 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/EchoBaseInjectInterceptor.java 2013-11-09 18:18:09 UTC (rev 887)
@@ -112,24 +112,8 @@
}
}
-
- try {
-
- return invocation.invoke();
-
- } finally {
-
- // serviceContext.getPersistenceContext().getEntityTransaction().rollback();
-
- }
-
- } else {
-
- // not an action, just process
-
- return invocation.invoke();
-
}
+ return invocation.invoke();
}
@@ -138,14 +122,6 @@
EchoBaseSession session = EchoBaseSession.getEchoBaseSession(
invocation.getInvocationContext());
-// if (session == null) {
-//
-// session = new EchoBaseSession();
-//
-// invocation.getInvocationContext().getSession().put(EchoBaseSession.SESSION_PARAMETER, session);
-//
-// }
-
return session;
}
Modified: trunk/echobase-ui/src/main/resources/config/struts-exportQuery.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-exportQuery.xml 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/resources/config/struts-exportQuery.xml 2013-11-09 18:18:09 UTC (rev 887)
@@ -29,13 +29,19 @@
<struts>
- <package name="exportQuery" extends="logguedAndWithDb" namespace="/exportQuery">
+ <package name="exportQuery" extends="logguedAndWithDb"
+ namespace="/exportQuery">
<result-types>
- <result-type name="redirectExportQuery"
+ <result-type name="redirectToList"
class="org.apache.struts2.dispatcher.ServletActionRedirectResult">
- <param name="actionName">manageExportQuery</param>
- <param name="namespace">export</param>
+ <param name="actionName">list</param>
+ <param name="namespace">exportQuery</param>
+ </result-type>
+ <result-type name="redirectToEdit"
+ class="org.apache.struts2.dispatcher.ServletActionRedirectResult">
+ <param name="actionName">edit</param>
+ <param name="namespace">exportQuery</param>
<param name="query.topiaId">${query.topiaId}</param>
</result-type>
<result-type name="showList"
@@ -46,23 +52,25 @@
</result-types>
- <interceptors>
- <!-- authenticated stack with params - prepare - params -->
- <interceptor-stack name="paramsPrepareParamsStackLogguedWithDb">
- <interceptor-ref name="i18n"/>
- <interceptor-ref name="checkUserLoggued"/>
- <interceptor-ref name="checkWorkingDbSelected"/>
- <interceptor-ref name="paramsPrepareParamsStack"/>
- </interceptor-stack>
- </interceptors>
-
<!-- Display export query main page -->
- <action name="manageExportQuery"
- class="fr.ifremer.echobase.ui.actions.exportQuery.ManageExportQuery">
- <interceptor-ref name="paramsPrepareParamsStackLogguedWithDb"/>
+ <action name="list"
+ class="fr.ifremer.echobase.ui.actions.exportQuery.ShowExportQuery">
+ <!--<interceptor-ref name="paramsPrepareParamsStackLogguedWithDb"/>-->
<result type="showList"/>
</action>
+ <!-- Edit a query -->
+ <action name="edit"
+ class="fr.ifremer.echobase.ui.actions.exportQuery.EditExportQuery">
+ <result type="showList"/>
+ </action>
+
+ <!-- To create a new query -->
+ <action name="create"
+ class="fr.ifremer.echobase.ui.actions.exportQuery.CreateNewExportQuery">
+ <result type="showList"/>
+ </action>
+
<!-- Display the result of the export query execution -->
<action name="exportQueryResult"
class="fr.ifremer.echobase.ui.actions.exportQuery.ExportQueryResult">
@@ -84,40 +92,37 @@
</action>
<!-- Clone the export query -->
- <action name="clone" method="cloneQuery"
- class="fr.ifremer.echobase.ui.actions.exportQuery.ManageExportQuery">
- <interceptor-ref name="paramsPrepareParamsStackLogguedWithDb"/>
+ <action name="clone"
+ class="fr.ifremer.echobase.ui.actions.exportQuery.CloneExportQuery">
+ <interceptor-ref name="prepareParamsStackLogguedWithDb"/>
<result name="input" type="showList"/>
- <result type="redirectExportQuery"/>
+ <result type="redirectToEdit"/>
</action>
<!-- Save the export query -->
- <action name="save" method="saveQuery"
- class="fr.ifremer.echobase.ui.actions.exportQuery.ManageExportQuery">
- <interceptor-ref name="paramsPrepareParamsStackLogguedWithDb"/>
+ <action name="save"
+ class="fr.ifremer.echobase.ui.actions.exportQuery.SaveExportQuery">
+ <interceptor-ref name="prepareParamsStackLogguedWithDb"/>
<result name="input" type="showList"/>
- <result type="redirectExportQuery"/>
+ <result type="redirectToEdit"/>
</action>
<!-- Confirm to delete the export query -->
- <action name="confirmDelete" method="confirmDeleteQuery"
- class="fr.ifremer.echobase.ui.actions.exportQuery.ManageExportQuery">
- <interceptor-ref name="paramsPrepareParamsStackLogguedWithDb"/>
+ <action name="confirmDelete"
+ class="fr.ifremer.echobase.ui.actions.exportQuery.ConfirmDeleteExportQuery">
<result>/WEB-INF/jsp/exportQuery/confirmDelete.jsp</result>
</action>
<!-- Delete the export query -->
- <action name="delete" method="deleteQuery"
- class="fr.ifremer.echobase.ui.actions.exportQuery.ManageExportQuery">
- <interceptor-ref name="paramsPrepareParamsStackLogguedWithDb"/>
- <result name="input" type="showList"/>
- <result type="redirectExportQuery"/>
+ <action name="delete"
+ class="fr.ifremer.echobase.ui.actions.exportQuery.DeleteExportQuery">
+ <result type="redirectToList"/>
</action>
<!-- Download the sql query csv file -->
<action name="downloadExportQueryResult"
class="fr.ifremer.echobase.ui.actions.exportQuery.DownloadExportQueryResult">
- <interceptor-ref name="paramsPrepareParamsStackLogguedWithDb"/>
+ <!--<interceptor-ref name="paramsPrepareParamsStackLogguedWithDb"/>-->
<result type="stream">
<param name="contentType">${contentType}</param>
<param name="contentLength">${contentLength}</param>
Copied: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/CloneExportQuery-validation.xml (from rev 886, trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery-clone-validation.xml)
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/CloneExportQuery-validation.xml (rev 0)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/CloneExportQuery-validation.xml 2013-11-09 18:18:09 UTC (rev 887)
@@ -0,0 +1,79 @@
+<!--
+ #%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%
+ -->
+<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
+ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
+<validators>
+
+ <field name="query.name">
+
+ <field-validator type="requiredstring">
+ <message key="echobase.error.export.name.requiredstring"/>
+ </field-validator>
+ </field>
+
+ <field name="query.description">
+
+ <field-validator type="requiredstring">
+ <message key="echobase.error.export.description.requiredstring"/>
+ </field-validator>
+ </field>
+
+ <field name="query.sqlQuery">
+
+ <field-validator type="requiredstring" short-circuit="true">
+ <message key="echobase.error.export.sqlQuery.requiredstring"/>
+ </field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[!query.sqlQuery.toLowerCase().contains("insert")]]></param>
+ <message key="echobase.error.export.sqlQuery.forbidden.insert.word"/>
+ </field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[!query.sqlQuery.toLowerCase().contains("update")]]></param>
+ <message key="echobase.error.export.sqlQuery.forbidden.update.word"/>
+ </field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[!query.sqlQuery.toLowerCase().contains("delete")]]></param>
+ <message key="echobase.error.export.sqlQuery.forbidden.delete.word"/>
+ </field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[!query.sqlQuery.toLowerCase().contains("drop")]]></param>
+ <message key="echobase.error.export.sqlQuery.forbidden.drop.word"/>
+ </field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[!query.sqlQuery.toLowerCase().contains("alter")]]></param>
+ <message key="echobase.error.export.sqlQuery.forbidden.alter.word"/>
+ </field-validator>
+ </field>
+
+</validators>
\ No newline at end of file
Deleted: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery-clone-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery-clone-validation.xml 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery-clone-validation.xml 2013-11-09 18:18:09 UTC (rev 887)
@@ -1,49 +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%
- -->
-<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
- "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
-<validators>
-
- <field name="query.name">
-
- <field-validator type="requiredstring">
- <message key="echobase.error.export.name.requiredstring"/>
- </field-validator>
- </field>
-
- <field name="query.description">
-
- <field-validator type="requiredstring">
- <message key="echobase.error.export.description.requiredstring"/>
- </field-validator>
- </field>
-
- <field name="query.sqlQuery">
-
- <field-validator type="requiredstring">
- <message key="echobase.error.export.sqlQuery.requiredstring"/>
- </field-validator>
- </field>
-
-</validators>
\ No newline at end of file
Deleted: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery-save-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery-save-validation.xml 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery-save-validation.xml 2013-11-09 18:18:09 UTC (rev 887)
@@ -1,80 +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%
- -->
-<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
- "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
-<validators>
-
- <field name="query.name">
-
- <field-validator type="requiredstring">
- <message key="echobase.error.export.name.requiredstring"/>
- </field-validator>
- </field>
-
- <field name="query.description">
-
- <field-validator type="requiredstring">
- <message key="echobase.error.export.description.requiredstring"/>
- </field-validator>
- </field>
-
- <field name="query.sqlQuery">
-
- <field-validator type="requiredstring" short-circuit="true">
- <message key="echobase.error.export.sqlQuery.requiredstring"/>
- </field-validator>
-
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[!query.sqlQuery.toLowerCase().contains("insert")]]></param>
- <message key="echobase.error.export.sqlQuery.forbidden.insert.word"/>
- </field-validator>
-
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[!query.sqlQuery.toLowerCase().contains("update")]]></param>
- <message key="echobase.error.export.sqlQuery.forbidden.update.word"/>
- </field-validator>
-
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[!query.sqlQuery.toLowerCase().contains("delete")]]></param>
- <message key="echobase.error.export.sqlQuery.forbidden.delete.word"/>
- </field-validator>
-
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[!query.sqlQuery.toLowerCase().contains("drop")]]></param>
- <message key="echobase.error.export.sqlQuery.forbidden.drop.word"/>
- </field-validator>
-
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[!query.sqlQuery.toLowerCase().contains("alter")]]></param>
- <message key="echobase.error.export.sqlQuery.forbidden.alter.word"/>
- </field-validator>
-
- </field>
-
-</validators>
\ No newline at end of file
Copied: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/SaveExportQuery-validation.xml (from rev 886, trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery-save-validation.xml)
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/SaveExportQuery-validation.xml (rev 0)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportQuery/SaveExportQuery-validation.xml 2013-11-09 18:18:09 UTC (rev 887)
@@ -0,0 +1,80 @@
+<!--
+ #%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%
+ -->
+<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
+ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
+<validators>
+
+ <field name="query.name">
+
+ <field-validator type="requiredstring">
+ <message key="echobase.error.export.name.requiredstring"/>
+ </field-validator>
+ </field>
+
+ <field name="query.description">
+
+ <field-validator type="requiredstring">
+ <message key="echobase.error.export.description.requiredstring"/>
+ </field-validator>
+ </field>
+
+ <field name="query.sqlQuery">
+
+ <field-validator type="requiredstring" short-circuit="true">
+ <message key="echobase.error.export.sqlQuery.requiredstring"/>
+ </field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[!query.sqlQuery.toLowerCase().contains("insert")]]></param>
+ <message key="echobase.error.export.sqlQuery.forbidden.insert.word"/>
+ </field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[!query.sqlQuery.toLowerCase().contains("update")]]></param>
+ <message key="echobase.error.export.sqlQuery.forbidden.update.word"/>
+ </field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[!query.sqlQuery.toLowerCase().contains("delete")]]></param>
+ <message key="echobase.error.export.sqlQuery.forbidden.delete.word"/>
+ </field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[!query.sqlQuery.toLowerCase().contains("drop")]]></param>
+ <message key="echobase.error.export.sqlQuery.forbidden.drop.word"/>
+ </field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[!query.sqlQuery.toLowerCase().contains("alter")]]></param>
+ <message key="echobase.error.export.sqlQuery.forbidden.alter.word"/>
+ </field-validator>
+
+ </field>
+
+</validators>
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2013-11-09 18:18:09 UTC (rev 887)
@@ -266,6 +266,10 @@
echobase.info.no.workingDb.selected=No working database selected
echobase.info.no.workingDbConfiguration.saved=No working database configuration saved
echobase.info.no.workingDbConfiguration.selected=Select a working database configuration and then connect
+echobase.info.query.cloned=
+echobase.info.query.created=
+echobase.info.query.removed=
+echobase.info.query.saved=
echobase.info.removeData.failed=Import removal failed
echobase.info.removeData.succeded=Successful data import removal
echobase.info.reportBug=Bug report
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 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2013-11-09 18:18:09 UTC (rev 887)
@@ -266,6 +266,10 @@
echobase.info.no.workingDb.selected=Aucune base de travail sélectionnée
echobase.info.no.workingDbConfiguration.saved=Aucune configuration de base de travail enregistrée
echobase.info.no.workingDbConfiguration.selected=Sélectionner une configuration pour ensuite vous y connecter
+echobase.info.query.cloned=Requête dupliquée
+echobase.info.query.created=Requête créée
+echobase.info.query.removed=Requête supprimée
+echobase.info.query.saved=Requête mise à jour
echobase.info.removeData.failed=La suppresion de l'import a échoué
echobase.info.removeData.succeded=La suppresion de l'import a réussi
echobase.info.reportBug=Rapport de bug
Modified: trunk/echobase-ui/src/main/resources/struts.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/struts.xml 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/resources/struts.xml 2013-11-09 18:18:09 UTC (rev 887)
@@ -35,8 +35,7 @@
name="default" />
<bean class="org.nuiton.web.struts2.I18nTextProvider"
- name="i18nTextProvider"
- type="com.opensymphony.xwork2.TextProvider"/>
+ name="i18nTextProvider" type="com.opensymphony.xwork2.TextProvider"/>
<!-- dev mode tuning -->
<constant name="struts.devMode" value="${devMode}"/>
@@ -152,6 +151,35 @@
<interceptor-ref name="debugging"/>
</interceptor-stack>
+ <!--interceptor-stack name="echobaseParamsPrepareParamsStack">
+ <interceptor-ref name="exception"/>
+ <interceptor-ref name="alias"/>
+ <interceptor-ref name="i18n"/>
+ <interceptor-ref name="checkbox"/>
+ <interceptor-ref name="multiselect"/>
+ <interceptor-ref name="echobaseInjector"/>
+ <interceptor-ref name="params">
+ <param name="excludeParams">dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*</param>
+ </interceptor-ref>
+ <interceptor-ref name="servletConfig"/>
+ <interceptor-ref name="prepare"/>
+ <interceptor-ref name="chain"/>
+ <interceptor-ref name="modelDriven"/>
+ <interceptor-ref name="fileUpload"/>
+ <interceptor-ref name="staticParams"/>
+ <interceptor-ref name="actionMappingParams"/>
+ <interceptor-ref name="params">
+ <param name="excludeParams">dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*</param>
+ </interceptor-ref>
+ <interceptor-ref name="conversionError"/>
+ <interceptor-ref name="validation">
+ <param name="excludeMethods">input,back,cancel,browse</param>
+ </interceptor-ref>
+ <interceptor-ref name="workflow">
+ <param name="excludeMethods">input,back,cancel,browse</param>
+ </interceptor-ref>
+ </interceptor-stack-->
+
</interceptors>
<!-- default action to use everywhere (fix i18n when not translated) -->
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp 2013-11-09 18:18:09 UTC (rev 887)
@@ -102,7 +102,7 @@
<span><s:text name="echobase.menu.importData"/></s:a></span>
</li>
<li>
- <s:a action="manageExportQuery" namespace="/exportQuery"
+ <s:a action="list" namespace="/exportQuery"
cssClass="expDonnee">
<span><s:text name="echobase.menu.export"/></span>
</s:a>
@@ -159,7 +159,7 @@
<s:else>
<s:if test="#session.echoBaseSession.workingDbSelected">
<li>
- <s:a action="manageExportQuery" namespace="/exportQuery"
+ <s:a action="list" namespace="/exportQuery"
cssClass="expDonnee">
<span><s:text name="echobase.menu.export"/></span>
</s:a>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportQuery/exportQuery.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportQuery/exportQuery.jsp 2013-11-04 07:59:04 UTC (rev 886)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportQuery/exportQuery.jsp 2013-11-09 18:18:09 UTC (rev 887)
@@ -29,33 +29,29 @@
<script type="text/javascript">
- function reloadPage(params) {
- var url = "<s:url action='manageExportQuery' namespace='/exportQuery'/>?";
- window.location = url + $.param(params);
- return false;
- }
+ function reloadPage(id) {
+ if (!!!id) {
- function newQuery(newParam) {
- if (<s:property value="%{queryExists or (!newQuery and !newLibreOfficeQuery)}"/>) {
- var params = {};
- params[newParam] = true;
- reloadPage(params);
+ // no edit (show list)
+ window.location = "<s:url action='list' namespace='/exportQuery'/>";
} else {
- $('[name="query.topiaId"]').val('');
- $('[name="query.name"]').val('');
- $('[name="query.description"]').val('');
- $('[name="query.sqlQuery"]').val('');
- if (newParam=='newLibreOfficeQuery') {
- openNewLibreOfficeDialog();
- }
+
+ // edit query
+ window.location = "<s:url action='edit' namespace='/exportQuery'/>?" + $.param({'query.topiaId': id});
}
return false;
}
- function reloadQuery() {
- return reloadPage({'query.topiaId':'<s:property value="query.topiaId"/>'});
+ function newQuery() {
+ window.location = "<s:url action='create' namespace='/exportQuery'/>";
+ return false;
}
+ // function reloadQuery() {
+ <%--return reloadPage('<s:property value="query.topiaId"/>');--%>
+ // }
+
+ <s:if test="%{queryExists}">
function openNewLibreOfficeDialog() {
var dialog = $("#newLibreOfficeDialog");
var url = "<s:url action='newLibreOfficeQuery' namespace='/exportQuery' method="input"/>";
@@ -65,14 +61,16 @@
return false;
}
- function confirmDeleteQuery() {
- var url = "<s:url action='confirmDelete' namespace='/exportQuery'/>?" +
- $.param({ 'query.topiaId':'<s:property value="query.topiaId"/>'});
+ function openConfirmDeleteQueryDialog() {
var dialog = $("#confirmDeleteDialog");
+ var url = "<s:url action='confirmDelete' namespace='/exportQuery'/>?" +
+ $.param({ 'query.topiaId': '<s:property value="query.topiaId"/>'});
+ dialog.html("");
dialog.load(url);
dialog.dialog('open');
return false;
}
+ </s:if>
</script>
<title><s:text name="echobase.title.export"/></title>
@@ -81,7 +79,7 @@
<ul class="toolbar floatLeft">
<li>
- <s:submit onclick="return newQuery('newQuery');" theme="simple"
+ <s:submit onclick="return newQuery();" theme="simple"
key="echobase.action.newQuery"/>
</li>
</ul>
@@ -93,7 +91,7 @@
list="queries" headerKey="" headerValue="" theme="simple"/>
</fieldset>
- <s:if test="%{!#noError or queryExists or newQuery or newLibreOfficeQuery}">
+ <s:if test="%{!#noError or queryExists or newQuery}">
<fieldset>
<legend><s:text name="echobase.legend.sqlQuery.configuration"/></legend>
@@ -101,7 +99,8 @@
readonly="%{queryExists and !canUpdateQuery}"
label="%{getText('echobase.label.query.name')}"/>
- <s:textarea key="query.description" requiredLabel="true" cols="160" rows="2"
+ <s:textarea key="query.description" requiredLabel="true" cols="160"
+ rows="2"
readonly="%{queryExists and !canUpdateQuery}"
label="%{getText('echobase.label.query.description')}"/>
@@ -124,8 +123,8 @@
</li>
<s:if test="queryExists">
<li>
- <s:submit onclick="return reloadQuery();" theme="simple"
- key="echobase.action.reloadSqlQuery"/>
+ <s:submit onclick="return reloadPage('%{query.topiaId}');"
+ theme="simple" key="echobase.action.reloadSqlQuery"/>
</li>
<li>
<s:submit action="clone" theme="simple"
@@ -133,8 +132,8 @@
</li>
<s:if test="canUpdateQuery">
<li>
- <s:submit onclick="return confirmDeleteQuery();" theme="simple"
- key="echobase.action.delete"/>
+ <s:submit onclick="return openConfirmDeleteQueryDialog();"
+ theme="simple" key="echobase.action.delete"/>
</li>
<li>
<s:submit action="save" theme="simple"
@@ -144,6 +143,10 @@
</s:if>
<s:if test="%{!queryExists}">
<li>
+ <s:submit action="list" theme="simple"
+ key="echobase.action.cancel"/>
+ </li>
+ <li>
<s:submit action="save" theme="simple"
key="echobase.action.createSqlQuery"/>
</li>
@@ -170,7 +173,7 @@
jQuery(document).ready(function () {
$('[name="query.topiaId"]').change(function (event) {
- reloadPage({'query.topiaId':this.value});
+ reloadPage(this.value);
});
if (<s:property value='%{#noError and queryExists}'/>) {
@@ -178,19 +181,13 @@
// load sql query
$.ajax(
{
- url:'<s:url action="exportQueryResult" namespace="/exportQuery"/>',
- data:{queryId:$('[name="query.topiaId"]').val()},
- success:function (data, textStatus, jqXHR) {
+ url: '<s:url action="exportQueryResult" namespace="/exportQuery"/>',
+ data: {queryId: $('[name="query.topiaId"]').val()},
+ success: function (data, textStatus, jqXHR) {
$('#resultGrid').html(data);
}
});
}
-
- if (<s:property value="newLibreOfficeQuery"/>) {
-
- // auto load new libreOffice dialog
- openNewLibreOfficeDialog();
- }
});
</script>
1
0
The EchoBase team is pleased to announce the echobase-2.4 release!
The French Institute for the Exploitation of the Sea (Ifremer) has designed
an open software suite for storing fisheries acoustic data and computing
acoustic indicators for survey-based ecosystem monitoring.
It comprises a postgreSQL database designed to store acoustic, navigation
and fishing data from ecosystemic surveys (EchoBase) and a suite of R
codes (EchoR) for computing fish population indicators based on Echobase
data.
Documentation of the project can be found here:
http://maven-site.forge.codelutin.com/echobase
Changes
-------
Changes in this version include:
New features:
o Faciliter la création de nouvelles bases Issue: 3667. Thanks to Tony Chemit. Resolved by tchemit.
o Simplifier la mise en place d'une base spatiale Issue: 3661. Thanks to Tony Chemit. Resolved by tchemit.
o Ajout des données spatiales pour les opérations Issue: 3660. Thanks to Tony Chemit. Resolved by tchemit.
o Utilisation des types geometry Issue: 3652. Thanks to Tony Chemit. Resolved by tchemit.
Fixed Bugs:
o L'application embarquée ne démarre plus Issue: 3663. Thanks to Tony Chemit. Resolved by tchemit.
Changes:
o Updates mavenpom to 4.2 Issue: 3665. Thanks to Tony Chemit. Resolved by tchemit.
o Updates i18n-m-p to 2.5.2 Issue: 3666. Thanks to Tony Chemit. Resolved by tchemit.
o Updates to topia 3.0-alpha-3.1 Issue: 3664. Thanks to Tony Chemit. Resolved by tchemit.
o Updates pogresql driver to 9.2-1003-jdbc4 Issue: 3662. Thanks to Tony Chemit. Resolved by tchemit.
Downloads
---------
For a manual installation, you can download files here:
http://forge.codelutin.com/projects/echobase/files
* echobase-embedded-2.4-SNAPSHOT.zip - http://forge.codelutin.com/attachments/download/1199
* echobase-embedded-2.4-SNAPSHOT.zip - http://forge.codelutin.com/attachments/download/1200
* echobase-full-2.4-SNAPSHOT.war - http://forge.codelutin.com/attachments/download/1201
* echobase-full-2.4-SNAPSHOT.war - http://forge.codelutin.com/attachments/download/1202
* echobase-embedded-2.4.zip - http://forge.codelutin.com/attachments/download/1203
* echobase-full-2.4.war - http://forge.codelutin.com/attachments/download/1204
* echobase-referentiel-2.4.echobase - http://forge.codelutin.com/attachments/download/1205
Maven artifacts
---------------
Artifacts are deployed in nuiton maven repository
http://maven.nuiton.org/other-releases/
Have fun!
-EchoBase team
1
0
r886 - in trunk: . echobase-domain echobase-services echobase-tools echobase-ui
by tchemit@users.forge.codelutin.com 04 Nov '13
by tchemit@users.forge.codelutin.com 04 Nov '13
04 Nov '13
Author: tchemit
Date: 2013-11-04 08:59:04 +0100 (Mon, 04 Nov 2013)
New Revision: 886
Url: http://forge.codelutin.com/projects/echobase/repository/revisions/886
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/echobase-domain/pom.xml
trunk/echobase-services/pom.xml
trunk/echobase-tools/pom.xml
trunk/echobase-ui/pom.xml
trunk/pom.xml
Modified: trunk/echobase-domain/pom.xml
===================================================================
--- trunk/echobase-domain/pom.xml 2013-11-04 07:58:46 UTC (rev 885)
+++ trunk/echobase-domain/pom.xml 2013-11-04 07:59:04 UTC (rev 886)
@@ -9,7 +9,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>2.4</version>
+ <version>2.5-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/echobase-services/pom.xml
===================================================================
--- trunk/echobase-services/pom.xml 2013-11-04 07:58:46 UTC (rev 885)
+++ trunk/echobase-services/pom.xml 2013-11-04 07:59:04 UTC (rev 886)
@@ -6,7 +6,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>2.4</version>
+ <version>2.5-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/echobase-tools/pom.xml
===================================================================
--- trunk/echobase-tools/pom.xml 2013-11-04 07:58:46 UTC (rev 885)
+++ trunk/echobase-tools/pom.xml 2013-11-04 07:59:04 UTC (rev 886)
@@ -11,7 +11,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>2.4</version>
+ <version>2.5-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/echobase-ui/pom.xml
===================================================================
--- trunk/echobase-ui/pom.xml 2013-11-04 07:58:46 UTC (rev 885)
+++ trunk/echobase-ui/pom.xml 2013-11-04 07:59:04 UTC (rev 886)
@@ -7,7 +7,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>2.4</version>
+ <version>2.5-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-11-04 07:58:46 UTC (rev 885)
+++ trunk/pom.xml 2013-11-04 07:59:04 UTC (rev 886)
@@ -11,7 +11,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>2.4</version>
+ <version>2.5-SNAPSHOT</version>
<modules>
<module>echobase-domain</module>
@@ -85,12 +85,12 @@
</developers>
<scm>
- <url>https://forge.codelutin.com/repositories/browse/echobase/tags/echobase-2.4</url>
+ <url>https://forge.codelutin.com/repositories/browse/echobase/trunk</url>
<connection>
- scm:svn:https://forge.codelutin.com/svn/echobase/tags/echobase-2.4
+ scm:svn:https://forge.codelutin.com/svn/echobase/trunk
</connection>
<developerConnection>
- scm:svn:https://forge.codelutin.com/svn/echobase/tags/echobase-2.4
+ scm:svn:https://forge.codelutin.com/svn/echobase/trunk
</developerConnection>
</scm>
1
0