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 2011
- 3 participants
- 137 discussions
r59 - trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor
by tchemit@users.forge.codelutin.com 13 Nov '11
by tchemit@users.forge.codelutin.com 13 Nov '11
13 Nov '11
Author: tchemit
Date: 2011-11-13 23:47:30 +0100 (Sun, 13 Nov 2011)
New Revision: 59
Url: http://forge.codelutin.com/repositories/revision/echobase/59
Log:
let's be able de resize grid on dbeditor (otherwise can not reize editor)
Modified:
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2011-11-13 22:46:30 UTC (rev 58)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2011-11-13 22:47:30 UTC (rev 59)
@@ -69,7 +69,7 @@
pager="true" pagerButtons="true" pagerInput="true" navigator="true"
autowidth="true" rownumbers="false" viewrecords="true"
navigatorEdit="true" navigatorSearch="true"
- navigatorDelete="false" navigatorAdd="false"
+ navigatorDelete="false" navigatorAdd="false" resizable="true"
editurl="%{editUrl}" rowList="10,15,20, 50" rowNum="10"
navigatorSearchOptions="{multipleGroup:false,showQuery:true,multipleSearch:true,sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn','in','ni']}">
1
0
r58 - trunk/echobase-services/src/main/java/fr/ifremer/echobase/services
by tchemit@users.forge.codelutin.com 13 Nov '11
by tchemit@users.forge.codelutin.com 13 Nov '11
13 Nov '11
Author: tchemit
Date: 2011-11-13 23:46:30 +0100 (Sun, 13 Nov 2011)
New Revision: 58
Url: http://forge.codelutin.com/repositories/revision/echobase/58
Log:
close h2 embedded db at creation time
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2011-11-13 22:46:01 UTC (rev 57)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2011-11-13 22:46:30 UTC (rev 58)
@@ -193,7 +193,7 @@
getTransaction().replicateEntities(topiaContext, voyages);
}
} finally {
- topiaContext.closeContext();
+ rootContext.closeContext();
}
}
1
0
r57 - trunk/echobase-services/src/main/java/fr/ifremer/echobase/services
by tchemit@users.forge.codelutin.com 13 Nov '11
by tchemit@users.forge.codelutin.com 13 Nov '11
13 Nov '11
Author: tchemit
Date: 2011-11-13 23:46:01 +0100 (Sun, 13 Nov 2011)
New Revision: 57
Url: http://forge.codelutin.com/repositories/revision/echobase/57
Log:
use decorated entity in db editor
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-13 22:45:29 UTC (rev 56)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-13 22:46:01 UTC (rev 57)
@@ -205,10 +205,25 @@
}
for (int i = 0; i < length; i++) {
PropertyDiff diff = propertyDiffs[i];
+
+ Object sourceValue = diff.getSourceValue();
+ Object targetValue = diff.getTargetValue();
+
+ String propertyName = diff.getSourceProperty();
+
+ if (tableMeta.getColumns(propertyName).isFK()) {
+
+ // replace by the decorate value
+ sourceValue = getDecoratorService().decorate(
+ getLocale(), sourceValue, null);
+ targetValue = getDecoratorService().decorate(
+ getLocale(), targetValue, null);
+
+ }
buffer.append(String.format("\n Propriété '%s', ancienne valeur : %s, nouvelle valeur : %s",
- diff.getSourceProperty(),
- diff.getSourceValue(),
- diff.getTargetValue()
+ propertyName,
+ sourceValue,
+ targetValue
));
}
dao1.create(
1
0
13 Nov '11
Author: tchemit
Date: 2011-11-13 23:45:29 +0100 (Sun, 13 Nov 2011)
New Revision: 56
Url: http://forge.codelutin.com/repositories/revision/echobase/56
Log:
fix sitemesh exclude
Modified:
trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml 2011-11-13 22:22:54 UTC (rev 55)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml 2011-11-13 22:45:29 UTC (rev 56)
@@ -30,8 +30,7 @@
<pattern>/user/login*</pattern>
<pattern>/index*</pattern>
<pattern>/dbeditor/getForeignEntities*</pattern>
- <pattern>/export/loadResult*</pattern>
- <!--<pattern>/json/*</pattern>-->
+ <pattern>/export/exportSqlResult*</pattern>
</excludes>
<decorator name="layout-default" page="layout-default.jsp">
1
0
r55 - in trunk/echobase-ui/src/main: java/fr/ifremer/echobase/ui java/fr/ifremer/echobase/ui/actions java/fr/ifremer/echobase/ui/actions/dbeditor java/fr/ifremer/echobase/ui/actions/export resources resources/config resources/i18n webapp/WEB-INF/includes webapp/WEB-INF/jsp/export
by tchemit@users.forge.codelutin.com 13 Nov '11
by tchemit@users.forge.codelutin.com 13 Nov '11
13 Nov '11
Author: tchemit
Date: 2011-11-13 23:22:54 +0100 (Sun, 13 Nov 2011)
New Revision: 55
Url: http://forge.codelutin.com/repositories/revision/echobase/55
Log:
reformat some codes
implements the CreateEmbeddedApplication actions + ui
rename some actions and action mappings
Added:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/CreateEmbeddedApplication.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadEmbeddedApplication.java
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/createEmbeddedApplication.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSql.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSqlResult.jsp
Removed:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/export.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp
Modified:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java
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/SaveEntity.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadExportSqlResult.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java
trunk/echobase-ui/src/main/resources/config/struts-export.xml
trunk/echobase-ui/src/main/resources/echobase.properties
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2011-11-13 22:22:54 UTC (rev 55)
@@ -30,8 +30,6 @@
import fr.ifremer.echobase.EchoBaseTopiaRootContextSupplierFactory;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.entities.EchoBaseUserDTO;
-import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl;
import fr.ifremer.echobase.entities.EchoBaseUserImpl;
import fr.ifremer.echobase.entities.meta.DbMeta;
import fr.ifremer.echobase.services.EchoBaseServiceContext;
@@ -204,7 +202,7 @@
TopiaContext transaction = rootContextSupplier.get().beginTransaction();
try {
- EchoBaseServiceContext serviceContext = new EchoBaseServiceContextImpl(
+ EchoBaseServiceContext serviceContext = EchoBaseServiceContextImpl.newContext(
Locale.getDefault(),
transaction,
configuration,
@@ -225,24 +223,7 @@
"admin user (password admin).");
}
- EchoBaseUserDTO userDTO;
- userDTO = new EchoBaseUserDTOImpl();
- userDTO.setEmail("admin");
- userDTO.setPassword("admin");
- userDTO.setAdmin(true);
- service.createOrUpdate(userDTO);
-
- if (configuration.getOptionAsBoolean("createAdmins")) {
- for (int i = 0; i < 1000; i++) {
- userDTO = new EchoBaseUserDTOImpl();
- userDTO.setEmail("admin" + i);
- userDTO.setPassword("admin");
- userDTO.setAdmin(i % 2 == 0);
- service.createOrUpdate(userDTO);
-
- }
- }
-
+ service.createDefaultAdminUser();
}
} finally {
transaction.closeContext();
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java 2011-11-13 22:22:54 UTC (rev 55)
@@ -24,7 +24,7 @@
package fr.ifremer.echobase.ui.actions;
import fr.ifremer.echobase.services.Pager;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.json.JSONException;
import org.apache.struts2.json.JSONUtil;
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java 2011-11-13 22:22:54 UTC (rev 55)
@@ -132,7 +132,7 @@
*/
protected EchoBaseServiceContext getServiceContext() {
if (serviceContext == null) {
- serviceContext = new EchoBaseServiceContextImpl(
+ serviceContext = EchoBaseServiceContextImpl.newContext(
getLocale(),
getTransaction(),
getConfiguration(),
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java 2011-11-13 22:22:54 UTC (rev 55)
@@ -29,7 +29,7 @@
import fr.ifremer.echobase.entities.meta.TableMeta;
import fr.ifremer.echobase.services.DbEditorService;
import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import org.nuiton.topia.persistence.TopiaEntity;
import java.util.List;
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java 2011-11-13 22:22:54 UTC (rev 55)
@@ -27,7 +27,7 @@
import fr.ifremer.echobase.entities.meta.TableMeta;
import fr.ifremer.echobase.services.DbEditorService;
import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.interceptor.ParameterAware;
import org.nuiton.util.beans.PropertyDiff;
Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/CreateEmbeddedApplication.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/CreateEmbeddedApplication.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/CreateEmbeddedApplication.java 2011-11-13 22:22:54 UTC (rev 55)
@@ -0,0 +1,91 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.ui.actions.export;
+
+import fr.ifremer.echobase.EchoBaseConfiguration;
+import fr.ifremer.echobase.entities.Voyage;
+import fr.ifremer.echobase.services.VoyageService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.nuiton.util.Version;
+
+import java.io.File;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * To create the embeddedApplication.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class CreateEmbeddedApplication extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Universe of voyages to export in db. */
+ protected Map<String, String> voyages;
+
+ /** Default file name to create. */
+ protected String fileName;
+
+ /** File name of the war used. */
+ protected String warFileName;
+
+ public Map<String, String> getVoyages() {
+ return voyages;
+ }
+
+ public Set<String> getVoyageIds() {
+ return voyages.keySet();
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public String getWarFileName() {
+ return warFileName;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ VoyageService service = newService(VoyageService.class);
+ List<Voyage> allVoyages = service.getVoyages();
+ voyages = sortAndDecorate(allVoyages, null);
+
+ EchoBaseConfiguration configuration = getConfiguration();
+ Version version = configuration.getApplicationVersion();
+ fileName = "echobase-embedded-" + version.toString();
+ File warLocation = configuration.getWarLocation();
+ if (!warLocation.exists()) {
+ addActionError(_("echobase.error.warlocation.notFound",
+ warLocation));
+ }
+ warFileName = warLocation.getName();
+ return SUCCESS;
+ }
+
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/CreateEmbeddedApplication.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadEmbeddedApplication.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadEmbeddedApplication.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadEmbeddedApplication.java 2011-11-13 22:22:54 UTC (rev 55)
@@ -0,0 +1,94 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.ui.actions.export;
+
+import fr.ifremer.echobase.services.EmbeddedApplicationService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+
+/**
+ * Download the result of sql request in csv format.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class DownloadEmbeddedApplication extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Input stream of the file to download. */
+ protected transient InputStream inputStream;
+
+ /** File name of the download. */
+ protected String fileName;
+
+ /** Length of the file to download. */
+ protected long contentLength;
+
+ /** Content type of the file to download. */
+ protected String contentType;
+
+ /** Selected voyage ids to export. */
+ protected String[] voyageIds;
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public void setVoyageIds(String[] voyageIds) {
+ this.voyageIds = voyageIds;
+ }
+
+ public InputStream getInputStream() {
+ return inputStream;
+ }
+
+ public long getContentLength() {
+ return contentLength;
+ }
+
+ public String getContentType() {
+ return contentType;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ EmbeddedApplicationService service =
+ newService(EmbeddedApplicationService.class);
+ contentType = "application/zip";
+ File zipFile = service.createEmbeddedApplication(fileName, voyageIds);
+ contentLength = zipFile.length();
+ fileName += ".zip";
+ inputStream = new FileInputStream(zipFile);
+ return SUCCESS;
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadEmbeddedApplication.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadExportSqlResult.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadExportSqlResult.java 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadExportSqlResult.java 2011-11-13 22:22:54 UTC (rev 55)
@@ -30,7 +30,7 @@
import java.io.InputStream;
/**
- * To export sql to a csv file.
+ * Download the result of sql request in csv format.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
@@ -84,7 +84,7 @@
ExportSqlService service = newService(ExportSqlService.class);
contentType = "text/csv";
- String content = service.createCsvStream(
+ String content = service.createCsvFileContent(
sql,
getEchoBaseSession().getEchoBaseUser()
);
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java 2011-11-13 22:22:54 UTC (rev 55)
@@ -27,7 +27,7 @@
import fr.ifremer.echobase.entities.ExportQueryImpl;
import fr.ifremer.echobase.services.ExportSqlService;
import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import java.util.Collection;
import java.util.Map;
@@ -84,7 +84,7 @@
} else {
// load query from database
- query = service.getQuery(selectedQueryId);
+ query = service.getQueryById(selectedQueryId);
}
return SUCCESS;
}
Modified: trunk/echobase-ui/src/main/resources/config/struts-export.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-export.xml 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/resources/config/struts-export.xml 2011-11-13 22:22:54 UTC (rev 55)
@@ -32,7 +32,7 @@
<package name="export" extends="loggued" namespace="/export">
<result-types>
- <result-type name="redirectToMainPage"
+ <result-type name="redirectExportSql"
class="org.apache.struts2.dispatcher.ServletActionRedirectResult">
<param name="actionName">exportSql</param>
<param name="namespace">export</param>
@@ -43,41 +43,47 @@
<!-- Display export sql main page -->
<action name="exportSql"
class="fr.ifremer.echobase.ui.actions.export.ExportSql">
- <result>/WEB-INF/jsp/export/export.jsp</result>
+ <result>/WEB-INF/jsp/export/exportSql.jsp</result>
</action>
<!-- Display the result of the sql query execution -->
- <action name="loadResult"
+ <action name="exportSqlResult"
class="fr.ifremer.echobase.ui.actions.export.ExportSqlResult">
- <result>/WEB-INF/jsp/export/exportGrid.jsp</result>
+ <result>/WEB-INF/jsp/export/exportSqlResult.jsp</result>
</action>
+ <!-- Display the create embedded application main page -->
+ <action name="createEmbeddedApplication"
+ class="fr.ifremer.echobase.ui.actions.export.CreateEmbeddedApplication">
+ <result>/WEB-INF/jsp/export/createEmbeddedApplication.jsp</result>
+ </action>
+
<!-- Get result of the sql query execution -->
- <action name="getExportSqlResult" method="execute"
+ <action name="getExportSqlResult"
class="fr.ifremer.echobase.ui.actions.export.GetSqlResult">
<result type="json"/>
</action>
<!-- Clone the sql query -->
- <action name="cloneQuery" method="cloneQuery"
+ <action name="cloneExportQuery" method="cloneQuery"
class="fr.ifremer.echobase.ui.actions.export.ManageExportQuery">
- <result type="redirectToMainPage"/>
+ <result type="redirectExportSql"/>
</action>
<!-- Save the sql query -->
- <action name="saveQuery" method="saveQuery"
+ <action name="saveExportQuery" method="saveQuery"
class="fr.ifremer.echobase.ui.actions.export.ManageExportQuery">
- <result type="redirectToMainPage"/>
+ <result type="redirectExportSql"/>
</action>
<!-- Delete the sql query -->
- <action name="deleteQuery" method="deleteQuery"
+ <action name="deleteExportQuery" method="deleteQuery"
class="fr.ifremer.echobase.ui.actions.export.ManageExportQuery">
- <result type="redirectToMainPage"/>
+ <result type="redirectExportSql"/>
</action>
- <!-- Download the sql query csb file -->
- <action name="downloadExport"
+ <!-- Download the sql query csv file -->
+ <action name="downloadExportSqlResult"
class="fr.ifremer.echobase.ui.actions.export.DownloadExportSqlResult">
<result type="stream">
<param name="contentType">${contentType}</param>
@@ -86,6 +92,16 @@
</result>
</action>
+ <!-- Download the embedded application zip file -->
+ <action name="downloadEmbeddedApplication"
+ class="fr.ifremer.echobase.ui.actions.export.DownloadEmbeddedApplication">
+ <result type="stream">
+ <param name="contentType">${contentType}</param>
+ <param name="contentLength">${contentLength}</param>
+ <param name="contentDisposition">filename="${fileName}"</param>
+ </result>
+ </action>
+
</package>
</struts>
Modified: trunk/echobase-ui/src/main/resources/echobase.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/echobase.properties 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/resources/echobase.properties 2011-11-13 22:22:54 UTC (rev 55)
@@ -22,14 +22,14 @@
# #L%
###
-application.version=${project.version}
-application.site.url=${project.url}
+project.version=${project.version}
+project.site.url=${project.url}
hibernate.hbm2ddl.auto=none
hibernate.show_sql=false
hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.connection.driver_class=org.h2.Driver
-hibernate.connection.url=jdbc:h2:file:${data.directory}/db/h2data
+hibernate.connection.url=jdbc:h2:file:${data.directory}/db/echobase
hibernate.connection.username=sa
hibernate.connection.password=sa
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2011-11-13 22:22:54 UTC (rev 55)
@@ -2,6 +2,7 @@
echobase.action.backToUserList=Retour à la liste des utilisateurs
echobase.action.cloneSqlQuery=Cloner la requête
echobase.action.create=Créer
+echobase.action.createEmbeddedApplication=Créer l'application
echobase.action.delete=Suppression
echobase.action.deleteSqlQuery=Supprimer la requête
echobase.action.exportSqlData=Exporter les données
@@ -16,6 +17,8 @@
echobase.common.admin=Administrateur
echobase.common.comment=Commentaire
echobase.common.email=Email
+echobase.common.embeddedApplicationFileName=Nom de l'archive à télécharger
+echobase.common.embeddedWarFileName=Nom du war à utiliser
echobase.common.exportFileName=Nom du fichier d'export
echobase.common.import=Import configuration
echobase.common.jdbcLogin=Login de connexion
@@ -29,12 +32,15 @@
echobase.common.tableName=Nom de la table
echobase.common.user=Utilisateur
echobase.common.voyage=Campagne
+echobase.common.voyagesToSelect=Campagnes à exporter
+echobase.embeddedApplication.configuration=Configuration de l'application embarquée
echobase.error.bad.password=Mot de passe incorrrect
echobase.error.email.already.used=
echobase.error.importArgument=
echobase.error.login.unknown=Utilisateur inconnu
echobase.error.required.email=L'email est obligatoire
echobase.error.required.password=Le mot de passe est obligatoire
+echobase.error.warlocation.notFound=L'application n'a pas été trouvé à l'emplacement suivant %s
echobase.export.queryDescription=Description
echobase.export.queryName=Nom
echobase.export.querySql=SQL
@@ -58,6 +64,7 @@
echobase.label.user.login=Utilisateur \: %s
echobase.label.welcome=Bienvenue dans EchoBase
echobase.menu.connectToDbInformations=Se connecter à la base
+echobase.menu.createEmbeddedApplication=Créer une application embarquée
echobase.menu.dbeditor=Modifier les données
echobase.menu.export=Exporter des données
echobase.menu.import=Importer des données
@@ -71,6 +78,7 @@
echobase.sqlQuery.result=Résultats de la requête
echobase.title.connectToDbInformations=Se connecter à la base de données
echobase.title.connectionToDb.detail=Détail de la connection à la base de données
+echobase.title.createEmbeddedApplication=Création de l'application embarquée
echobase.title.dbEditor=Modification de la base
echobase.title.entityModificationLogs=Journal des modifications
echobase.title.export=Export
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp 2011-11-13 22:22:54 UTC (rev 55)
@@ -78,13 +78,17 @@
<s:text name="echobase.menu.connectToDbInformations"/>
</s:a>
</li>
- <s:if
- test="%{userIsAdmin}">
+ <s:if test="%{userIsAdmin}">
<li>
<s:a action="userList" namespace="/user">
<s:text name="echobase.menu.users"/>
</s:a>
</li>
+ <li>
+ <s:a action="createEmbeddedApplication" namespace="/export">
+ <s:text name="echobase.menu.createEmbeddedApplication"/>
+ </s:a>
+ </li>
</s:if>
</ul>
</div>
Added: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/createEmbeddedApplication.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/createEmbeddedApplication.jsp (rev 0)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/createEmbeddedApplication.jsp 2011-11-13 22:22:54 UTC (rev 55)
@@ -0,0 +1,60 @@
+<%--
+ #%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%
+ --%>
+<%@page contentType="text/html" pageEncoding="UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
+
+<title><s:text name="echobase.title.createEmbeddedApplication"/></title>
+
+<s:form namespace="/export">
+
+ <br/>
+
+ <fieldset>
+ <legend><s:text name="echobase.embeddedApplication.configuration"/></legend>
+
+ <s:checkboxlist list="voyages" key="voyageIds"
+ label="%{getText('echobase.common.voyagesToSelect')}"/>
+
+ <s:textfield key="fileName" required="true" size="100"
+ label="%{getText('echobase.common.embeddedApplicationFileName')} (*)"/>
+
+ <s:label value="%{warFileName}" readonly="true"
+ label="%{getText('echobase.common.embeddedWarFileName')}"/>
+
+ <s:if test="!hasActionErrors()">
+
+ <br/>
+ <s:submit key="echobase.action.createEmbeddedApplication"
+ action="downloadEmbeddedApplication"
+ align="right"/>
+
+ </s:if>
+
+ </fieldset>
+ <div>(*) Il s'agit du nom de l'archvie et du répertoire contenu dans l'archive,
+ l'extension <strong>.zip</strong> sera automatiquement rajoutée.</div>
+</s:form>
+
+
Property changes on: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/createEmbeddedApplication.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/export.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/export.jsp 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/export.jsp 2011-11-13 22:22:54 UTC (rev 55)
@@ -1,136 +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%
- --%>
-<%@page contentType="text/html" pageEncoding="UTF-8" %>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-
-<s:url id="loadUrl" action='exportSql' namespace='/export'/>
-<s:url id="loadGridUrl" action="loadResult" namespace="/export"/>
-<script type="text/javascript">
-
- function reloadQuery() {
- var queryId = $('[name="query.topiaId"]').val();
- var url = "${loadUrl}?" + $.param({ 'query.topiaId':queryId});
- window.location = url;
- return false;
- }
-
- function loadGridData() {
- // get sql query
- var sqlQuery = "${loadGridUrl}?" + $.param({ sql :$('[name="query.sqlQuery"]').val()});
-
- $.ajax(sqlQuery, {
- success: function(data, textStatus, jqXHR) {
- $('#resultGrid').html(data);
- }
- });
- return false;
- }
-
- jQuery(document).ready(function () {
-
- $('[name="query.topiaId"]').change(function(event) {
- var url = "${loadUrl}?" + $.param({ 'query.topiaId':this.value});
- window.location = url;
- });
-
- var queryId = $('[name="query.topiaId"]').val();
- if (queryId) {
- // auto launch query
- loadGridData();
- }
-
- });
-
-
-</script>
-
-<title><s:text name="echobase.title.export"/></title>
-
-
-<s:set var="queryExists" value="query.topiaId != null && query.topiaId != ''"/>
-
-<s:form id="exportQueryForm" namespace="/export">
-
- <s:select key="query.topiaId" label="%{getText('echobase.common.sqlQueries')}"
- list="queries" headerKey="" headerValue=""/>
-
- <br/>
-
- <fieldset>
- <legend><s:text name="echobase.sqlQuery.configuration"/></legend>
-
- <s:textarea key="query.name" required="true" cols="160" rows="1"
- label="%{getText('echobase.common.query.name')}"/>
-
- <s:textarea key="query.description" required="true" cols="160" rows="2"
- label="%{getText('echobase.common.query.description')}"/>
-
- <s:textarea key="query.sqlQuery" required="true" cols="160" rows="4"
- label="%{getText('echobase.common.sqlQuery')}"/>
-
- <s:if test="queryExists">
-
- <s:label value="%{query.lastModifiedDate}" readonly="true"
- label="%{getText('echobase.common.lastModifiedDate')}"/>
-
- <s:label value="%{decorate(query.lastModifiedUser, null)}" readonly="true"
- label="%{getText('echobase.common.lastModifiedUser')}"/>
-
- </s:if>
-
-
- <ul class="toolbar floatRight">
- <s:if test="queryExists">
- <li>
- <s:submit onclick="return reloadQuery();"
- key="echobase.action.reloadSqlQuery"
- theme="simple"/>
- </li>
- <li>
- <s:submit action="cloneQuery" key="echobase.action.cloneSqlQuery"
- theme="simple"/>
- </li>
- <li>
- <s:submit action="deleteQuery" key="echobase.action.deleteSqlQuery"
- theme="simple"/>
- </li>
- </s:if>
- <li>
- <s:submit action="saveQuery" key="echobase.action.saveSqlQuery"
- theme="simple"/>
- </li>
- <li>
- <s:submit key="echobase.action.applySqlQuery" theme="simple"
- onclick="return loadGridData();"/>
- </li>
- </ul>
- </fieldset>
-</s:form>
-
-<br/>
-
-<div id="resultGrid" class="cleanBoth"></div>
-
-
Deleted: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp 2011-11-13 22:20:37 UTC (rev 54)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp 2011-11-13 22:22:54 UTC (rev 55)
@@ -1,64 +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%
- --%>
-<%@page contentType="text/html" pageEncoding="UTF-8" %>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
-
-<s:url id="loadUrl" action="getExportSqlResult" namespace="/export"
- escapeAmp="false">
- <s:param name="sql" value="%{sql}"/>
-</s:url>
-
-<s:form action="downloadExport" namespace="/export">
-
- <fieldset>
- <legend><s:text name="echobase.sqlQuery.result"/></legend>
-
- <s:hidden key="sql" label=""/>
- <s:textfield key="fileName" required="true" size="100"
- label="%{getText('echobase.common.exportFileName')}"/>
- <s:submit key="echobase.action.exportSqlData" align="left"/>
- <br/>
-<sjg:grid id="rows" caption="%{getText('echobase.common.request.result')}"
- dataType="json" href="%{loadUrl}" gridModel="datas"
- pager="true" pagerButtons="true" pagerInput="true"
- navigator="true" autowidth="true" rownumbers="false"
- navigatorEdit="false" navigatorDelete="false"
- navigatorSearch="false" navigatorRefresh="false"
- navigatorAdd="false" rowList="10,15,20,50" rowNum="10"
- viewrecords="true">
-
- <s:iterator value="columnNames" var="name" status="status">
-
- <sjg:gridColumn name="%{#name}" title="%{#name}" sortable="false"/>
-
- </s:iterator>
-
-</sjg:grid>
- </fieldset>
-</s:form>
-
-
-
Copied: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSql.jsp (from rev 51, trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/export.jsp)
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSql.jsp (rev 0)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSql.jsp 2011-11-13 22:22:54 UTC (rev 55)
@@ -0,0 +1,135 @@
+<%--
+ #%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%
+ --%>
+<%@page contentType="text/html" pageEncoding="UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
+
+<s:url id="reloadUrl" action='exportSql' namespace='/export'/>
+<s:url id="exportSqlResultUrl" action="exportSqlResult" namespace="/export"/>
+<script type="text/javascript">
+
+ function reloadQuery() {
+ var queryId = $('[name="query.topiaId"]').val();
+ var url = "${reloadUrl}?" + $.param({ 'query.topiaId':queryId});
+ window.location = url;
+ return false;
+ }
+
+ function loadGridData() {
+ // get sql query
+ var sqlQuery = "${exportSqlResultUrl}?" +
+ $.param({ sql :$('[name="query.sqlQuery"]').val()});
+
+ $.ajax(sqlQuery, {
+ success: function(data, textStatus, jqXHR) {
+ $('#resultGrid').html(data);
+ }
+ });
+ return false;
+ }
+
+ jQuery(document).ready(function () {
+
+ $('[name="query.topiaId"]').change(function(event) {
+ var url = "${reloadUrl}?" + $.param({ 'query.topiaId':this.value});
+ window.location = url;
+ });
+
+ var queryId = $('[name="query.topiaId"]').val();
+ if (queryId) {
+ // auto launch query
+ loadGridData();
+ }
+
+ });
+
+
+</script>
+
+<title><s:text name="echobase.title.export"/></title>
+
+<s:set var="queryExists" value="query.topiaId != null && query.topiaId != ''"/>
+
+<s:form id="exportQueryForm" namespace="/export">
+
+ <s:select key="query.topiaId" label="%{getText('echobase.common.sqlQueries')}"
+ list="queries" headerKey="" headerValue=""/>
+
+ <br/>
+
+ <fieldset>
+ <legend><s:text name="echobase.sqlQuery.configuration"/></legend>
+
+ <s:textarea key="query.name" required="true" cols="160" rows="1"
+ label="%{getText('echobase.common.query.name')}"/>
+
+ <s:textarea key="query.description" required="true" cols="160" rows="2"
+ label="%{getText('echobase.common.query.description')}"/>
+
+ <s:textarea key="query.sqlQuery" required="true" cols="160" rows="4"
+ label="%{getText('echobase.common.sqlQuery')}"/>
+
+ <s:if test="queryExists">
+
+ <s:label value="%{query.lastModifiedDate}" readonly="true"
+ label="%{getText('echobase.common.lastModifiedDate')}"/>
+
+ <s:label value="%{decorate(query.lastModifiedUser, null)}" readonly="true"
+ label="%{getText('echobase.common.lastModifiedUser')}"/>
+
+ </s:if>
+
+
+ <ul class="toolbar floatRight">
+ <s:if test="queryExists">
+ <li>
+ <s:submit onclick="return reloadQuery();" theme="simple"
+ key="echobase.action.reloadSqlQuery"/>
+ </li>
+ <li>
+ <s:submit action="cloneExportQuery" theme="simple"
+ key="echobase.action.cloneSqlQuery"/>
+ </li>
+ <li>
+ <s:submit action="deleteExportQuery" theme="simple"
+ key="echobase.action.deleteSqlQuery"/>
+ </li>
+ </s:if>
+ <li>
+ <s:submit action="saveExportQuery" theme="simple"
+ key="echobase.action.saveSqlQuery"/>
+ </li>
+ <li>
+ <s:submit key="echobase.action.applySqlQuery" theme="simple"
+ onclick="return loadGridData();"/>
+ </li>
+ </ul>
+ </fieldset>
+</s:form>
+
+<br/>
+
+<div id="resultGrid" class="cleanBoth"></div>
+
+
Property changes on: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSql.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSqlResult.jsp (from rev 51, trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp)
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSqlResult.jsp (rev 0)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSqlResult.jsp 2011-11-13 22:22:54 UTC (rev 55)
@@ -0,0 +1,64 @@
+<%--
+ #%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%
+ --%>
+<%@page contentType="text/html" pageEncoding="UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
+<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
+
+<s:url id="loadUrl" action="getExportSqlResult" namespace="/export"
+ escapeAmp="false">
+ <s:param name="sql" value="%{sql}"/>
+</s:url>
+
+<s:form action="downloadExportSqlResult" namespace="/export">
+
+ <fieldset>
+ <legend><s:text name="echobase.sqlQuery.result"/></legend>
+
+ <s:hidden key="sql" label=""/>
+ <s:textfield key="fileName" required="true" size="100"
+ label="%{getText('echobase.common.exportFileName')}"/>
+ <s:submit key="echobase.action.exportSqlData" align="left"/>
+ <br/>
+<sjg:grid id="rows" caption="%{getText('echobase.common.request.result')}"
+ dataType="json" href="%{loadUrl}" gridModel="datas"
+ pager="true" pagerButtons="true" pagerInput="true"
+ navigator="true" autowidth="true" rownumbers="false"
+ navigatorEdit="false" navigatorDelete="false"
+ navigatorSearch="false" navigatorRefresh="false"
+ navigatorAdd="false" rowList="10,15,20,50" rowNum="10"
+ viewrecords="true">
+
+ <s:iterator value="columnNames" var="name" status="status">
+
+ <sjg:gridColumn name="%{#name}" title="%{#name}" sortable="false"/>
+
+ </s:iterator>
+
+</sjg:grid>
+ </fieldset>
+</s:form>
+
+
+
Property changes on: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSqlResult.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
r54 - in trunk/echobase-services/src/main: java/fr/ifremer/echobase/services java/fr/ifremer/echobase/services/models resources
by tchemit@users.forge.codelutin.com 13 Nov '11
by tchemit@users.forge.codelutin.com 13 Nov '11
13 Nov '11
Author: tchemit
Date: 2011-11-13 23:20:37 +0100 (Sun, 13 Nov 2011)
New Revision: 54
Url: http://forge.codelutin.com/repositories/revision/echobase/54
Log:
- add createAdmin in userService
- can duplicate s service context (needed when two db context at the same time)
- implements the EmbeddedApplicationService
- improvement in service api
Added:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java
trunk/echobase-services/src/main/resources/echobase-embedded.properties
Removed:
trunk/echobase-services/src/main/resources/echobase-db-h2.properties
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractEchoBaseService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportSqlService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportModel.java
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractEchoBaseService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractEchoBaseService.java 2011-11-13 22:18:21 UTC (rev 53)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractEchoBaseService.java 2011-11-13 22:20:37 UTC (rev 54)
@@ -23,6 +23,7 @@
*/
package fr.ifremer.echobase.services;
+import fr.ifremer.echobase.EchoBaseConfiguration;
import fr.ifremer.echobase.entities.meta.DbMeta;
import org.nuiton.topia.TopiaContext;
@@ -53,5 +54,14 @@
return serviceContext.getDbMeta();
}
+ protected EchoBaseConfiguration getConfiguration() {
+ return serviceContext.getConfiguration();
+ }
+ protected <E extends EchoBaseService> E newService(Class<E> serviceClass) {
+ E e = serviceContext.newService(serviceClass);
+ return e;
+ }
+
+
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-13 22:18:21 UTC (rev 53)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-13 22:20:37 UTC (rev 54)
@@ -35,7 +35,7 @@
import fr.ifremer.echobase.entities.meta.DbMeta;
import fr.ifremer.echobase.entities.meta.TableMeta;
import org.apache.commons.beanutils.BeanUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaException;
@@ -65,8 +65,7 @@
protected DecoratorService getDecoratorService() {
if (decoratorService == null) {
-
- decoratorService = serviceContext.newService(DecoratorService.class);
+ decoratorService = newService(DecoratorService.class);
}
return decoratorService;
}
@@ -230,7 +229,8 @@
}
}
- protected Map<String, Object> loadRow(TableMeta tableMeta, TopiaEntity entity) {
+ protected Map<String, Object> loadRow(TableMeta tableMeta,
+ TopiaEntity entity) {
Map<String, Object> row = Maps.newLinkedHashMap();
EntityOperator<TopiaEntity> operator =
(EntityOperator<TopiaEntity>) tableMeta.getOperator();
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java 2011-11-13 22:18:21 UTC (rev 53)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java 2011-11-13 22:20:37 UTC (rev 54)
@@ -42,12 +42,16 @@
TopiaContext getTransaction();
+ void setTransaction(TopiaContext transaction);
+
Locale getLocale();
EchoBaseConfiguration getConfiguration();
DbMeta getDbMeta();
+ EchoBaseServiceFactory getServiceFactory();
+
<E extends EchoBaseService> E newService(Class<E> clazz);
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java 2011-11-13 22:18:21 UTC (rev 53)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java 2011-11-13 22:20:37 UTC (rev 54)
@@ -48,11 +48,35 @@
protected DbMeta dbMeta;
- public EchoBaseServiceContextImpl(Locale locale,
- TopiaContext transaction,
- EchoBaseConfiguration configuration,
- DbMeta dbMeta,
- EchoBaseServiceFactory serviceFactory) {
+ public static EchoBaseServiceContextImpl newContext(
+ EchoBaseServiceContext serviceContext,
+ TopiaContext transaction) {
+ return newContext(serviceContext.getLocale(),
+ transaction,
+ serviceContext.getConfiguration(),
+ serviceContext.getDbMeta(),
+ serviceContext.getServiceFactory()
+ );
+ }
+
+ public static EchoBaseServiceContextImpl newContext(
+ Locale locale,
+ TopiaContext transaction,
+ EchoBaseConfiguration configuration,
+ DbMeta dbMeta,
+ EchoBaseServiceFactory serviceFactory) {
+ return new EchoBaseServiceContextImpl(locale,
+ transaction,
+ configuration,
+ dbMeta,
+ serviceFactory);
+ }
+
+ protected EchoBaseServiceContextImpl(Locale locale,
+ TopiaContext transaction,
+ EchoBaseConfiguration configuration,
+ DbMeta dbMeta,
+ EchoBaseServiceFactory serviceFactory) {
this.locale = locale;
this.transaction = transaction;
this.configuration = configuration;
@@ -67,6 +91,11 @@
}
@Override
+ public void setTransaction(TopiaContext transaction) {
+ this.transaction = transaction;
+ }
+
+ @Override
public Locale getLocale() {
return locale;
}
@@ -86,7 +115,8 @@
return dbMeta;
}
- protected EchoBaseServiceFactory getServiceFactory() {
+ @Override
+ public EchoBaseServiceFactory getServiceFactory() {
return serviceFactory;
}
}
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2011-11-13 22:20:37 UTC (rev 54)
@@ -0,0 +1,201 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $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.services;
+
+import com.google.common.base.Supplier;
+import com.google.common.collect.Lists;
+import fr.ifremer.echobase.EchoBaseTechnicalException;
+import fr.ifremer.echobase.EchoBaseTopiaRootContextSupplierFactory;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.ExportQuery;
+import fr.ifremer.echobase.entities.Voyage;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.ZipUtil;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.List;
+
+/**
+ * To create embedded application.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class EmbeddedApplicationService extends AbstractEchoBaseService {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(EmbeddedApplicationService.class);
+
+
+ public File createEmbeddedApplication(String fileName, String... voyageIds) {
+
+ File warLocation = getConfiguration().getWarLocation();
+
+ File tempDirectory = new File(FileUtils.getTempDirectory(),
+ "echobase-embedded_" + System.nanoTime());
+ tempDirectory.deleteOnExit();
+
+ File zipDirectory = new File(tempDirectory, fileName);
+
+ File zipFile = new File(tempDirectory, "echobase.zip");
+
+ if (log.isInfoEnabled()) {
+ log.info("Creates zip file [" + zipFile + "] from directory " +
+ zipDirectory);
+ }
+ try {
+ // create /
+ FileUtil.createDirectoryIfNecessary(zipDirectory);
+
+ // copy configuration file to /
+ copyConfigurationFile(zipDirectory);
+
+ // copy war to /
+ FileUtil.copy(warLocation, new File(zipDirectory, warLocation.getName()));
+
+ // create h2 db in /db
+ createH2Batabase(zipDirectory, voyageIds);
+
+ } catch (Exception eee) {
+ throw new EchoBaseTechnicalException(
+ "Could not create zip structure at location " +
+ zipDirectory, eee);
+ }
+
+
+ try {
+ ZipUtil.compress(zipFile, zipDirectory);
+ } catch (IOException eee) {
+ throw new EchoBaseTechnicalException(
+ "Can not create zip file " + zipFile, eee);
+ } finally {
+ FileUtil.deleteRecursively(zipDirectory);
+ }
+
+ return zipFile;
+ }
+
+ protected void copyConfigurationFile(File zipDirectory) throws IOException {
+
+ File configurationfile = new File(zipDirectory, "echobase.properties");
+ if (log.isInfoEnabled()) {
+ log.info("Copy configuration to " + configurationfile);
+ }
+ InputStream configInputStream =
+ getClass().getResourceAsStream("/echobase-embedded.properties");
+ OutputStream configOutputStream = new FileOutputStream(configurationfile);
+ try {
+ IOUtils.copy(configInputStream, configOutputStream);
+ } finally {
+ IOUtils.closeQuietly(configInputStream);
+ configOutputStream.close();
+ }
+ }
+
+ protected void createH2Batabase(File zipDirectory,
+ String... voyageIds) throws IOException, TopiaException {
+
+ // create new h2 db
+ Supplier<TopiaContext> topiaContextSupplier =
+ new EchoBaseTopiaRootContextSupplierFactory().newEmbeddedDatabase(zipDirectory);
+
+ TopiaContext rootContext = topiaContextSupplier.get();
+
+ TopiaContext topiaContext = rootContext.beginTransaction();
+ try {
+
+ // create new service context (with new transaction)
+ EchoBaseServiceContext newServiceContext =
+ EchoBaseServiceContextImpl.newContext(serviceContext,
+ topiaContext);
+
+ // get user service from h2 db
+ UserService userService =
+ newServiceContext.newService(UserService.class);
+
+ // create admin user
+ userService.createDefaultAdminUser();
+
+ // get admin from h2 db
+ EchoBaseUser admin = userService.getUserByEmail(
+ UserService.DEFAULT_ADMIN_EMAIL);
+
+ // get export query service
+ ExportSqlService exportSqlService =
+ newService(ExportSqlService.class);
+
+ // get all export queries from application
+ List<ExportQuery> queries = exportSqlService.getQueries();
+
+ // remove link to application user
+ for (ExportQuery query : queries) {
+ query.setLastModifiedUser(null);
+ }
+
+ // replicate queries
+ getTransaction().replicateEntities(topiaContext, queries);
+
+ // create export sql service from h2 db
+ exportSqlService =
+ newServiceContext.newService(ExportSqlService.class);
+
+ // get all queries from h2 db
+ queries = exportSqlService.getQueries();
+
+ // attach them to default created admin user in the db
+ for (ExportQuery query : queries) {
+ exportSqlService.createOrUpdate(query, admin);
+ }
+
+ // replicate referentiel to new h2 db
+ //TODO
+
+ if (voyageIds != null) {
+ // replicate selected voyage to new h2 db
+ VoyageService voyageService = newService(VoyageService.class);
+ List<Voyage> voyages = Lists.newArrayList();
+ for (String voyageId : voyageIds) {
+ Voyage voyage = voyageService.getVoyageById(voyageId);
+ voyages.add(voyage);
+ }
+ getTransaction().replicateEntities(topiaContext, voyages);
+ }
+ } finally {
+ topiaContext.closeContext();
+ }
+
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportSqlService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportSqlService.java 2011-11-13 22:18:21 UTC (rev 53)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportSqlService.java 2011-11-13 22:20:37 UTC (rev 54)
@@ -28,7 +28,7 @@
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.ExportQuery;
import fr.ifremer.echobase.entities.ExportQueryDAO;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaContext;
@@ -40,7 +40,6 @@
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -56,7 +55,7 @@
/** Logger. */
private static final Log log = LogFactory.getLog(ExportSqlService.class);
- public Collection<ExportQuery> getQueries() {
+ public List<ExportQuery> getQueries() {
try {
List<ExportQuery> result = getDAO().findAll();
return result;
@@ -65,7 +64,7 @@
}
}
- public ExportQuery getQuery(String queryId) {
+ public ExportQuery getQueryById(String queryId) {
try {
ExportQuery result = getDAO().findByTopiaId(queryId);
@@ -114,10 +113,6 @@
}
}
- protected ExportQueryDAO getDAO() throws TopiaException {
- return EchoBaseDAOHelper.getExportQueryDAO(getTransaction());
- }
-
public Map<String, Object>[] executeSql(String sql, Pager pager) {
// get a query to count all rows for the request
@@ -148,7 +143,7 @@
}
}
- public String createCsvStream(String sql, EchoBaseUser echoBaseUser) {
+ public String createCsvFileContent(String sql, EchoBaseUser echoBaseUser) {
GenericSQLQuery sqlQuery = new GenericSQLQuery(sql, null);
Map<String, Object>[] rows;
@@ -161,7 +156,7 @@
}
StringBuilder buffer = new StringBuilder();
int rowCount = rows.length;
- buffer.append("# Created at ").append(new Date()).append(" by user ").append(echoBaseUser.getEmail());
+ buffer.append("#Created at ").append(new Date()).append(" by user ").append(echoBaseUser.getEmail());
buffer.append("\n#").append(StringUtils.join(columnNames, ";"));
for (int i = 0; i < rowCount; i++) {
Map<String, Object> row = rows[i];
@@ -171,6 +166,10 @@
return buffer.toString();
}
+ protected ExportQueryDAO getDAO() throws TopiaException {
+ return EchoBaseDAOHelper.getExportQueryDAO(getTransaction());
+ }
+
private static class GenericSQLQuery extends TopiaSQLQuery<Map<String, Object>> {
protected String[] columnNames;
@@ -188,6 +187,17 @@
return columnNames;
}
+ public Map<String, Object>[] getResult(TopiaContext tx) throws TopiaException {
+ List<Map<String, Object>> rows =
+ findMultipleResult((TopiaContextImplementor) tx);
+ return rows.toArray(new Map[rows.size()]);
+ }
+
+ public String[] getColumnNames(TopiaContext tx) throws TopiaException {
+ findSingleResult((TopiaContextImplementor) tx);
+ return columnNames;
+ }
+
@Override
protected PreparedStatement prepareQuery(Connection connection) throws SQLException {
return connection.prepareStatement(
@@ -236,18 +246,5 @@
return result;
}
- public Map<String, Object>[] getResult(TopiaContext tx) throws TopiaException {
- List<Map<String, Object>> rows =
- findMultipleResult((TopiaContextImplementor) tx);
- return rows.toArray(new Map[rows.size()]);
- }
-
-
- public String[] getColumnNames(TopiaContext tx) throws TopiaException {
- findSingleResult((TopiaContextImplementor) tx);
- return columnNames;
- }
-
-
}
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2011-11-13 22:18:21 UTC (rev 53)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2011-11-13 22:20:37 UTC (rev 54)
@@ -29,6 +29,7 @@
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.EchoBaseUserDAO;
import fr.ifremer.echobase.entities.EchoBaseUserDTO;
+import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl;
import org.apache.commons.lang3.StringUtils;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaQuery;
@@ -42,6 +43,10 @@
*/
public class UserService extends AbstractEchoBaseService {
+ public static final String DEFAULT_ADMIN_EMAIL = "admin";
+
+ public static final String DEFAULT_ADMIN_PASSWORD = "admin";
+
public List<EchoBaseUser> getUsers() {
return getUsers(null);
}
@@ -131,6 +136,25 @@
return s.equals(user.getPassword());
}
+ public void createDefaultAdminUser() {
+ EchoBaseUserDTO userDTO;
+ userDTO = new EchoBaseUserDTOImpl();
+ userDTO.setEmail(DEFAULT_ADMIN_EMAIL);
+ userDTO.setPassword(DEFAULT_ADMIN_PASSWORD);
+ userDTO.setAdmin(true);
+ createOrUpdate(userDTO);
+
+ if (getConfiguration().getOptionAsBoolean("createAdmins")) {
+ for (int i = 0; i < 1000; i++) {
+ userDTO = new EchoBaseUserDTOImpl();
+ userDTO.setEmail(DEFAULT_ADMIN_EMAIL + i);
+ userDTO.setPassword(DEFAULT_ADMIN_PASSWORD);
+ userDTO.setAdmin(i % 2 == 0);
+ createOrUpdate(userDTO);
+ }
+ }
+ }
+
public static String encodePassword(String password) {
String encodedPassword = StringUtil.encodeMD5(password);
return encodedPassword;
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportModel.java 2011-11-13 22:18:21 UTC (rev 53)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportModel.java 2011-11-13 22:20:37 UTC (rev 54)
@@ -24,7 +24,7 @@
package fr.ifremer.echobase.services.models;
import fr.ifremer.echobase.entities.Voyage;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;
import java.io.File;
Deleted: trunk/echobase-services/src/main/resources/echobase-db-h2.properties
===================================================================
--- trunk/echobase-services/src/main/resources/echobase-db-h2.properties 2011-11-13 22:18:21 UTC (rev 53)
+++ trunk/echobase-services/src/main/resources/echobase-db-h2.properties 2011-11-13 22:20:37 UTC (rev 54)
@@ -1,31 +0,0 @@
-###
-# #%L
-# EchoBase :: Services
-#
-# $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%
-###
-hibernate.hbm2ddl.auto=update
-hibernate.show_sql=false
-
-hibernate.dialect=org.hibernate.dialect.H2Dialect
-hibernate.connection.username=sa
-hibernate.connection.password=sa
-hibernate.connection.driver_class=org.h2.Driver
-hibernate.connection.url=jdbc:h2:file:${internal.db.directory}/echobase-user
Copied: trunk/echobase-services/src/main/resources/echobase-embedded.properties (from rev 51, trunk/echobase-services/src/main/resources/echobase-db-h2.properties)
===================================================================
--- trunk/echobase-services/src/main/resources/echobase-embedded.properties (rev 0)
+++ trunk/echobase-services/src/main/resources/echobase-embedded.properties 2011-11-13 22:20:37 UTC (rev 54)
@@ -0,0 +1,29 @@
+###
+# #%L
+# EchoBase :: Services
+#
+# $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%
+###
+
+hibernate.dialect=org.hibernate.dialect.H2Dialect
+hibernate.connection.username=sa
+hibernate.connection.password=sa
+hibernate.connection.driver_class=org.h2.Driver
+hibernate.connection.url=jdbc:h2:file:./db/echobase
Property changes on: trunk/echobase-services/src/main/resources/echobase-embedded.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
r53 - in trunk/echobase-entities/src/main: java/fr/ifremer/echobase resources
by tchemit@users.forge.codelutin.com 13 Nov '11
by tchemit@users.forge.codelutin.com 13 Nov '11
13 Nov '11
Author: tchemit
Date: 2011-11-13 23:18:21 +0100 (Sun, 13 Nov 2011)
New Revision: 53
Url: http://forge.codelutin.com/repositories/revision/echobase/53
Log:
- fix version loading (remove snapshot if any)
- add a default h2 configuration (when loading a embedded db)
- improve TopiaRootContextSupplierFactory (should remove the supplier this does nothing interesting for us)
- fix war location (reuse the data.directory)
Added:
trunk/echobase-entities/src/main/resources/topia-h2.properties
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfigurationOption.java
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextSupplierFactory.java
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java 2011-11-13 16:37:52 UTC (rev 52)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java 2011-11-13 22:18:21 UTC (rev 53)
@@ -24,7 +24,7 @@
package fr.ifremer.echobase;
import com.google.common.base.Preconditions;
-import org.apache.commons.lang.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaContextFactory;
@@ -32,6 +32,7 @@
import org.nuiton.util.ArgumentsParserException;
import org.nuiton.util.FileUtil;
import org.nuiton.util.Version;
+import org.nuiton.util.VersionUtil;
import java.io.File;
import java.io.IOException;
@@ -107,7 +108,10 @@
}
public Version getApplicationVersion() {
- Version v = applicationConfig.getOptionAsVersion(EchoBaseConfigurationOption.VERSION.key);
+ String versionStr =
+ applicationConfig.getOption(EchoBaseConfigurationOption.VERSION.key);
+ String s = VersionUtil.removeSnapshot(versionStr);
+ Version v = VersionUtil.valueOf(s);
Preconditions.checkNotNull(v);
return v;
}
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfigurationOption.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfigurationOption.java 2011-11-13 16:37:52 UTC (rev 52)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfigurationOption.java 2011-11-13 22:18:21 UTC (rev 53)
@@ -52,10 +52,10 @@
"", URL.class),
WAR_DIRECTORY("war.directory",
"Répertoire où est stoqué le war",
- "/var/local/echobase/war", File.class),
+ "${data.directory}/war", File.class),
WAR_LOCATION("war.location",
"Chemin complêt d'accès au war",
- "${war.directory}/echobase-${project.version}.war",
+ "${war.directory}/echobase-ui-${project.version}.war",
File.class);
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextSupplierFactory.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextSupplierFactory.java 2011-11-13 16:37:52 UTC (rev 52)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextSupplierFactory.java 2011-11-13 22:18:21 UTC (rev 53)
@@ -29,7 +29,6 @@
import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.hibernate.cfg.Environment;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaContextFactory;
import org.nuiton.topia.TopiaNotFoundException;
@@ -67,7 +66,7 @@
public Supplier<TopiaContext> newEmbeddedDatabase(File dir) {
- File databaseFile = new File(dir, "h2-db");
+ File databaseFile = new File(dir, "db");
String databaseAbsolutePath = databaseFile.getAbsolutePath();
@@ -82,8 +81,9 @@
} finally {
Closeables.closeQuietly(input);
}
- properties.setProperty(Environment.URL,
- "jdbc:h2:file:" + databaseAbsolutePath);
+ properties.setProperty(
+ TopiaContextFactory.CONFIG_URL,
+ "jdbc:h2:file:" + databaseAbsolutePath + "/echobase");
// add entities to the context
properties.setProperty(
Added: trunk/echobase-entities/src/main/resources/topia-h2.properties
===================================================================
--- trunk/echobase-entities/src/main/resources/topia-h2.properties (rev 0)
+++ trunk/echobase-entities/src/main/resources/topia-h2.properties 2011-11-13 22:18:21 UTC (rev 53)
@@ -0,0 +1,30 @@
+###
+# #%L
+# EchoBase :: Entities
+#
+# $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%
+###
+hibernate.hbm2ddl.auto=update
+hibernate.show_sql=false
+
+hibernate.dialect=org.hibernate.dialect.H2Dialect
+hibernate.connection.username=sa
+hibernate.connection.password=sa
+hibernate.connection.driver_class=org.h2.Driver
\ No newline at end of file
Property changes on: trunk/echobase-entities/src/main/resources/topia-h2.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
Author: tchemit
Date: 2011-11-13 17:37:52 +0100 (Sun, 13 Nov 2011)
New Revision: 52
Url: http://forge.codelutin.com/repositories/revision/echobase/52
Log:
pass on last stable versions
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-11-13 16:20:45 UTC (rev 51)
+++ trunk/pom.xml 2011-11-13 16:37:52 UTC (rev 52)
@@ -107,10 +107,10 @@
<!-- libraries version -->
<eugenePluginVersion>2.4.1</eugenePluginVersion>
- <topiaVersion>2.6.4-SNAPSHOT</topiaVersion>
- <nuitonUtilsVersion>2.4-SNAPSHOT</nuitonUtilsVersion>
+ <topiaVersion>2.6.4</topiaVersion>
+ <nuitonUtilsVersion>2.3.1</nuitonUtilsVersion>
<nuitonI18nVersion>2.4.1</nuitonI18nVersion>
- <nuitonWebVersion>1.6-SNAPSHOT</nuitonWebVersion>
+ <nuitonWebVersion>1.6</nuitonWebVersion>
<msaccessImporterVersion>1.4.1</msaccessImporterVersion>
<struts2Version>2.2.3.1</struts2Version>
<jqueryPluginVersion>3.1.0</jqueryPluginVersion>
1
0
13 Nov '11
Author: tchemit
Date: 2011-11-13 17:20:45 +0100 (Sun, 13 Nov 2011)
New Revision: 51
Url: http://forge.codelutin.com/repositories/revision/echobase/51
Log:
remove json package
Added:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadExportSqlResult.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlResult.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/GetSqlResult.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageExportQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ConnectToDbInformations.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/LoginAction.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ManageUser.java
Removed:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/ConnectToDbInformations.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/HomeAction.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/LoginAction.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/UserAction.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlQueryToFile.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadExportSqlMainPage.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadSqlQueryInGrid.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageSqlQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/AbstractJSONPaginedAction.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetEntities.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetSqlResult.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetUsers.java
trunk/echobase-ui/src/main/resources/config/struts-json.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/SaveEntity.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/CheckLogguedInterceptor.java
trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml
trunk/echobase-ui/src/main/resources/config/struts-export.xml
trunk/echobase-ui/src/main/resources/config/struts-import.xml
trunk/echobase-ui/src/main/resources/config/struts-user.xml
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/decorators.xml
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/connectToDbInformations.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/modificationLogs.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java (from rev 35, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/AbstractJSONPaginedAction.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,125 @@
+/*
+ * #%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;
+
+import fr.ifremer.echobase.services.Pager;
+import org.apache.commons.lang.StringUtils;
+import org.apache.struts2.json.JSONException;
+import org.apache.struts2.json.JSONUtil;
+
+/**
+ * Abstract JSON action with pagination support.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public abstract class AbstractJSONPaginedAction extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ public abstract Integer getRows();
+
+ public abstract Integer getPage();
+
+ public abstract Integer getTotal();
+
+ public abstract Integer getRecords();
+
+ protected Pager pager = new Pager();
+
+ // sorting order - asc or desc
+ protected String sord;
+
+ // get index row - i.e. user click to sort.
+ protected String sidx;
+
+ protected String filters;
+
+ /** Prefix added to the sidx when used. */
+ protected final String sidx_prefix;
+
+ protected AbstractJSONPaginedAction(String sidx_prefix) {
+ this.sidx_prefix = sidx_prefix;
+ }
+
+ public void setRows(Integer rows) {
+ pager.setPageSize(rows);
+ }
+
+ public void setPage(Integer page) {
+ pager.setPageNumber(page);
+ }
+
+ public String getSord() {
+ return sord;
+ }
+
+ public void setSord(String sord) {
+ this.sord = sord;
+ }
+
+ public String getSidx() {
+ return sidx;
+ }
+
+ public void setSidx(String sidx) {
+ this.sidx = sidx;
+ }
+
+ public String getFilters() {
+ return filters;
+ }
+
+ public void setFilters(String filters) {
+ this.filters = filters;
+ }
+
+ protected String getSortColumn() {
+ String result = null;
+ if (useSort()) {
+ result = sidx.substring(sidx_prefix.length());
+ }
+ return result;
+ }
+
+ protected Boolean isSortAscendant() {
+ Boolean result = null;
+ if (useSort()) {
+ result = "asc".equals(sord);
+ }
+ return result;
+ }
+
+ protected boolean useSort() {
+ return StringUtils.isNotEmpty(sidx);
+ }
+
+ protected Object getFilterObject() throws JSONException {
+ Object filterObject = null;
+ if (StringUtils.isNotEmpty(filters)) {
+ filterObject = JSONUtil.deserialize(filters);
+ }
+ return filterObject;
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/ConnectToDbInformations.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/ConnectToDbInformations.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/ConnectToDbInformations.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,61 +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;
-
-import fr.ifremer.echobase.EchoBaseConfiguration;
-import org.nuiton.topia.TopiaContextFactory;
-
-import java.util.Properties;
-
-/**
- * Display a page to show connection details.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class ConnectToDbInformations extends EchoBaseActionSupport {
- private static final long serialVersionUID = 1L;
-
- protected String jdbcUrl;
-
- protected String jdbcLogin;
-
- public String getJdbcUrl() {
- return jdbcUrl;
- }
-
- public String getJdbcLogin() {
- return jdbcLogin;
- }
-
- @Override
- public String execute() throws Exception {
- EchoBaseConfiguration configuration =
- getEchoBaseApplicationContext().getConfiguration();
- Properties properties = configuration.getProperties();
- jdbcUrl = properties.getProperty(TopiaContextFactory.CONFIG_URL);
- jdbcLogin = properties.getProperty(TopiaContextFactory.CONFIG_USER);
- return SUCCESS;
- }
-}
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/HomeAction.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/HomeAction.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/HomeAction.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,44 +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;
-
-
-/**
- * To go to the home page.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class HomeAction extends EchoBaseActionSupport {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public String execute() throws Exception {
-
-
- return SUCCESS;
- }
-
-}
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/LoginAction.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/LoginAction.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/LoginAction.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,134 +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;
-
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.interceptor.I18nInterceptor;
-import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.services.UserService;
-import fr.ifremer.echobase.ui.EchoBaseSession;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.interceptor.SessionAware;
-
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * Login and Logout action.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class LoginAction extends EchoBaseActionSupport implements SessionAware {
-
- protected static final Log log = LogFactory.getLog(LoginAction.class);
-
- private static final long serialVersionUID = 1L;
-
- protected String email;
-
- protected String password;
-
- protected String redirectAction;
-
- private transient Map<String, Object> session;
-
- protected transient UserService userService;
-
- public UserService getUserService() {
- if (userService == null) {
- userService = newService(UserService.class);
- }
- return userService;
- }
-
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getRedirectAction() {
- return redirectAction;
- }
-
- public void setRedirectAction(String redirectAction) {
- this.redirectAction = redirectAction;
- }
-
- public String doLogin() throws Exception {
-
- EchoBaseUser user = getUserService().getUserByEmail(email);
-
- EchoBaseSession userSession = getEchoBaseSession();
-
- // user is authorized, keep it in his echoBaseSession
- userSession.setEchoBaseUser(user);
-
- // add locale in echoBaseSession if required
- Object o = session.get(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE);
- if (o == null) {
-
- // push the locale in echoBaseSession to be able to use it everywhere
- Locale locale = ActionContext.getContext().getLocale();
- session.put(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, locale);
- }
-
- // redecode parameters
- if (log.isInfoEnabled()) {
- log.info("success login for user " + email +
- ", will redirect to " + redirectAction);
- }
- return "redirect";
- }
-
- public String doLogout() {
-
- EchoBaseSession userSession = getEchoBaseSession();
-
- // remove user from session
- userSession.setEchoBaseUser(null);
-
- // remove echoBaseSession from application session
- ActionContext.getContext().getSession().remove(SESSION_PARAMETER);
-
- return SUCCESS;
- }
-
- @Override
- public void setSession(Map<String, Object> session) {
- this.session = session;
- }
-}
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/UserAction.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/UserAction.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/UserAction.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,185 +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;
-
-import com.opensymphony.xwork2.Preparable;
-import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.entities.EchoBaseUserDTO;
-import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl;
-import fr.ifremer.echobase.services.UserService;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- * Action to manage user (create - update - change password,...)
- *
- * @author sletellier <letellier(a)codelutin.com>
- * @since 0.1
- */
-public class UserAction extends EchoBaseActionSupport implements Preparable {
-
- protected static final Log log = LogFactory.getLog(UserAction.class);
-
- private static final long serialVersionUID = 1L;
-
- public static final String BACK_TO_LIST = "backToList";
-
- protected transient UserService service;
-
- protected EchoBaseUserDTO user;
-
- protected String userEditAction;
-
- public String getUserEditAction() {
- return userEditAction;
- }
-
- public void setUserEditAction(String userEditAction) {
- this.userEditAction = userEditAction;
- }
-
- protected UserService getUserService() {
- if (service == null) {
- service = newService(UserService.class);
- }
- return service;
- }
-
- @Override
- public void prepare() throws Exception {
-
- String userId = getUser().getId();
- if (!StringUtils.isEmpty(userId)) {
-
- // load user
- user = getUserService().getUserById(userId).toDTO();
-
- log.info("Selected user " + user.getEmail());
- }
- }
-
- public String doCreateOrUpdate() throws Exception {
- EchoBaseUserDTO user = getUser();
- String userEmail = user.getEmail();
-
- if (log.isInfoEnabled()) {
- log.info("will create user " + userEmail);
- }
-
- // create user
- getUserService().createOrUpdate(user);
- return BACK_TO_LIST;
- }
-
- public String doDelete() throws Exception {
- EchoBaseUserDTO user = getUser();
- String userEmail = user.getEmail();
-
- if (log.isInfoEnabled()) {
- log.info("will delete user " + userEmail);
- }
- getUserService().delete(user);
- return BACK_TO_LIST;
- }
-
- @Override
- public void validate() {
-
- EditActionEnum action = getEditActionEnum();
-
- log.info("Edit action : " + action);
-
- if (action == null) {
-
- // no validation (no edit action)
- return;
- }
-
- EchoBaseUserDTO user = getUser();
- String userEmail = user.getEmail();
-
- switch (action) {
-
- case CREATE:
-
- // login + password required
- if (StringUtils.isEmpty(userEmail)) {
-
- // empty user login
- addFieldError("user.email",
- _("echobase.error.required.email"));
- } else {
-
- // check login not already used
- EchoBaseUser login;
- try {
- login = getUserService().getUserByEmail(userEmail);
- } catch (Exception e) {
-
- // could not get user
- throw new IllegalStateException(
- "Could not obtain user " + userEmail, e);
- }
- if (login != null) {
- addFieldError("user.email",
- _("echobase.error.email.already.used"));
- }
- }
-
- String userPassword = user.getPassword();
- if (StringUtils.isEmpty(userPassword)) {
-
- // empty user password
- addFieldError("user.password",
- _("echobase.error.required.password"));
- }
-
- break;
- case EDIT:
-
- // at the moment nothing to validate
- break;
- case DELETE:
-
- // Do nothing
- default:
- // nothing to validate
- }
- }
-
- public EchoBaseUserDTO getUser() {
- if (user == null) {
- user = new EchoBaseUserDTOImpl();
- }
- return user;
- }
-
- protected EditActionEnum getEditActionEnum() {
- if (userEditAction == null) {
- return null;
- }
- return EditActionEnum.valueOf(userEditAction);
- }
-}
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java (from rev 49, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetEntities.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,121 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.ui.actions.dbeditor;
+
+import fr.ifremer.echobase.entities.EntityModificationLogImpl;
+import fr.ifremer.echobase.services.DbEditorService;
+import fr.ifremer.echobase.ui.actions.AbstractJSONPaginedAction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.Map;
+
+/**
+ * To obtain the data for the given request.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class GetEntities extends AbstractJSONPaginedAction {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(GetEntities.class);
+
+ /** Name of the table to load. */
+ protected String tableName;
+
+ /** Datas of the given table. */
+ protected Map<?, ?>[] datas;
+
+ public GetEntities() {
+ super("datas_");
+ }
+
+ public Map<?, ?>[] getDatas() {
+ return datas;
+ }
+
+ @Override
+ public Integer getRows() {
+ return pager.getPageSize();
+ }
+
+ @Override
+ public Integer getPage() {
+ return pager.getPageNumber();
+ }
+
+ @Override
+ public Integer getTotal() {
+ return pager.getPageCount();
+ }
+
+ @Override
+ public Integer getRecords() {
+ return pager.getRecords();
+ }
+
+ public void setTableName(String tableName) {
+ this.tableName = tableName;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ Boolean ascendantOrder = isSortAscendant();
+ String sortColumn = getSortColumn();
+ Object filterObject = getFilterObject();
+
+ if (log.isDebugEnabled()) {
+ log.debug("filters = " + getFilters());
+ log.debug("filterObject = " + filterObject);
+ log.debug("sidx = " + sortColumn);
+ log.debug("sord = " + ascendantOrder);
+ }
+
+ DbEditorService dbEditorService = newService(DbEditorService.class);
+
+ datas = dbEditorService.getDatas(
+ tableName,
+ pager,
+ sortColumn,
+ ascendantOrder
+ );
+
+ if (log.isDebugEnabled()) {
+ log.debug("Total page = " + getTotal());
+ }
+
+ return SUCCESS;
+ }
+
+
+ public String entityModificationLogs() throws Exception {
+ tableName = EntityModificationLogImpl.class.getName();
+ execute();
+ return SUCCESS;
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -73,7 +73,7 @@
}
@Override
- public String input() throws Exception {
+ public String execute() throws Exception {
tableNames = Maps.newTreeMap();
DbMeta dbMeta = getEchoBaseApplicationContext().getDbMeta();
for (TableMeta tableMeta : dbMeta) {
@@ -91,7 +91,7 @@
DbEditorService dbEditorService = newService(DbEditorService.class);
tableMeta = dbEditorService.getTableMetas(tableName);
}
- return INPUT;
+ return SUCCESS;
}
public String getEditType(ColumnMeta meta) {
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -55,8 +55,6 @@
protected Map<String, String[]> params;
- protected transient DbEditorService dbEditorService;
-
public void setTableName(String tableName) {
this.tableName = tableName;
}
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadExportSqlResult.java (from rev 49, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlQueryToFile.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadExportSqlResult.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadExportSqlResult.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,96 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.ui.actions.export;
+
+import fr.ifremer.echobase.services.ExportSqlService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+/**
+ * To export sql to a csv file.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class DownloadExportSqlResult extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Sql request to execute. */
+ protected String sql;
+
+ /** Input stream of the file to download. */
+ protected transient InputStream inputStream;
+
+ /** File name of the download. */
+ protected String fileName;
+
+ /** Length of the file to download. */
+ protected int contentLength;
+
+ /** Content type of the file to download. */
+ protected String contentType;
+
+ public void setSql(String sql) {
+ this.sql = sql;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public InputStream getInputStream() {
+ return inputStream;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public int getContentLength() {
+ return contentLength;
+ }
+
+ public String getContentType() {
+ return contentType;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ ExportSqlService service = newService(ExportSqlService.class);
+
+ contentType = "text/csv";
+ String content = service.createCsvStream(
+ sql,
+ getEchoBaseSession().getEchoBaseUser()
+ );
+ contentLength = content.length();
+ inputStream = new ByteArrayInputStream(content.getBytes());
+
+ return SUCCESS;
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/DownloadExportSqlResult.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java (from rev 49, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadExportSqlMainPage.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,92 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.ui.actions.export;
+
+import fr.ifremer.echobase.entities.ExportQuery;
+import fr.ifremer.echobase.entities.ExportQueryImpl;
+import fr.ifremer.echobase.services.ExportSqlService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.lang.StringUtils;
+
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * Load export sql main page.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class ExportSql extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** All available queries from database. */
+ protected Map<String, String> queries;
+
+ /** Selected query loaded from database if his id is not empty. */
+ protected ExportQuery query;
+
+ public ExportQuery getQuery() {
+ if (query == null) {
+ query = new ExportQueryImpl();
+ }
+ return query;
+ }
+
+ public Map<String, String> getQueries() {
+ return queries;
+ }
+
+ public Map<String, String> getTableNames() {
+ return queries;
+ }
+
+ @Override
+ public String execute() throws Exception {
+ ExportSqlService service = newService(ExportSqlService.class);
+
+ Collection<ExportQuery> sqlQueries = service.getQueries();
+ queries = sortAndDecorate(sqlQueries, null);
+
+ if (sqlQueries.isEmpty()) {
+ // no query saved
+ addActionMessage(_("echobase.info.no.sqlQuery.saved"));
+ }
+
+ String selectedQueryId = getQuery().getTopiaId();
+
+ if (StringUtils.isEmpty(selectedQueryId)) {
+
+ // no query selected
+ addActionMessage(_("echobase.info.no.sqlQuery.selected"));
+ } else {
+
+ // load query from database
+ query = service.getQuery(selectedQueryId);
+ }
+ return SUCCESS;
+ }
+
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlQueryToFile.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlQueryToFile.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlQueryToFile.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,96 +0,0 @@
-/*
- * #%L
- * EchoBase :: UI
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.ui.actions.export;
-
-import fr.ifremer.echobase.services.ExportSqlService;
-import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-/**
- * To export sql to a csv file.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class ExportSqlQueryToFile extends EchoBaseActionSupport {
-
- private static final long serialVersionUID = 1L;
-
- /** Sql request to execute. */
- protected String sql;
-
- /** Input stream of the file to download. */
- protected transient InputStream inputStream;
-
- /** File name of the download. */
- protected String fileName;
-
- /** Length of the file to download. */
- protected int contentLength;
-
- /** Content type of the file to download. */
- protected String contentType;
-
- public void setSql(String sql) {
- this.sql = sql;
- }
-
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
-
- public InputStream getInputStream() {
- return inputStream;
- }
-
- public String getFileName() {
- return fileName;
- }
-
- public int getContentLength() {
- return contentLength;
- }
-
- public String getContentType() {
- return contentType;
- }
-
- @Override
- public String execute() throws Exception {
-
- ExportSqlService service = newService(ExportSqlService.class);
-
- contentType = "text/csv";
- String content = service.createCsvStream(
- sql,
- getEchoBaseSession().getEchoBaseUser()
- );
- contentLength = content.length();
- inputStream = new ByteArrayInputStream(content.getBytes());
-
- return SUCCESS;
- }
-}
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlResult.java (from rev 49, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadSqlQueryInGrid.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlResult.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlResult.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,76 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.ui.actions.export;
+
+import fr.ifremer.echobase.services.ExportSqlService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+
+/**
+ * Load export sql result fragment page.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class ExportSqlResult extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Sql request to execute. */
+ protected String sql;
+
+ /** Default file name for export. */
+ protected String fileName;
+
+ /** names of columns from the executed sql request. */
+ protected String[] columnNames;
+
+ public String getSql() {
+ return sql;
+ }
+
+ public String[] getColumnNames() {
+ return columnNames;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setSql(String sql) {
+ this.sql = sql;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ // obtain columNames from the request
+ ExportSqlService service = newService(ExportSqlService.class);
+ columnNames = service.getColumnNames(sql);
+
+ // create default file name
+
+ fileName = "export.csv";
+ return SUCCESS;
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlResult.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/GetSqlResult.java (from rev 47, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetSqlResult.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/GetSqlResult.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/GetSqlResult.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,86 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.ui.actions.export;
+
+import fr.ifremer.echobase.services.ExportSqlService;
+import fr.ifremer.echobase.ui.actions.AbstractJSONPaginedAction;
+
+import java.util.Map;
+
+/**
+ * Obtains result of a sql query.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class GetSqlResult extends AbstractJSONPaginedAction {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Sql request to execute. */
+ protected String sql;
+
+ /** Datas of the given table. */
+ protected Map<?, ?>[] datas;
+
+ public GetSqlResult() {
+ super("datas_");
+ }
+
+ public void setSql(String sql) {
+ this.sql = sql;
+ }
+
+ public Map<?, ?>[] getDatas() {
+ return datas;
+ }
+
+ @Override
+ public Integer getRows() {
+ return pager.getPageSize();
+ }
+
+ @Override
+ public Integer getPage() {
+ return pager.getPageNumber();
+ }
+
+ @Override
+ public Integer getTotal() {
+ return pager.getPageCount();
+ }
+
+ @Override
+ public Integer getRecords() {
+ return pager.getRecords();
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ ExportSqlService service = newService(ExportSqlService.class);
+ datas = service.executeSql(sql, pager);
+ return SUCCESS;
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/GetSqlResult.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadExportSqlMainPage.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadExportSqlMainPage.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadExportSqlMainPage.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,92 +0,0 @@
-/*
- * #%L
- * EchoBase :: UI
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.ui.actions.export;
-
-import fr.ifremer.echobase.entities.ExportQuery;
-import fr.ifremer.echobase.entities.ExportQueryImpl;
-import fr.ifremer.echobase.services.ExportSqlService;
-import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-import org.apache.commons.lang.StringUtils;
-
-import java.util.Collection;
-import java.util.Map;
-
-/**
- * Load export sql main page.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class LoadExportSqlMainPage extends EchoBaseActionSupport {
-
- private static final long serialVersionUID = 1L;
-
- /** All available queries from database. */
- protected Map<String, String> queries;
-
- /** Selected query loaded from database if his id is not empty. */
- protected ExportQuery query;
-
- public ExportQuery getQuery() {
- if (query == null) {
- query = new ExportQueryImpl();
- }
- return query;
- }
-
- public Map<String, String> getQueries() {
- return queries;
- }
-
- public Map<String, String> getTableNames() {
- return queries;
- }
-
- @Override
- public String execute() throws Exception {
- ExportSqlService service = newService(ExportSqlService.class);
-
- Collection<ExportQuery> sqlQueries = service.getQueries();
- queries = sortAndDecorate(sqlQueries, null);
-
- if (sqlQueries.isEmpty()) {
- // no query saved
- addActionMessage(_("echobase.info.no.sqlQuery.saved"));
- }
-
- String selectedQueryId = getQuery().getTopiaId();
-
- if (StringUtils.isEmpty(selectedQueryId)) {
-
- // no query selected
- addActionMessage(_("echobase.info.no.sqlQuery.selected"));
- } else {
-
- // load query from database
- query = service.getQuery(selectedQueryId);
- }
- return SUCCESS;
- }
-
-}
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadSqlQueryInGrid.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadSqlQueryInGrid.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/LoadSqlQueryInGrid.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,76 +0,0 @@
-/*
- * #%L
- * EchoBase :: UI
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.ui.actions.export;
-
-import fr.ifremer.echobase.services.ExportSqlService;
-import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-
-/**
- * Load export sql grid page.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class LoadSqlQueryInGrid extends EchoBaseActionSupport {
-
- private static final long serialVersionUID = 1L;
-
- /** Sql request to execute. */
- protected String sql;
-
- /** Default file name for export. */
- protected String fileName;
-
- /** names of columns from the executed sql request. */
- protected String[] columnNames;
-
- public String getSql() {
- return sql;
- }
-
- public String[] getColumnNames() {
- return columnNames;
- }
-
- public String getFileName() {
- return fileName;
- }
-
- public void setSql(String sql) {
- this.sql = sql;
- }
-
- @Override
- public String execute() throws Exception {
-
- // obtain columNames from the request
- ExportSqlService service = newService(ExportSqlService.class);
- columnNames = service.getColumnNames(sql);
-
- // create default file name
-
- fileName = "export.csv";
- return SUCCESS;
- }
-}
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageExportQuery.java (from rev 49, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageSqlQuery.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageExportQuery.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageExportQuery.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,82 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.ui.actions.export;
+
+import fr.ifremer.echobase.entities.ExportQuery;
+import fr.ifremer.echobase.entities.ExportQueryImpl;
+import fr.ifremer.echobase.services.ExportSqlService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+
+/**
+ * To manage {@link ExportQuery}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class ManageExportQuery extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Selected query */
+ protected ExportQuery query;
+
+ public ExportQuery getQuery() {
+ if (query == null) {
+ query = new ExportQueryImpl();
+ }
+ return query;
+ }
+
+ public String saveQuery() throws Exception {
+
+ //TODO : do validation
+ ExportSqlService service = newService(ExportSqlService.class);
+
+ query = service.createOrUpdate(getQuery(),
+ getEchoBaseSession().getEchoBaseUser()
+ );
+ return SUCCESS;
+ }
+
+ public String cloneQuery() throws Exception {
+
+ //TODO : do validation
+ ExportSqlService service = newService(ExportSqlService.class);
+
+ getQuery().setTopiaId(null);
+ query = service.createOrUpdate(getQuery(),
+ getEchoBaseSession().getEchoBaseUser()
+ );
+ return SUCCESS;
+ }
+
+ public String deleteQuery() throws Exception {
+
+ //TODO : do validation
+ ExportSqlService service = newService(ExportSqlService.class);
+ service.delete(getQuery().getTopiaId());
+ query = null;
+ return SUCCESS;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageExportQuery.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageSqlQuery.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageSqlQuery.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageSqlQuery.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,82 +0,0 @@
-/*
- * #%L
- * EchoBase :: UI
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.ui.actions.export;
-
-import fr.ifremer.echobase.entities.ExportQuery;
-import fr.ifremer.echobase.entities.ExportQueryImpl;
-import fr.ifremer.echobase.services.ExportSqlService;
-import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-
-/**
- * To manage {@link ExportQuery}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class ManageSqlQuery extends EchoBaseActionSupport {
-
- private static final long serialVersionUID = 1L;
-
- /** Selected query */
- protected ExportQuery query;
-
- public ExportQuery getQuery() {
- if (query == null) {
- query = new ExportQueryImpl();
- }
- return query;
- }
-
- public String saveQuery() throws Exception {
-
- //TODO : do validation
- ExportSqlService service = newService(ExportSqlService.class);
-
- query = service.createOrUpdate(getQuery(),
- getEchoBaseSession().getEchoBaseUser()
- );
- return SUCCESS;
- }
-
- public String cloneQuery() throws Exception {
-
- //TODO : do validation
- ExportSqlService service = newService(ExportSqlService.class);
-
- getQuery().setTopiaId(null);
- query = service.createOrUpdate(getQuery(),
- getEchoBaseSession().getEchoBaseUser()
- );
- return SUCCESS;
- }
-
- public String deleteQuery() throws Exception {
-
- //TODO : do validation
- ExportSqlService service = newService(ExportSqlService.class);
- service.delete(getQuery().getTopiaId());
- query = null;
- return SUCCESS;
- }
-}
\ No newline at end of file
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/AbstractJSONPaginedAction.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/AbstractJSONPaginedAction.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/AbstractJSONPaginedAction.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,126 +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.json;
-
-import fr.ifremer.echobase.services.Pager;
-import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-import org.apache.commons.lang.StringUtils;
-import org.apache.struts2.json.JSONException;
-import org.apache.struts2.json.JSONUtil;
-
-/**
- * Abstract JSON action with pagination support.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public abstract class AbstractJSONPaginedAction extends EchoBaseActionSupport {
-
- private static final long serialVersionUID = 1L;
-
- public abstract Integer getRows();
-
- public abstract Integer getPage();
-
- public abstract Integer getTotal();
-
- public abstract Integer getRecords();
-
- protected Pager pager = new Pager();
-
- // sorting order - asc or desc
- protected String sord;
-
- // get index row - i.e. user click to sort.
- protected String sidx;
-
- protected String filters;
-
- /** Prefix added to the sidx when used. */
- protected final String sidx_prefix;
-
- protected AbstractJSONPaginedAction(String sidx_prefix) {
- this.sidx_prefix = sidx_prefix;
- }
-
- public void setRows(Integer rows) {
- pager.setPageSize(rows);
- }
-
- public void setPage(Integer page) {
- pager.setPageNumber(page);
- }
-
- public String getSord() {
- return sord;
- }
-
- public void setSord(String sord) {
- this.sord = sord;
- }
-
- public String getSidx() {
- return sidx;
- }
-
- public void setSidx(String sidx) {
- this.sidx = sidx;
- }
-
- public String getFilters() {
- return filters;
- }
-
- public void setFilters(String filters) {
- this.filters = filters;
- }
-
- protected String getSortColumn() {
- String result = null;
- if (useSort()) {
- result = sidx.substring(sidx_prefix.length());
- }
- return result;
- }
-
- protected Boolean isSortAscendant() {
- Boolean result = null;
- if (useSort()) {
- result = "asc".equals(sord);
- }
- return result;
- }
-
- protected boolean useSort() {
- return StringUtils.isNotEmpty(sidx);
- }
-
- protected Object getFilterObject() throws JSONException {
- Object filterObject = null;
- if (StringUtils.isNotEmpty(filters)) {
- filterObject = JSONUtil.deserialize(filters);
- }
- return filterObject;
- }
-}
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetEntities.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetEntities.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetEntities.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,120 +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.json;
-
-import fr.ifremer.echobase.entities.EntityModificationLogImpl;
-import fr.ifremer.echobase.services.DbEditorService;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.util.Map;
-
-/**
- * To obtain the data for the given request.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class GetEntities extends AbstractJSONPaginedAction {
-
- private static final long serialVersionUID = 1L;
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(GetEntities.class);
-
- /** Name of the table to load. */
- protected String tableName;
-
- /** Datas of the given table. */
- protected Map<?, ?>[] datas;
-
- public GetEntities() {
- super("datas_");
- }
-
- public Map<?, ?>[] getDatas() {
- return datas;
- }
-
- @Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageNumber();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPageCount();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- public void setTableName(String tableName) {
- this.tableName = tableName;
- }
-
- @Override
- public String execute() throws Exception {
-
- Boolean ascendantOrder = isSortAscendant();
- String sortColumn = getSortColumn();
- Object filterObject = getFilterObject();
-
- if (log.isDebugEnabled()) {
- log.debug("filters = " + getFilters());
- log.debug("filterObject = " + filterObject);
- log.debug("sidx = " + sortColumn);
- log.debug("sord = " + ascendantOrder);
- }
-
- DbEditorService dbEditorService = newService(DbEditorService.class);
-
- datas = dbEditorService.getDatas(
- tableName,
- pager,
- sortColumn,
- ascendantOrder
- );
-
- if (log.isDebugEnabled()) {
- log.debug("Total page = " + getTotal());
- }
-
- return SUCCESS;
- }
-
-
- public String entityModificationLogs() throws Exception {
- tableName = EntityModificationLogImpl.class.getName();
- execute();
- return SUCCESS;
- }
-}
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetSqlResult.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetSqlResult.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetSqlResult.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,85 +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.json;
-
-import fr.ifremer.echobase.services.ExportSqlService;
-
-import java.util.Map;
-
-/**
- * To get a export sql DTO.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class GetSqlResult extends AbstractJSONPaginedAction {
-
- private static final long serialVersionUID = 1L;
-
- /** Sql request to execute. */
- protected String sql;
-
- /** Datas of the given table. */
- protected Map<?, ?>[] datas;
-
- public GetSqlResult() {
- super("datas_");
- }
-
- public void setSql(String sql) {
- this.sql = sql;
- }
-
- public Map<?, ?>[] getDatas() {
- return datas;
- }
-
- @Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageNumber();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPageCount();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- @Override
- public String execute() throws Exception {
-
- ExportSqlService service = newService(ExportSqlService.class);
- datas = service.executeSql(sql, pager);
- return SUCCESS;
- }
-}
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetUsers.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetUsers.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetUsers.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,87 +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.json;
-
-import com.google.common.collect.Lists;
-import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.entities.EchoBaseUserDTO;
-import fr.ifremer.echobase.services.UserService;
-
-import java.util.List;
-
-/**
- * Obtains all users of the echobase internal database.
- *
- * @author sletellier <letellier(a)codelutin.com>
- * @since 0.1
- */
-public class GetUsers extends AbstractJSONPaginedAction {
-
- private static final long serialVersionUID = 1L;
-
- protected List<EchoBaseUserDTO> users;
-
- public GetUsers() {
- super("users_");
- }
-
- public List<EchoBaseUserDTO> getUsers() {
- return users;
- }
-
- @Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageNumber();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPageCount();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- @Override
- public String execute() throws Exception {
-
- List<EchoBaseUser> allUsers =
- newService(UserService.class).getUsers(pager);
-
- users = Lists.newArrayList();
- for (EchoBaseUser user : allUsers) {
- users.add(user.toDTO());
- }
-
- return SUCCESS;
- }
-
-}
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ConnectToDbInformations.java (from rev 49, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/ConnectToDbInformations.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ConnectToDbInformations.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ConnectToDbInformations.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,81 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.ui.actions.user;
+
+import fr.ifremer.echobase.EchoBaseConfiguration;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.nuiton.topia.TopiaContextFactory;
+
+import java.util.Properties;
+
+/**
+ * Display a page to show connection details.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class ConnectToDbInformations extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String jdbcUrl;
+
+ protected String jdbcLogin;
+
+ protected String jdbcPassword;
+
+ protected boolean askPassword;
+
+ public String getJdbcUrl() {
+ return jdbcUrl;
+ }
+
+ public String getJdbcLogin() {
+ return jdbcLogin;
+ }
+
+ public String getJdbcPassword() {
+ return jdbcPassword;
+ }
+
+ public boolean isAskPassword() {
+ return askPassword;
+ }
+
+ @Override
+ public String execute() throws Exception {
+ EchoBaseConfiguration configuration =
+ getEchoBaseApplicationContext().getConfiguration();
+ Properties properties = configuration.getProperties();
+ if (configuration.isEmbedded()) {
+ jdbcPassword = properties.getProperty(TopiaContextFactory.CONFIG_PASS);
+ } else {
+ askPassword = true;
+ jdbcPassword = "***";
+ }
+ jdbcUrl = properties.getProperty(TopiaContextFactory.CONFIG_URL);
+ jdbcLogin = properties.getProperty(TopiaContextFactory.CONFIG_USER);
+ return SUCCESS;
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ConnectToDbInformations.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java (from rev 45, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/json/GetUsers.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,88 @@
+/*
+ * #%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.user;
+
+import com.google.common.collect.Lists;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.EchoBaseUserDTO;
+import fr.ifremer.echobase.services.UserService;
+import fr.ifremer.echobase.ui.actions.AbstractJSONPaginedAction;
+
+import java.util.List;
+
+/**
+ * Obtains all users of the echobase internal database.
+ *
+ * @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
+ */
+public class GetUsers extends AbstractJSONPaginedAction {
+
+ private static final long serialVersionUID = 1L;
+
+ protected List<EchoBaseUserDTO> users;
+
+ public GetUsers() {
+ super("users_");
+ }
+
+ public List<EchoBaseUserDTO> getUsers() {
+ return users;
+ }
+
+ @Override
+ public Integer getRows() {
+ return pager.getPageSize();
+ }
+
+ @Override
+ public Integer getPage() {
+ return pager.getPageNumber();
+ }
+
+ @Override
+ public Integer getTotal() {
+ return pager.getPageCount();
+ }
+
+ @Override
+ public Integer getRecords() {
+ return pager.getRecords();
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ List<EchoBaseUser> allUsers =
+ newService(UserService.class).getUsers(pager);
+
+ users = Lists.newArrayList();
+ for (EchoBaseUser user : allUsers) {
+ users.add(user.toDTO());
+ }
+
+ return SUCCESS;
+ }
+
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/LoginAction.java (from rev 35, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/LoginAction.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/LoginAction.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/LoginAction.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,135 @@
+/*
+ * #%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.user;
+
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.interceptor.I18nInterceptor;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.services.UserService;
+import fr.ifremer.echobase.ui.EchoBaseSession;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts2.interceptor.SessionAware;
+
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Login and Logout action.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class LoginAction extends EchoBaseActionSupport implements SessionAware {
+
+ protected static final Log log = LogFactory.getLog(LoginAction.class);
+
+ private static final long serialVersionUID = 1L;
+
+ protected String email;
+
+ protected String password;
+
+ protected String redirectAction;
+
+ private transient Map<String, Object> session;
+
+ protected transient UserService userService;
+
+ public UserService getUserService() {
+ if (userService == null) {
+ userService = newService(UserService.class);
+ }
+ return userService;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getRedirectAction() {
+ return redirectAction;
+ }
+
+ public void setRedirectAction(String redirectAction) {
+ this.redirectAction = redirectAction;
+ }
+
+ public String doLogin() throws Exception {
+
+ EchoBaseUser user = getUserService().getUserByEmail(email);
+
+ EchoBaseSession userSession = getEchoBaseSession();
+
+ // user is authorized, keep it in his echoBaseSession
+ userSession.setEchoBaseUser(user);
+
+ // add locale in echoBaseSession if required
+ Object o = session.get(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE);
+ if (o == null) {
+
+ // push the locale in echoBaseSession to be able to use it everywhere
+ Locale locale = ActionContext.getContext().getLocale();
+ session.put(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, locale);
+ }
+
+ // redecode parameters
+ if (log.isInfoEnabled()) {
+ log.info("success login for user " + email +
+ ", will redirect to " + redirectAction);
+ }
+ return "redirect";
+ }
+
+ public String doLogout() {
+
+ EchoBaseSession userSession = getEchoBaseSession();
+
+ // remove user from session
+ userSession.setEchoBaseUser(null);
+
+ // remove echoBaseSession from application session
+ ActionContext.getContext().getSession().remove(SESSION_PARAMETER);
+
+ return SUCCESS;
+ }
+
+ @Override
+ public void setSession(Map<String, Object> session) {
+ this.session = session;
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/LoginAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ManageUser.java (from rev 35, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/UserAction.java)
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ManageUser.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ManageUser.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -0,0 +1,187 @@
+/*
+ * #%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.user;
+
+import com.opensymphony.xwork2.Preparable;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.EchoBaseUserDTO;
+import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl;
+import fr.ifremer.echobase.services.UserService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import fr.ifremer.echobase.ui.actions.EditActionEnum;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Action to manage user (create - update - change password,...)
+ *
+ * @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
+ */
+public class ManageUser extends EchoBaseActionSupport implements Preparable {
+
+ protected static final Log log = LogFactory.getLog(ManageUser.class);
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String BACK_TO_LIST = "backToList";
+
+ protected transient UserService service;
+
+ protected EchoBaseUserDTO user;
+
+ protected String userEditAction;
+
+ public String getUserEditAction() {
+ return userEditAction;
+ }
+
+ public void setUserEditAction(String userEditAction) {
+ this.userEditAction = userEditAction;
+ }
+
+ protected UserService getUserService() {
+ if (service == null) {
+ service = newService(UserService.class);
+ }
+ return service;
+ }
+
+ @Override
+ public void prepare() throws Exception {
+
+ String userId = getUser().getId();
+ if (!StringUtils.isEmpty(userId)) {
+
+ // load user
+ user = getUserService().getUserById(userId).toDTO();
+
+ log.info("Selected user " + user.getEmail());
+ }
+ }
+
+ public String doCreateOrUpdate() throws Exception {
+ EchoBaseUserDTO user = getUser();
+ String userEmail = user.getEmail();
+
+ if (log.isInfoEnabled()) {
+ log.info("will create user " + userEmail);
+ }
+
+ // create user
+ getUserService().createOrUpdate(user);
+ return BACK_TO_LIST;
+ }
+
+ public String doDelete() throws Exception {
+ EchoBaseUserDTO user = getUser();
+ String userEmail = user.getEmail();
+
+ if (log.isInfoEnabled()) {
+ log.info("will delete user " + userEmail);
+ }
+ getUserService().delete(user);
+ return BACK_TO_LIST;
+ }
+
+ @Override
+ public void validate() {
+
+ EditActionEnum action = getEditActionEnum();
+
+ log.info("Edit action : " + action);
+
+ if (action == null) {
+
+ // no validation (no edit action)
+ return;
+ }
+
+ EchoBaseUserDTO user = getUser();
+ String userEmail = user.getEmail();
+
+ switch (action) {
+
+ case CREATE:
+
+ // login + password required
+ if (StringUtils.isEmpty(userEmail)) {
+
+ // empty user login
+ addFieldError("user.email",
+ _("echobase.error.required.email"));
+ } else {
+
+ // check login not already used
+ EchoBaseUser login;
+ try {
+ login = getUserService().getUserByEmail(userEmail);
+ } catch (Exception e) {
+
+ // could not get user
+ throw new IllegalStateException(
+ "Could not obtain user " + userEmail, e);
+ }
+ if (login != null) {
+ addFieldError("user.email",
+ _("echobase.error.email.already.used"));
+ }
+ }
+
+ String userPassword = user.getPassword();
+ if (StringUtils.isEmpty(userPassword)) {
+
+ // empty user password
+ addFieldError("user.password",
+ _("echobase.error.required.password"));
+ }
+
+ break;
+ case EDIT:
+
+ // at the moment nothing to validate
+ break;
+ case DELETE:
+
+ // Do nothing
+ default:
+ // nothing to validate
+ }
+ }
+
+ public EchoBaseUserDTO getUser() {
+ if (user == null) {
+ user = new EchoBaseUserDTOImpl();
+ }
+ return user;
+ }
+
+ protected EditActionEnum getEditActionEnum() {
+ if (userEditAction == null) {
+ return null;
+ }
+ return EditActionEnum.valueOf(userEditAction);
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ManageUser.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/CheckLogguedInterceptor.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/CheckLogguedInterceptor.java 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/CheckLogguedInterceptor.java 2011-11-13 16:20:45 UTC (rev 51)
@@ -26,7 +26,7 @@
import com.opensymphony.xwork2.ActionInvocation;
import fr.ifremer.echobase.ui.EchoBaseSession;
import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-import fr.ifremer.echobase.ui.actions.LoginAction;
+import fr.ifremer.echobase.ui.actions.user.LoginAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2011-11-13 16:20:45 UTC (rev 51)
@@ -31,21 +31,27 @@
<package name="dbeditor" extends="loggued" namespace="/dbeditor">
- <action name="dbeditor" method="input"
+ <!-- load db editor main page -->
+ <action name="dbeditor"
class="fr.ifremer.echobase.ui.actions.dbeditor.LoadEntities">
- <interceptor-ref name="basicStackLoggued"/>
- <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 -->
<action name="getForeignEntities"
class="fr.ifremer.echobase.ui.actions.dbeditor.GetForeignEntities">
- <interceptor-ref name="basicStackLoggued"/>
<result>/WEB-INF/jsp/dbeditor/foreignEntities.jsp</result>
</action>
+ <!-- Get datas of the selected table -->
+ <action name="getTableDatas"
+ class="fr.ifremer.echobase.ui.actions.dbeditor.GetEntities">
+ <result type="json"/>
+ </action>
+
+ <!-- save the modified entity (no result as a grid json edit action)-->
<action name="editTableData"
class="fr.ifremer.echobase.ui.actions.dbeditor.SaveEntity">
- <interceptor-ref name="basicStackLoggued"/>
</action>
</package>
Modified: trunk/echobase-ui/src/main/resources/config/struts-export.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-export.xml 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/resources/config/struts-export.xml 2011-11-13 16:20:45 UTC (rev 51)
@@ -40,35 +40,45 @@
</result-type>
</result-types>
- <default-interceptor-ref name="basicStackLoggued"/>
-
+ <!-- Display export sql main page -->
<action name="exportSql"
- class="fr.ifremer.echobase.ui.actions.export.LoadExportSqlMainPage">
+ class="fr.ifremer.echobase.ui.actions.export.ExportSql">
<result>/WEB-INF/jsp/export/export.jsp</result>
</action>
+ <!-- Display the result of the sql query execution -->
<action name="loadResult"
- class="fr.ifremer.echobase.ui.actions.export.LoadSqlQueryInGrid">
+ class="fr.ifremer.echobase.ui.actions.export.ExportSqlResult">
<result>/WEB-INF/jsp/export/exportGrid.jsp</result>
</action>
-
+
+ <!-- Get result of the sql query execution -->
+ <action name="getExportSqlResult" method="execute"
+ class="fr.ifremer.echobase.ui.actions.export.GetSqlResult">
+ <result type="json"/>
+ </action>
+
+ <!-- Clone the sql query -->
<action name="cloneQuery" method="cloneQuery"
- class="fr.ifremer.echobase.ui.actions.export.ManageSqlQuery">
+ class="fr.ifremer.echobase.ui.actions.export.ManageExportQuery">
<result type="redirectToMainPage"/>
</action>
+ <!-- Save the sql query -->
<action name="saveQuery" method="saveQuery"
- class="fr.ifremer.echobase.ui.actions.export.ManageSqlQuery">
+ class="fr.ifremer.echobase.ui.actions.export.ManageExportQuery">
<result type="redirectToMainPage"/>
</action>
+ <!-- Delete the sql query -->
<action name="deleteQuery" method="deleteQuery"
- class="fr.ifremer.echobase.ui.actions.export.ManageSqlQuery">
+ class="fr.ifremer.echobase.ui.actions.export.ManageExportQuery">
<result type="redirectToMainPage"/>
</action>
+ <!-- Download the sql query csb file -->
<action name="downloadExport"
- class="fr.ifremer.echobase.ui.actions.export.ExportSqlQueryToFile">
+ class="fr.ifremer.echobase.ui.actions.export.DownloadExportSqlResult">
<result type="stream">
<param name="contentType">${contentType}</param>
<param name="contentLength">${contentLength}</param>
Modified: trunk/echobase-ui/src/main/resources/config/struts-import.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-import.xml 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/resources/config/struts-import.xml 2011-11-13 16:20:45 UTC (rev 51)
@@ -33,15 +33,16 @@
<package name="import" extends="loggued" namespace="/import">
<!-- Display import page -->
- <action name="import" class="fr.ifremer.echobase.ui.actions.ImportAction" method="input">
- <interceptor-ref name="basicStackLoggued"/>
+ <action name="import" class="fr.ifremer.echobase.ui.actions.ImportAction"
+ method="input">
<result name="input">/WEB-INF/jsp/import/import.jsp</result>
- <result name="success" type="redirectAction">doImport</result>
+ <result type="redirectAction">doImport</result>
</action>
<!-- Display import page -->
<action name="doImport" class="fr.ifremer.echobase.ui.actions.ImportAction">
<interceptor-ref name="paramsPrepareParamsStackLoggued"/>
+ <result name="wait">/WEB-INF/jsp/import/importProgress.jsp</result>
<result>/WEB-INF/jsp/import/importProgress.jsp</result>
</action>
Deleted: trunk/echobase-ui/src/main/resources/config/struts-json.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-json.xml 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/resources/config/struts-json.xml 2011-11-13 16:20:45 UTC (rev 51)
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- #%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 struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
- "http://struts.apache.org/dtds/struts-2.1.7.dtd">
-
-<struts>
-
- <package name="json" extends="loggued" namespace="/json">
-
- <default-interceptor-ref name="basicStackLoggued"/>
-
- <action name="getUsers"
- class="fr.ifremer.echobase.ui.actions.json.GetUsers">
- <!--interceptor-ref name="basicStackLoggued"/>
- <interceptor-ref name="checkUserIsAdmin"/-->
- <result type="json"/>
- </action>
-
- <action name="getExportSqlResult" method="execute"
- class="fr.ifremer.echobase.ui.actions.json.GetSqlResult">
- <result type="json"/>
- </action>
-
- <action name="getTableDatas"
- class="fr.ifremer.echobase.ui.actions.json.GetEntities">
- <result type="json"/>
- </action>
- <action name="getEntityModificationLogs" method="entityModificationLogs"
- class="fr.ifremer.echobase.ui.actions.json.GetEntities">
- <result type="json"/>
- </action>
-
- </package>
-
-</struts>
-
Modified: trunk/echobase-ui/src/main/resources/config/struts-user.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-user.xml 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/resources/config/struts-user.xml 2011-11-13 16:20:45 UTC (rev 51)
@@ -31,16 +31,18 @@
<package name="user" extends="loggued" namespace="/user">
- <!-- login action -->
- <action name="login" class="fr.ifremer.echobase.ui.actions.LoginAction"
+ <default-interceptor-ref name="basicStackLoggued"/>
+
+ <!-- Login -->
+ <action name="login" class="fr.ifremer.echobase.ui.actions.user.LoginAction"
method="doLogin">
<result name="input">/WEB-INF/jsp/user/login.jsp</result>
<result name="redirect" type="redirect">${redirectAction}</result>
<interceptor-ref name="paramsPrepareParamsStack"/>
</action>
- <!-- logout action -->
- <action name="logout" class="fr.ifremer.echobase.ui.actions.LoginAction"
+ <!-- Logout -->
+ <action name="logout" class="fr.ifremer.echobase.ui.actions.user.LoginAction"
method="doLogout">
<result type="redirectAction">
<param name="namespace">/</param>
@@ -50,36 +52,47 @@
<interceptor-ref name="basicStack"/>
</action>
- <!-- display lists of users -->
- <action name="userList" class="fr.ifremer.echobase.ui.actions.UserAction">
+ <!-- Display lists of users -->
+ <action name="userList" class="fr.ifremer.echobase.ui.actions.user.ManageUser">
<interceptor-ref name="basicStackLoggued"/>
<interceptor-ref name="checkUserIsAdmin"/>
<result>/WEB-INF/jsp/user/userList.jsp</result>
</action>
- <!-- get detail of a user -->
- <action name="userForm" class="fr.ifremer.echobase.ui.actions.UserAction"
+ <!-- Get detail of a user -->
+ <action name="userForm" class="fr.ifremer.echobase.ui.actions.user.ManageUser"
method="input">
<interceptor-ref name="paramsPrepareParamsStackLoggued"/>
<interceptor-ref name="checkUserIsAdmin"/>
<result name="input">/WEB-INF/jsp/user/userForm.jsp</result>
- <result name="success">/WEB-INF/jsp/user/userForm.jsp</result>
+ <result>/WEB-INF/jsp/user/userForm.jsp</result>
<result name="backToList" type="redirectAction">userList</result>
</action>
- <!-- get db modifications -->
+ <!-- Get db modifications -->
<action name="logs"
class="fr.ifremer.echobase.ui.actions.EchoBaseActionSupport">
- <interceptor-ref name="basicStackLoggued"/>
<result>/WEB-INF/jsp/modificationLogs.jsp</result>
</action>
+ <!-- Get db connexion informations -->
<action name="connectToDbInformations"
- class="fr.ifremer.echobase.ui.actions.ConnectToDbInformations">
- <interceptor-ref name="basicStackLoggued"/>
+ class="fr.ifremer.echobase.ui.actions.user.ConnectToDbInformations">
<result>/WEB-INF/jsp/connectToDbInformations.jsp</result>
</action>
+ <!-- Get list of users in database -->
+ <action name="getUsers"
+ class="fr.ifremer.echobase.ui.actions.user.GetUsers">
+ <result type="json"/>
+ </action>
+
+ <!-- Get modification logs entries -->
+ <action name="getEntityModificationLogs" method="entityModificationLogs"
+ class="fr.ifremer.echobase.ui.actions.dbeditor.GetEntities">
+ <result type="json"/>
+ </action>
+
</package>
</struts>
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2011-11-13 16:20:45 UTC (rev 51)
@@ -18,6 +18,9 @@
echobase.common.email=Email
echobase.common.exportFileName=Nom du fichier d'export
echobase.common.import=Import configuration
+echobase.common.jdbcLogin=Login de connexion
+echobase.common.jdbcPassword=Mot de passe
+echobase.common.jdbcUrl=Url de connexion
echobase.common.password=Mot de passe
echobase.common.query.description=Description
echobase.common.query.name=Nom
@@ -60,6 +63,7 @@
echobase.menu.import=Importer des données
echobase.menu.logs=Visualiser les modifications
echobase.menu.users=Gérer les utilisateurs
+echobase.message.askAdministratorPassword=Demander à un administrateur le mot de passe pour l'utilisateur donné
echobase.message.modified.property=
echobase.message.noEntrySelection=Aucune entrée sélectionnée
echobase.msg.warnImportInProgress=Merci de ne pas fermer la fenêtre pour pouvoir accéder aux résultats de l'import.
@@ -78,5 +82,3 @@
echobase.title.users=Adminitration des utilisateurs
echobase.user.gridTitle=Liste des utilisateurs
echobase.voyage.selectHeader=Selectionnez une campagne
-echobase.common.jdbcUrl=Url de connexion
-echobase.common.jdbcLogin=Login de connexion
Modified: trunk/echobase-ui/src/main/resources/struts.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/struts.xml 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/resources/struts.xml 2011-11-13 16:20:45 UTC (rev 51)
@@ -104,13 +104,13 @@
</interceptors>
<!-- must be authenticated to perform any actions -->
- <default-interceptor-ref name="paramsPrepareParamsStackLoggued"/>
+ <default-interceptor-ref name="basicStackLoggued"/>
</package>
<package name="applicationDefault" extends="default" namespace="/">
<!-- go to home -->
- <action name="home" class="fr.ifremer.echobase.ui.actions.HomeAction">
+ <action name="home" class="fr.ifremer.echobase.ui.actions.EchoBaseActionSupport">
<result>/WEB-INF/jsp/home.jsp</result>
@@ -125,7 +125,6 @@
</package>
<include file="config/struts-dbeditor.xml"/>
- <include file="config/struts-json.xml"/>
<include file="config/struts-user.xml"/>
<include file="config/struts-import.xml"/>
<include file="config/struts-export.xml"/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml 2011-11-13 16:20:45 UTC (rev 51)
@@ -31,7 +31,7 @@
<pattern>/index*</pattern>
<pattern>/dbeditor/getForeignEntities*</pattern>
<pattern>/export/loadResult*</pattern>
- <pattern>/json/*</pattern>
+ <!--<pattern>/json/*</pattern>-->
</excludes>
<decorator name="layout-default" page="layout-default.jsp">
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/connectToDbInformations.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/connectToDbInformations.jsp 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/connectToDbInformations.jsp 2011-11-13 16:20:45 UTC (rev 51)
@@ -32,10 +32,16 @@
<legend><s:text name="echobase.title.connectionToDb.detail"/></legend>
<s:label key="jdbcUrl" label='%{getText("echobase.common.jdbcUrl")}'/>
<s:label key="jdbcLogin" label='%{getText("echobase.common.jdbcLogin")}'/>
+ <s:label key="jdbcPassword" label='%{getText("echobase.common.jdbcPassword")} (*)'/>
</fieldset>
<br/>
+<s:if test="askPassword">
+ <div>
+ (*) <s:text name="echobase.message.askAdministratorPassword"/>.
+ </div>
+</s:if>
<div>
</div>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2011-11-13 16:20:45 UTC (rev 51)
@@ -53,7 +53,7 @@
<br/>
<s:if test="tableName!=null and tableName != ''">
- <s:url id="loadUrl" action="getTableDatas" namespace="/json"
+ <s:url id="loadUrl" action="getTableDatas" namespace="/dbeditor"
escapeAmp="false">
<s:param name="tableName" value="%{tableName}"/>
</s:url>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportGrid.jsp 2011-11-13 16:20:45 UTC (rev 51)
@@ -26,7 +26,7 @@
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
-<s:url id="loadUrl" action="getExportSqlResult" namespace="/json"
+<s:url id="loadUrl" action="getExportSqlResult" namespace="/export"
escapeAmp="false">
<s:param name="sql" value="%{sql}"/>
</s:url>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/modificationLogs.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/modificationLogs.jsp 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/modificationLogs.jsp 2011-11-13 16:20:45 UTC (rev 51)
@@ -46,7 +46,7 @@
</script>
<title><s:text name="echobase.title.entityModificationLogs"/></title>
-<s:url id="loadUrl" action="getEntityModificationLogs" namespace="/json"
+<s:url id="loadUrl" action="getEntityModificationLogs" namespace="/user"
escapeAmp="false"/>
<sjg:grid id="datas" dataType="json" href="%{loadUrl}" gridModel="datas"
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp 2011-11-13 14:29:26 UTC (rev 50)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp 2011-11-13 16:20:45 UTC (rev 51)
@@ -29,7 +29,7 @@
<title><s:text name="echobase.title.users"/></title>
-<s:url id="loadUrl" action="getUsers" namespace="/json" escapeAmp="false"/>
+<s:url id="loadUrl" action="getUsers" namespace="/user" escapeAmp="false"/>
<s:url id="addUrl" action="userForm" namespace="/user" escapeAmp="false" method="input">
<s:param name="userEditAction"><%=EditActionEnum.CREATE%></s:param>
1
0
r50 - trunk/echobase-entities/src/main/java/fr/ifremer/echobase
by tchemit@users.forge.codelutin.com 13 Nov '11
by tchemit@users.forge.codelutin.com 13 Nov '11
13 Nov '11
Author: tchemit
Date: 2011-11-13 15:29:26 +0100 (Sun, 13 Nov 2011)
New Revision: 50
Url: http://forge.codelutin.com/repositories/revision/echobase/50
Log:
fix configuration
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java 2011-11-13 14:18:28 UTC (rev 49)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java 2011-11-13 14:29:26 UTC (rev 50)
@@ -126,7 +126,7 @@
public boolean isEmbedded() {
Class<?> driverClass = getDriverClass();
- return driverClass.getSimpleName().toLowerCase().contains("h2");
+ return driverClass.getName().toLowerCase().contains("h2");
}
public boolean getOptionAsBoolean(String propertyName) {
1
0