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
January 2012
- 2 participants
- 75 discussions
r303 - in trunk: echobase-entities/src/main/java/fr/ifremer/echobase echobase-services/src/main/java/fr/ifremer/echobase/services echobase-services/src/test/java/fr/ifremer/echobase echobase-services/src/test/java/fr/ifremer/echobase/services echobase-tools/src/test/java/fr/ifremer/echobase/tools echobase-ui/src/main/java/fr/ifremer/echobase/ui echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor
by tchemit@users.forge.codelutin.com 30 Jan '12
by tchemit@users.forge.codelutin.com 30 Jan '12
30 Jan '12
Author: tchemit
Date: 2012-01-30 20:18:07 +0100 (Mon, 30 Jan 2012)
New Revision: 303
Url: http://forge.codelutin.com/repositories/revision/echobase/303
Log:
replace supplier of rootContext by rootContext directly
fix some api broken
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextFactory.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/TestHelper.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/TestHelper.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseTopiaTransactionFilter.java
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextFactory.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextFactory.java 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextFactory.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -23,7 +23,6 @@
*/
package fr.ifremer.echobase;
-import com.google.common.base.Supplier;
import com.google.common.collect.Sets;
import com.google.common.io.Closeables;
import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
@@ -52,22 +51,8 @@
private static final Log log =
LogFactory.getLog(EchoBaseTopiaRootContextFactory.class);
- protected static class EchoBaseTopiaRootContextSupplier implements Supplier<TopiaContext> {
+ public TopiaContext newEmbeddedDatabase(File dir) {
- protected TopiaContext rootContext;
-
- public EchoBaseTopiaRootContextSupplier(TopiaContext rootContext) {
- this.rootContext = rootContext;
- }
-
- @Override
- public TopiaContext get() {
- return rootContext;
- }
- }
-
- public Supplier<TopiaContext> newEmbeddedDatabase(File dir) {
-
File databaseFile = new File(dir, "db");
String databaseAbsolutePath = databaseFile.getAbsolutePath();
@@ -94,7 +79,7 @@
// add topiaReplicationService in the context
properties.setProperty(TopiaReplicationService.TOPIA_SERVICE_NAME,
- TopiaReplicationServiceImpl.class.getName());
+ TopiaReplicationServiceImpl.class.getName());
TopiaContext rootContext;
try {
@@ -107,17 +92,17 @@
log.debug("will output database in " + databaseAbsolutePath);
}
- return new EchoBaseTopiaRootContextSupplier(rootContext);
+ return rootContext;
}
- public Supplier<TopiaContext> newDatabaseFromConfig(EchoBaseConfiguration config) {
+ public TopiaContext newDatabaseFromConfig(EchoBaseConfiguration config) {
Properties properties = config.getProperties();
return newDatabaseFromProperties(properties);
}
- public Supplier<TopiaContext> newDatabaseFromProperties(Properties properties) {
+ public TopiaContext newDatabaseFromProperties(Properties properties) {
if (log.isDebugEnabled()) {
log.debug("Database settings are :");
@@ -143,6 +128,6 @@
throw new TopiaRuntimeException(e);
}
- return new EchoBaseTopiaRootContextSupplier(rootContext);
+ return rootContext;
}
}
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 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -37,7 +37,6 @@
import fr.ifremer.echobase.services.csv.EntityCsvModel;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaException;
@@ -52,7 +51,6 @@
import org.nuiton.util.csv.ImportExportModel;
import org.nuiton.util.csv.ImportableColumn;
import org.nuiton.util.decorator.JXPathDecorator;
-import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import java.util.Collection;
import java.util.List;
@@ -182,15 +180,15 @@
ruleFilter = propertyName + " in ( Select f From " + columnMeta.getType().getName() + " f where " + subQuery + ")";
} else {
- throw new NotImplementedException();
+ throw new UnsupportedOperationException();
}
} else {
if (columnMeta.isNumber()) {
- if (columnMeta.getType()==int.class ||
- columnMeta.getType()==Integer.class) {
+ if (columnMeta.getType() == int.class ||
+ columnMeta.getType() == Integer.class) {
realData = Integer.valueOf(data);
} else {
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 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -24,11 +24,9 @@
package fr.ifremer.echobase.services;
import com.google.common.base.Preconditions;
-import com.google.common.base.Supplier;
import fr.ifremer.echobase.EchoBaseConfiguration;
import fr.ifremer.echobase.entities.meta.DbMeta;
import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.TopiaException;
import java.util.Locale;
@@ -63,19 +61,6 @@
public static EchoBaseServiceContext newContext(
Locale locale,
- Supplier<TopiaContext> topiaContextSupplier,
- EchoBaseConfiguration configuration,
- DbMeta dbMeta,
- EchoBaseServiceFactory serviceFactory) throws TopiaException {
- return newContext(locale,
- topiaContextSupplier.get().beginTransaction(),
- configuration,
- dbMeta,
- serviceFactory);
- }
-
- public static EchoBaseServiceContext newContext(
- Locale locale,
TopiaContext transaction,
EchoBaseConfiguration configuration,
DbMeta dbMeta,
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 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -25,7 +25,6 @@
import com.google.common.base.Charsets;
import com.google.common.base.Preconditions;
-import com.google.common.base.Supplier;
import fr.ifremer.echobase.EchoBaseIOUtil;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory;
@@ -176,11 +175,9 @@
model.incrementsProgression();
// create new h2 db
- Supplier<TopiaContext> topiaContextSupplier =
+ TopiaContext rootContext =
new EchoBaseTopiaRootContextFactory().newEmbeddedDatabase(zipDirectory);
- TopiaContext rootContext = topiaContextSupplier.get();
-
TopiaContext topiaContext = rootContext.beginTransaction();
try {
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -26,7 +26,6 @@
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import org.nuiton.util.PagerUtil;
-import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import java.io.Serializable;
import java.util.Collection;
@@ -176,14 +175,14 @@
in {
@Override
public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- throw new NotImplementedException();
+ throw new UnsupportedOperationException();
}
},
/** Not is among operator. */
ni {
@Override
public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- throw new NotImplementedException();
+ throw new UnsupportedOperationException();
}
};
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -163,7 +163,7 @@
static class MyImportToMap extends ImportToMap {
- public static MyImportToMap newImport(ImportModel<Map<String, Object>> model,
+ public static MyImportToMap newImportToMap(ImportModel<Map<String, Object>> model,
Reader reader) {
return new MyImportToMap(model, reader);
}
@@ -194,7 +194,7 @@
AssociationMeta meta = (AssociationMeta) entry;
ImportModel<Map<String, Object>> model =
importService.buildForImport(meta);
- ImportToMap importer = MyImportToMap.newImport(model, reader);
+ ImportToMap importer = MyImportToMap.newImportToMap(model, reader);
try {
importAssociationfile(meta, importer, csvResult);
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/TestHelper.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/TestHelper.java 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/TestHelper.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -23,7 +23,6 @@
*/
package fr.ifremer.echobase;
-import com.google.common.base.Supplier;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import org.apache.commons.io.FileUtils;
import org.junit.Ignore;
@@ -70,9 +69,8 @@
EchoBaseTopiaRootContextFactory factory =
new EchoBaseTopiaRootContextFactory();
- Supplier<TopiaContext> topiaContextSupplier =
- factory.newEmbeddedDatabase(dbDir);
- return topiaContextSupplier.get();
+ TopiaContext context = factory.newEmbeddedDatabase(dbDir);
+ return context;
}
/**
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -23,7 +23,6 @@
*/
package fr.ifremer.echobase.services;
-import com.google.common.base.Supplier;
import fr.ifremer.echobase.EchoBaseConfiguration;
import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory;
import fr.ifremer.echobase.TestHelper;
@@ -67,8 +66,7 @@
new EchoBaseTopiaRootContextFactory();
File basedir = TestHelper.getBasedir();
File target = new File(basedir, "/target");
- Supplier<TopiaContext> topiaContextSupplier = factory.newEmbeddedDatabase(target);
- TopiaContext rootContext = topiaContextSupplier.get();
+ TopiaContext rootContext = factory.newEmbeddedDatabase(target);
transaction = rootContext.beginTransaction();
}
return transaction;
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -23,7 +23,6 @@
*/
package fr.ifremer.echobase.tools;
-import com.google.common.base.Supplier;
import fr.ifremer.echobase.EchoBaseConfiguration;
import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory;
import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
@@ -64,7 +63,7 @@
protected EchoBaseServiceContext serviceContext;
- protected Supplier<TopiaContext> topiaContextSupplier;
+ protected TopiaContext topiaContext;
protected File testdir;
@@ -91,11 +90,11 @@
EchoBaseTopiaRootContextFactory factory =
new EchoBaseTopiaRootContextFactory();
- topiaContextSupplier = factory.newEmbeddedDatabase(testdir);
+ topiaContext = factory.newEmbeddedDatabase(testdir);
serviceContext = EchoBaseServiceContextImpl.newContext(
Locale.getDefault(),
- topiaContextSupplier,
+ topiaContext,
configuration,
DbMeta.newDbMeta(),
new EchoBaseServiceFactory()
@@ -108,7 +107,7 @@
try {
serviceContext.getTransaction().closeContext();
} finally {
- topiaContextSupplier.get().closeContext();
+ topiaContext.closeContext();
}
}
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/TestHelper.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/TestHelper.java 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/TestHelper.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -23,7 +23,6 @@
*/
package fr.ifremer.echobase.tools;
-import com.google.common.base.Supplier;
import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import org.apache.commons.io.FileUtils;
@@ -99,9 +98,8 @@
EchoBaseTopiaRootContextFactory factory =
new EchoBaseTopiaRootContextFactory();
- Supplier<TopiaContext> topiaContextSupplier =
- factory.newEmbeddedDatabase(dbDir);
- return topiaContextSupplier.get();
+ TopiaContext context = factory.newEmbeddedDatabase(dbDir);
+ return context;
}
/**
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -23,7 +23,6 @@
*/
package fr.ifremer.echobase.ui;
-import com.google.common.base.Supplier;
import fr.ifremer.echobase.EchoBaseConfiguration;
import fr.ifremer.echobase.entities.meta.DbMeta;
import org.nuiton.topia.TopiaContext;
@@ -35,9 +34,10 @@
public class EchoBaseApplicationContext {
protected EchoBaseConfiguration configuration;
+
protected DbMeta dbMeta;
- protected Supplier<TopiaContext> rootContextSupplier;
+ protected TopiaContext rootContext;
public EchoBaseConfiguration getConfiguration() {
return configuration;
@@ -47,12 +47,12 @@
this.configuration = configuration;
}
- public Supplier<TopiaContext> getRootContextSupplier() {
- return rootContextSupplier;
+ public TopiaContext getRootContext() {
+ return rootContext;
}
- public void setRootContextSupplier(Supplier<TopiaContext> rootContextSupplier) {
- this.rootContextSupplier = rootContextSupplier;
+ public void setRootContext(TopiaContext rootContext) {
+ this.rootContext = rootContext;
}
public DbMeta getDbMeta() {
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 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -23,7 +23,6 @@
*/
package fr.ifremer.echobase.ui;
-import com.google.common.base.Supplier;
import fr.ifremer.echobase.EchoBaseConfiguration;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory;
@@ -45,7 +44,6 @@
import org.nuiton.i18n.init.DefaultI18nInitializer;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.framework.TopiaContextImplementor;
import org.nuiton.topia.framework.TopiaUtil;
import org.nuiton.util.converter.ConverterUtil;
@@ -54,7 +52,6 @@
import java.util.Date;
import java.util.List;
import java.util.Locale;
-import java.util.Properties;
/**
* To listen start or end of the application.
@@ -73,7 +70,7 @@
protected static final Log log =
LogFactory.getLog(EchoBaseApplicationListener.class);
- private Supplier<TopiaContext> rootContextSupplier;
+ private TopiaContext rootContext;
@Override
public void contextInitialized(ServletContextEvent sce) {
@@ -100,8 +97,8 @@
}
EchoBaseTopiaRootContextFactory factory =
new EchoBaseTopiaRootContextFactory();
- rootContextSupplier = factory.newDatabaseFromConfig(configuration);
- applicationContext.setRootContextSupplier(rootContextSupplier);
+ rootContext = factory.newDatabaseFromConfig(configuration);
+ applicationContext.setRootContext(rootContext);
DbMeta dbMeta = DbMeta.newDbMeta();
applicationContext.setDbMeta(dbMeta);
@@ -115,11 +112,24 @@
// init database (and create minimal admin user if required)
try {
- boolean schemaExist = isSchemaCreated();
+ boolean schemaExist = TopiaUtil.isSchemaExist(
+ rootContext,
+ EchoBaseUserImpl.class.getName()
+ );
if (!schemaExist ||
- configuration.getOptionAsBoolean(EchoBaseConfiguration.OPTION_UPDATE_SCHEMA)) {
+ configuration.getOptionAsBoolean(EchoBaseConfiguration.OPTION_UPDATE_SCHEMA)) {
- updateSchema(configuration, schemaExist);
+ if (schemaExist) {
+ if (log.isInfoEnabled()) {
+ log.info("Will update schema...");
+ }
+ rootContext.updateSchema();
+ } else {
+ if (log.isInfoEnabled()) {
+ log.info("Will create schema...");
+ }
+ rootContext.createSchema();
+ }
}
createAdminUser(applicationContext);
@@ -134,11 +144,10 @@
if (log.isInfoEnabled()) {
log.info("Application is ending at " + new Date() + "...");
}
- if (rootContextSupplier != null) {
+ if (rootContext != null) {
if (log.isInfoEnabled()) {
log.info("Shuting down RootContextSupplier...");
}
- TopiaContext rootContext = rootContextSupplier.get();
if (!rootContext.isClosed()) {
try {
rootContext.closeContext();
@@ -151,36 +160,6 @@
}
}
- protected void updateSchema(EchoBaseConfiguration configuration, boolean isCreated) throws TopiaException {
- if (log.isInfoEnabled()) {
- log.info("Will create or update schema for db.");
- }
- // must create the schema
-
- Properties dbConf = configuration.getProperties();
-
- dbConf.put("hibernate.hbm2ddl.auto", isCreated?"update": "create");
-
- EchoBaseTopiaRootContextFactory factory =
- new EchoBaseTopiaRootContextFactory();
- Supplier<TopiaContext> topiaContextSupplier =
- factory.newDatabaseFromProperties(dbConf);
-
- // start a connexion to load schema
- TopiaContext tx = null;
-
- try {
- tx = topiaContextSupplier.get().beginTransaction();
-
- } finally {
-
- // no more update of schema...
- dbConf.put("hibernate.hbm2ddl.auto", "none");
-
- closeTransaction(tx);
- }
- }
-
/**
* Creates the adminsitrator ({@code admin/admin}) on the database.
*
@@ -194,7 +173,7 @@
EchoBaseServiceFactory serviceFactory =
new EchoBaseServiceFactory();
- TopiaContext transaction = rootContextSupplier.get().beginTransaction();
+ TopiaContext transaction = rootContext.beginTransaction();
try {
EchoBaseServiceContext serviceContext = EchoBaseServiceContextImpl.newContext(
@@ -215,7 +194,7 @@
// no users in database create the admin user
if (log.isInfoEnabled()) {
log.info("No user in database, will create default " +
- "admin user (password admin).");
+ "admin user (password admin).");
}
service.createDefaultUsers();
@@ -225,24 +204,6 @@
}
}
- protected boolean isSchemaCreated() throws TopiaException {
-
- TopiaContextImplementor tx =
- (TopiaContextImplementor)
- rootContextSupplier.get();
- try {
- boolean schemaFound = TopiaUtil.isSchemaExist(
- tx,
- EchoBaseUserImpl.class.getName()
- );
-
- return schemaFound;
-
- } finally {
- closeTransaction(tx);
- }
- }
-
/**
* Try to close the given transaction.
*
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseTopiaTransactionFilter.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseTopiaTransactionFilter.java 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseTopiaTransactionFilter.java 2012-01-30 19:18:07 UTC (rev 303)
@@ -23,7 +23,6 @@
*/
package fr.ifremer.echobase.ui;
-import com.google.common.base.Supplier;
import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -48,10 +47,8 @@
protected TopiaContext beginTransaction() throws TopiaRuntimeException {
EchoBaseApplicationContext applicationContext =
EchoBaseActionSupport.getEchoBaseApplicationContext();
- Supplier<TopiaContext> rootContextSupplier =
- applicationContext.getRootContextSupplier();
- TopiaContext rootContext = rootContextSupplier.get();
+ TopiaContext rootContext = applicationContext.getRootContext();
try {
TopiaContext transaction = rootContext.beginTransaction();
if (log.isDebugEnabled()) {
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 2012-01-27 22:17:32 UTC (rev 302)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2012-01-30 19:18:07 UTC (rev 303)
@@ -279,12 +279,6 @@
searchoptions="{sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn']}"
sortable="true"/>
</s:elseif>
- <%--s:elseif test="#meta.number">
- <sjg:gridColumn name="%{#meta.name}"
- title="%{#meta.name}"
- searchoptions="{sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn']}"
- sortable="true"/>
- </s:elseif--%>
<s:else>
<sjg:gridColumn name="%{#meta.name}"
title="%{#meta.name}"
1
0
r302 - in trunk: echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta echobase-services/src/main/java/fr/ifremer/echobase/services echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor
by tchemit@users.forge.codelutin.com 27 Jan '12
by tchemit@users.forge.codelutin.com 27 Jan '12
27 Jan '12
Author: tchemit
Date: 2012-01-27 23:17:32 +0100 (Fri, 27 Jan 2012)
New Revision: 302
Url: http://forge.codelutin.com/repositories/revision/echobase/302
Log:
Evolution #673: Rendre op?\195?\169rationnel les filtres sur l'?\195?\169diteur d'entit?\195?\169
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java 2012-01-27 18:06:10 UTC (rev 301)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java 2012-01-27 22:17:32 UTC (rev 302)
@@ -24,6 +24,7 @@
package fr.ifremer.echobase.entities.meta;
import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.util.ObjectUtil;
import java.io.Serializable;
import java.util.Date;
@@ -75,13 +76,17 @@
}
public boolean isDate() {
- return Date.class.equals(type);
+ return Date.class.isAssignableFrom(type);
}
public boolean isBoolean() {
return boolean.class.equals(type);
}
+ public boolean isNumber() {
+ return !isBoolean() && (type.isPrimitive() || Number.class.isAssignableFrom(type));
+ }
+
protected ColumnMeta(String name, Class<?> type) {
this.name = name;
this.type = type;
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 2012-01-27 18:06:10 UTC (rev 301)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-01-27 22:17:32 UTC (rev 302)
@@ -37,6 +37,7 @@
import fr.ifremer.echobase.services.csv.EntityCsvModel;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaException;
@@ -50,6 +51,8 @@
import org.nuiton.util.csv.ExportableColumn;
import org.nuiton.util.csv.ImportExportModel;
import org.nuiton.util.csv.ImportableColumn;
+import org.nuiton.util.decorator.JXPathDecorator;
+import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import java.util.Collection;
import java.util.List;
@@ -136,65 +139,76 @@
if (pager != null && pager.canFilter()) {
+ DecoratorService decoratorService = getDecoratorService();
+
// prepare the filter hql code
List<FilterPagerBean.FilterRule> rules = pager.getRules();
List<String> strFilterRules = Lists.newLinkedList();
+ long timestamp = System.currentTimeMillis();
+ int index = 0;
for (FilterPagerBean.FilterRule rule : rules) {
String ruleFilter = null;
String field = rule.getField();
+
+ ColumnMeta columnMeta = tableMeta.getColumns(field);
+ Preconditions.checkNotNull(
+ columnMeta, "no property named " + columnMeta);
+
FilterPagerBean.Operation op = rule.getOp();
String data = rule.getData();
- String paramName = field + "_" + System.currentTimeMillis();
+ String paramName = field + "_" + timestamp + (index++);
String propertyName = "e." + field;
- switch (op) {
- case eq:
- ruleFilter = propertyName + " = :" + paramName;
- filterParams.put(paramName, data);
- break;
- case ne:
- ruleFilter = propertyName + " != :" + paramName;
- filterParams.put(paramName, data);
- break;
- case cn:
- ruleFilter = propertyName + " like :" + paramName;
- filterParams.put(paramName, data);
- break;
- case nc:
- ruleFilter = propertyName + " not like :" + paramName;
- filterParams.put(paramName, data);
- break;
- case bw:
- break;
- case bn:
- break;
- case ew:
- break;
- case en:
- break;
- case lt:
- break;
- case le:
- break;
- case gt:
- break;
- case ge:
- break;
- case nu:
- ruleFilter = propertyName + " is null";
- break;
- case nn:
- ruleFilter = propertyName + " is not null";
- break;
- case in:
- break;
- case ni:
- break;
+ Object realData = data;
+ if (columnMeta.isFK()) {
+
+ // must do a select in using the decoration pattern
+
+ JXPathDecorator<?> decorator =
+ (JXPathDecorator<?>) decoratorService.getDecorator(getLocale(),
+ columnMeta.getType(),
+ null);
+
+ if (decorator.getNbToken() == 1) {
+
+ // simple case one token
+ String token = "f." + decorator.getProperty(0);
+
+ String subQuery = op.toHql(paramName,
+ token,
+ data,
+ filterParams);
+
+ ruleFilter = propertyName + " in ( Select f From " + columnMeta.getType().getName() + " f where " + subQuery + ")";
+ } else {
+
+ throw new NotImplementedException();
+ }
+
+
+ } else {
+
+ if (columnMeta.isNumber()) {
+ if (columnMeta.getType()==int.class ||
+ columnMeta.getType()==Integer.class) {
+ realData = Integer.valueOf(data);
+ } else {
+
+ realData = Double.valueOf(data);
+ }
+ } else if (columnMeta.isDate()) {
+ propertyName = "str(" + propertyName + ")";
+ }
+ ruleFilter = op.toHql(paramName,
+ propertyName,
+ realData,
+ filterParams);
+
}
- if (ruleFilter != null) {
- ruleFilter = "(" + ruleFilter + ")";
- strFilterRules.add(ruleFilter);
- }
+
+
+ strFilterRules.add("(" + ruleFilter + ")");
+
}
if (CollectionUtils.isNotEmpty(strFilterRules)) {
@@ -217,6 +231,11 @@
countQuery.addParam(paramName, paramValue);
}
countQuery.addWhere(filterHql);
+
+ String fullQuery = countQuery.fullQuery();
+ if (log.isInfoEnabled()) {
+ log.info("fullquery = " + fullQuery);
+ }
}
int count = dao.countByQuery(countQuery);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java 2012-01-27 18:06:10 UTC (rev 301)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java 2012-01-27 22:17:32 UTC (rev 302)
@@ -26,6 +26,7 @@
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import org.nuiton.util.PagerUtil;
+import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import java.io.Serializable;
import java.util.Collection;
@@ -48,37 +49,145 @@
public enum Operation {
/** Equals operator. */
- eq,
+ eq {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " = :" + paramName;
+ filterParams.put(paramName, data);
+ return ruleFilter;
+ }
+ },
/** Not equals operator. */
- ne,
+ ne {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " != :" + paramName;
+ filterParams.put(paramName, data);
+ return ruleFilter;
+ }
+ },
/** Contains operator. */
- cn,
+ cn {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " like :" + paramName;
+ filterParams.put(paramName, "%" + data + "%");
+ return ruleFilter;
+ }
+ },
/** Not contains operator. */
- nc,
+ nc {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " not like :" + paramName;
+ filterParams.put(paramName, "%" + data + "%");
+ return ruleFilter;
+ }
+ },
/** Begins with operator. */
- bw,
+ bw {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " like :" + paramName;
+ filterParams.put(paramName, data + "%");
+ return ruleFilter;
+ }
+ },
/** Not between with operator. */
- bn,
+ bn {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " not like :" + paramName;
+ filterParams.put(paramName, data + "%");
+ return ruleFilter;
+ }
+ },
/** Ends with operator. */
- ew,
+ ew {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " like :" + paramName;
+ filterParams.put(paramName, "%" + data);
+ return ruleFilter;
+ }
+ },
/** Not End with operator. */
- en,
+ en {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " not like :" + paramName;
+ filterParams.put(paramName, "%" + data);
+ return ruleFilter;
+ }
+ },
/** Lesser than operator. */
- lt,
+ lt {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " < :" + paramName;
+ filterParams.put(paramName, data);
+ return ruleFilter;
+ }
+ },
/** Lesser or equals operator. */
- le,
+ le {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " <= :" + paramName;
+ filterParams.put(paramName, data);
+ return ruleFilter;
+ }
+ },
/** Greater than operator. */
- gt,
+ gt {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " > :" + paramName;
+ filterParams.put(paramName, data);
+ return ruleFilter;
+ }
+ },
/** Greater or equals operator. */
- ge,
+ ge {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " >= :" + paramName;
+ filterParams.put(paramName, data);
+ return ruleFilter;
+ }
+ },
/** Is null operator. */
- nu,
+ nu {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " is null";
+ return ruleFilter;
+ }
+ },
/** Is not null operator. */
- nn,
+ nn {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ String ruleFilter = propertyName + " is not null";
+ return ruleFilter;
+ }
+ },
/** Is among operator. */
- in,
+ in {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ throw new NotImplementedException();
+ }
+ },
/** Not is among operator. */
- ni
+ ni {
+ @Override
+ public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
+ throw new NotImplementedException();
+ }
+ };
+
+ public abstract String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams);
}
public static class FilterRule implements Serializable {
@@ -122,7 +231,7 @@
}
public boolean canFilter() {
- return groupOp!=null && CollectionUtils.isNotEmpty(rules);
+ return groupOp != null && CollectionUtils.isNotEmpty(rules);
}
protected OperationGroup groupOp;
Modified: 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/dbeditor/GetEntities.java 2012-01-27 18:06:10 UTC (rev 301)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java 2012-01-27 22:17:32 UTC (rev 302)
@@ -92,10 +92,6 @@
log.debug("sord = " + ascendantOrder);
}
- if (log.isInfoEnabled()) {
- log.info("filter " + getFilters());
- }
-
DbEditorService service = newService(DbEditorService.class);
datas = service.getDatas(
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 2012-01-27 18:06:10 UTC (rev 301)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2012-01-27 22:17:32 UTC (rev 302)
@@ -253,7 +253,7 @@
rowList="10,15,20,50,100,250,500" rowNum="10"
onSelectRowTopics="datas-rowSelect"
onCompleteTopics="datas-clearSelect,datas-CompleteTopics"
- navigatorSearchOptions="{multipleGroup:false,multipleSearch:true,sopt:['eq','ne','cn','nc','lt','gt','nu','nn']}">
+ navigatorSearchOptions="{multipleGroup:false,multipleSearch:true,sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn']}">
<%--navigatorSearchOptions="{multipleGroup:false,showQuery:true,multipleSearch:true,sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn','in','ni']}"--%>
@@ -265,20 +265,32 @@
<sjg:gridColumn name="%{#meta.name}"
title="%{#meta.name}"
formatter='formatEntityLabel'
+ searchoptions="{sopt:['eq','ne','cn','nc','bw','bn','ew','en','nu','nn']}"
sortable="true"/>
</s:if>
<s:elseif test="#meta.name == 'id'">
<sjg:gridColumn name="ID"
title="id"
- sortable="true" editable="true"/>
+ sortable="true"/>
</s:elseif>
+ <s:elseif test="#meta.date || #meta.number">
+ <sjg:gridColumn name="%{#meta.name}"
+ title="%{#meta.name}"
+ searchoptions="{sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn']}"
+ sortable="true"/>
+ </s:elseif>
+ <%--s:elseif test="#meta.number">
+ <sjg:gridColumn name="%{#meta.name}"
+ title="%{#meta.name}"
+ searchoptions="{sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn']}"
+ sortable="true"/>
+ </s:elseif--%>
<s:else>
<sjg:gridColumn name="%{#meta.name}"
title="%{#meta.name}"
- sortable="true" editable="true"/>
+ searchoptions="{sopt:['eq','ne','cn','nc','bw','bn','ew','en','nu','nn']}"
+ sortable="true"/>
</s:else>
-
-
</s:iterator>
</sjg:grid>
1
0
r301 - in trunk: echobase-services/src/main/java/fr/ifremer/echobase/services echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor
by tchemit@users.forge.codelutin.com 27 Jan '12
by tchemit@users.forge.codelutin.com 27 Jan '12
27 Jan '12
Author: tchemit
Date: 2012-01-27 19:06:10 +0100 (Fri, 27 Jan 2012)
New Revision: 301
Url: http://forge.codelutin.com/repositories/revision/echobase/301
Log:
Evolution #673: Rendre op?\195?\169rationnel les filtres sur l'?\195?\169diteur d'entit?\195?\169
Added:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.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/dbeditor/GetEntities.java
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
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 2012-01-27 15:50:00 UTC (rev 300)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-01-27 18:06:10 UTC (rev 301)
@@ -24,6 +24,7 @@
package fr.ifremer.echobase.services;
import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
@@ -34,6 +35,7 @@
import fr.ifremer.echobase.entities.meta.TableMeta;
import fr.ifremer.echobase.services.csv.CsvModelUtil;
import fr.ifremer.echobase.services.csv.EntityCsvModel;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -88,7 +90,7 @@
//TODO Use an object to filter datas
public Map<?, ?>[] getDatas(EchoBaseEntityEnum entityType,
- PagerUtil.PagerBean pager,
+ FilterPagerBean pager,
String sidx,
Boolean ascendantOrder) {
@@ -115,7 +117,7 @@
}
public <E extends TopiaEntity> List<E> getEntities(TableMeta tableMeta,
- PagerUtil.PagerBean pager,
+ FilterPagerBean pager,
String sidx,
Boolean ascendantOrder,
String extraWhereQuery) {
@@ -128,6 +130,95 @@
// first query to count datas
TopiaQuery countQuery = dao.createQuery("e");
countQuery.addSelect("count(*)");
+ String filterHql = null;
+
+ Map<String, Object> filterParams = Maps.newHashMap();
+
+ if (pager != null && pager.canFilter()) {
+
+ // prepare the filter hql code
+ List<FilterPagerBean.FilterRule> rules = pager.getRules();
+ List<String> strFilterRules = Lists.newLinkedList();
+ for (FilterPagerBean.FilterRule rule : rules) {
+ String ruleFilter = null;
+
+ String field = rule.getField();
+ FilterPagerBean.Operation op = rule.getOp();
+ String data = rule.getData();
+ String paramName = field + "_" + System.currentTimeMillis();
+ String propertyName = "e." + field;
+ switch (op) {
+ case eq:
+ ruleFilter = propertyName + " = :" + paramName;
+ filterParams.put(paramName, data);
+ break;
+ case ne:
+ ruleFilter = propertyName + " != :" + paramName;
+ filterParams.put(paramName, data);
+ break;
+ case cn:
+ ruleFilter = propertyName + " like :" + paramName;
+ filterParams.put(paramName, data);
+ break;
+ case nc:
+ ruleFilter = propertyName + " not like :" + paramName;
+ filterParams.put(paramName, data);
+ break;
+ case bw:
+ break;
+ case bn:
+ break;
+ case ew:
+ break;
+ case en:
+ break;
+ case lt:
+ break;
+ case le:
+ break;
+ case gt:
+ break;
+ case ge:
+ break;
+ case nu:
+ ruleFilter = propertyName + " is null";
+ break;
+ case nn:
+ ruleFilter = propertyName + " is not null";
+ break;
+ case in:
+ break;
+ case ni:
+ break;
+ }
+ if (ruleFilter != null) {
+ ruleFilter = "(" + ruleFilter + ")";
+ strFilterRules.add(ruleFilter);
+ }
+ }
+
+ if (CollectionUtils.isNotEmpty(strFilterRules)) {
+ FilterPagerBean.OperationGroup groupOp = pager.getGroupOp();
+ filterHql = StringUtils.join(strFilterRules, groupOp.name());
+ }
+ }
+
+ if (filterHql != null) {
+ if (log.isInfoEnabled()) {
+ log.info("filterHql = " + filterHql);
+ }
+ for (Map.Entry<String, Object> e : filterParams.entrySet()) {
+ String paramName = e.getKey();
+ Object paramValue = e.getValue();
+ if (log.isInfoEnabled()) {
+ log.info("filterParam = " +
+ paramName + "/" + paramValue);
+ }
+ countQuery.addParam(paramName, paramValue);
+ }
+ countQuery.addWhere(filterHql);
+ }
+
int count = dao.countByQuery(countQuery);
TopiaQuery query = dao.createQuery("e");
@@ -148,6 +239,15 @@
log.debug("pageCount= " + pager.getPagesNumber());
}
+ if (filterHql != null) {
+ for (Map.Entry<String, Object> entry : filterParams.entrySet()) {
+ String paramName = entry.getKey();
+ Object paramValue = entry.getValue();
+ query.addParam(paramName, paramValue);
+ }
+ query.addWhere(filterHql);
+ }
+
if (StringUtils.isNotEmpty(sidx)) {
if (ascendantOrder) {
query.addOrder(sidx);
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java 2012-01-27 18:06:10 UTC (rev 301)
@@ -0,0 +1,186 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 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.collect.Lists;
+import org.apache.commons.collections.CollectionUtils;
+import org.nuiton.util.PagerUtil;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Pager bean with filtering datas.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class FilterPagerBean extends PagerUtil.PagerBean {
+
+ private static final long serialVersionUID = 1L;
+
+ public enum OperationGroup {
+ OR, AND
+ }
+
+ public enum Operation {
+ /** Equals operator. */
+ eq,
+ /** Not equals operator. */
+ ne,
+ /** Contains operator. */
+ cn,
+ /** Not contains operator. */
+ nc,
+ /** Begins with operator. */
+ bw,
+ /** Not between with operator. */
+ bn,
+ /** Ends with operator. */
+ ew,
+ /** Not End with operator. */
+ en,
+ /** Lesser than operator. */
+ lt,
+ /** Lesser or equals operator. */
+ le,
+ /** Greater than operator. */
+ gt,
+ /** Greater or equals operator. */
+ ge,
+ /** Is null operator. */
+ nu,
+ /** Is not null operator. */
+ nn,
+ /** Is among operator. */
+ in,
+ /** Not is among operator. */
+ ni
+ }
+
+ public static class FilterRule implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ protected final Operation op;
+
+ protected final String field;
+
+ protected final String data;
+
+ public FilterRule(Operation op,
+ String field,
+ String data) {
+ this.op = op;
+ this.field = field;
+ this.data = data;
+ }
+
+ public Operation getOp() {
+ return op;
+ }
+
+ public String getField() {
+ return field;
+ }
+
+ public String getData() {
+ return data;
+ }
+ }
+
+ public static FilterPagerBeanBuilder newFilterPagerBeanBuilder(String operationGroup) {
+ OperationGroup operationGroup1 = OperationGroup.valueOf(operationGroup);
+ FilterPagerBeanBuilder builder = new FilterPagerBeanBuilder(operationGroup1);
+ return builder;
+ }
+
+ public FilterPagerBean() {
+ }
+
+ public boolean canFilter() {
+ return groupOp!=null && CollectionUtils.isNotEmpty(rules);
+ }
+
+ protected OperationGroup groupOp;
+
+ private List<FilterRule> rules;
+
+ public OperationGroup getGroupOp() {
+ return groupOp;
+ }
+
+ public void setGroupOp(OperationGroup groupOp) {
+ this.groupOp = groupOp;
+ }
+
+ public List<FilterRule> getRules() {
+ return rules;
+ }
+
+ public void setRules(List<FilterRule> rules) {
+ this.rules = rules;
+ }
+
+ public static class FilterPagerBeanBuilder {
+
+ protected final OperationGroup groupOp;
+
+ protected final List<FilterRule> rules;
+
+ public FilterPagerBeanBuilder(OperationGroup groupOp) {
+ this.groupOp = groupOp;
+ rules = Lists.newLinkedList();
+ }
+
+ public FilterPagerBeanBuilder addOperations(Collection<Map<String, String>> operations) {
+ for (Map<String, String> operation : operations) {
+ addRule(operation);
+ }
+ return this;
+ }
+
+ public FilterPagerBeanBuilder addRule(Map<String, String> ruleMap) {
+ String op = ruleMap.get("op");
+ String property = ruleMap.get("field");
+ String value = ruleMap.get("data");
+ Operation operator = Operation.valueOf(op);
+ return addRule(new FilterRule(operator, property, value));
+ }
+
+ public FilterPagerBeanBuilder addRule(FilterRule rule) {
+ rules.add(rule);
+ return this;
+ }
+
+ public void flush(FilterPagerBean bean) {
+ bean.setGroupOp(groupOp);
+ bean.setRules(rules);
+ }
+
+
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.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/AbstractJSONPaginedAction.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java 2012-01-27 15:50:00 UTC (rev 300)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java 2012-01-27 18:06:10 UTC (rev 301)
@@ -23,11 +23,14 @@
*/
package fr.ifremer.echobase.ui.actions;
+import fr.ifremer.echobase.services.FilterPagerBean;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.json.JSONException;
import org.apache.struts2.json.JSONUtil;
-import org.nuiton.util.PagerUtil;
+import java.util.Collection;
+import java.util.Map;
+
/**
* Abstract JSON action with pagination support.
*
@@ -46,7 +49,7 @@
public abstract Integer getRecords();
- protected PagerUtil.PagerBean pager = PagerUtil.newPagerBean();
+ protected FilterPagerBean pager = new FilterPagerBean();
// sorting order - asc or desc
protected String sord;
@@ -108,11 +111,19 @@
return StringUtils.isNotEmpty(sidx);
}
- protected Object getFilterObject() throws JSONException {
- Object filterObject = null;
+ protected void initFilter() throws JSONException {
+
if (StringUtils.isNotEmpty(filters)) {
- filterObject = JSONUtil.deserialize(filters);
+ Map<String, Object> filterObject =
+ (Map<String, Object>) JSONUtil.deserialize(filters);
+
+ String groupOp = (String) filterObject.get("groupOp");
+ Collection<Map<String, String>> rules =
+ (Collection<Map<String, String>>) filterObject.get("rules");
+
+ FilterPagerBean.newFilterPagerBeanBuilder(groupOp).
+ addOperations(rules).
+ flush(pager);
}
- return filterObject;
}
}
Modified: 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/dbeditor/GetEntities.java 2012-01-27 15:50:00 UTC (rev 300)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java 2012-01-27 18:06:10 UTC (rev 301)
@@ -83,15 +83,19 @@
Boolean ascendantOrder = isSortAscendant();
String sortColumn = getSortColumn();
- Object filterObject = getFilterObject();
+ initFilter();
+
if (log.isDebugEnabled()) {
log.debug("filters = " + getFilters());
- log.debug("filterObject = " + filterObject);
log.debug("sidx = " + sortColumn);
log.debug("sord = " + ascendantOrder);
}
+ if (log.isInfoEnabled()) {
+ log.info("filter " + getFilters());
+ }
+
DbEditorService service = newService(DbEditorService.class);
datas = service.getDatas(
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 2012-01-27 15:50:00 UTC (rev 300)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2012-01-27 18:06:10 UTC (rev 301)
@@ -253,8 +253,10 @@
rowList="10,15,20,50,100,250,500" rowNum="10"
onSelectRowTopics="datas-rowSelect"
onCompleteTopics="datas-clearSelect,datas-CompleteTopics"
- navigatorSearchOptions="{multipleGroup:false,showQuery:true,multipleSearch:true,sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn','in','ni']}">
+ navigatorSearchOptions="{multipleGroup:false,multipleSearch:true,sopt:['eq','ne','cn','nc','lt','gt','nu','nn']}">
+ <%--navigatorSearchOptions="{multipleGroup:false,showQuery:true,multipleSearch:true,sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn','in','ni']}"--%>
+
<sjg:gridColumn name="id" title="id" hidden="true" editable="true"/>
<s:iterator value="columnMetas" var="meta" status="status">
1
0
r300 - in trunk/echobase-ui/src/main: resources/template resources/template/themes resources/template/themes/echobase-theme webapp/WEB-INF/includes webapp/WEB-INF/jsp webapp/WEB-INF/jsp/dbeditor webapp/WEB-INF/jsp/exportQuery webapp/WEB-INF/jsp/user webapp/css webapp/js
by tchemit@users.forge.codelutin.com 27 Jan '12
by tchemit@users.forge.codelutin.com 27 Jan '12
27 Jan '12
Author: tchemit
Date: 2012-01-27 16:50:00 +0100 (Fri, 27 Jan 2012)
New Revision: 300
Url: http://forge.codelutin.com/repositories/revision/echobase/300
Log:
preparation mise en place theme jquery (echobase-theme)
Added:
trunk/echobase-ui/src/main/resources/template/themes/
trunk/echobase-ui/src/main/resources/template/themes/echobase-theme/
trunk/echobase-ui/src/main/resources/template/themes/echobase-theme/images/
Modified:
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/metas.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportQuery/exportQueryResult.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/modificationLogs.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp
trunk/echobase-ui/src/main/webapp/css/screen.css
trunk/echobase-ui/src/main/webapp/js/gridHelper.js
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/metas.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/metas.jsp 2012-01-27 13:35:03 UTC (rev 299)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/metas.jsp 2012-01-27 15:50:00 UTC (rev 300)
@@ -33,4 +33,6 @@
<link rel="icon" type="image/png"
href="<s:url value='/images/logo_codelutin.png' />"/>
<sj:head jqueryui="true" jquerytheme="start"/>
+ <%--Use echobase-theme when ready--%>
+ <%--<sj:head jqueryui="true" jquerytheme="echobase-theme"/>--%>
</head>
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 2012-01-27 13:35:03 UTC (rev 299)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2012-01-27 15:50:00 UTC (rev 300)
@@ -68,6 +68,8 @@
$('#editForm').hide();
});
+ $.addEvenAndOddClasses('datas');
+
// on row selection, let's load the edit form
$.addRowSelectTopic('datas', function (event) {
@@ -250,7 +252,7 @@
navigatorDelete="false" navigatorAdd="false"
rowList="10,15,20,50,100,250,500" rowNum="10"
onSelectRowTopics="datas-rowSelect"
- onCompleteTopics="datas-clearSelect"
+ onCompleteTopics="datas-clearSelect,datas-CompleteTopics"
navigatorSearchOptions="{multipleGroup:false,showQuery:true,multipleSearch:true,sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn','in','ni']}">
<sjg:gridColumn name="id" title="id" hidden="true" editable="true"/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportQuery/exportQueryResult.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportQuery/exportQueryResult.jsp 2012-01-27 13:35:03 UTC (rev 299)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportQuery/exportQueryResult.jsp 2012-01-27 15:50:00 UTC (rev 300)
@@ -26,6 +26,19 @@
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
+
+<script type="text/javascript"
+ src="<s:url value='/js/gridHelper.js' />"></script>
+
+
+<script type="text/javascript">
+
+ jQuery(document).ready(function () {
+
+ $.addEvenAndOddClasses('datas');
+ });
+
+</script>
<s:if test="hasActionErrors()">
<div class="info_error">
<s:actionerror/>
@@ -54,6 +67,7 @@
navigatorEdit="false" navigatorDelete="false"
navigatorSearch="false" navigatorRefresh="false"
navigatorAdd="false" rowList="10,15,20,50,100,250,500"
+ onCompleteTopics="datas-CompleteTopics"
rowNum="10" viewrecords="true">
<s:iterator value="columnNames" var="name" status="status">
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/modificationLogs.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/modificationLogs.jsp 2012-01-27 13:35:03 UTC (rev 299)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/modificationLogs.jsp 2012-01-27 15:50:00 UTC (rev 300)
@@ -39,6 +39,7 @@
console.info("Clear selection = ");
$('#modificationTextContainter').html("${emptySelection}");
});
+ $.addEvenAndOddClasses('datas');
});
</script>
@@ -54,7 +55,7 @@
navigatorDelete="false" navigatorAdd="false"
rowList="10,15,20,50,100,250,500" rowNum="10"
onSelectRowTopics='datas-rowSelect'
- onCompleteTopics="datas-clearSelect">
+ onCompleteTopics="datas-clearSelect,datas-CompleteTopics">
<sjg:gridColumn name="entityType" sortable="true"
title="%{getText('echobase.common.entityType')}"/>
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 2012-01-27 13:35:03 UTC (rev 299)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp 2012-01-27 15:50:00 UTC (rev 300)
@@ -44,6 +44,7 @@
$.addAddRowTopic('users', '${addUrl}');
$.addSingleRowTopic('users', 'Update', '${updateUrl}', 'user.topiaId');
$.addSingleRowTopic('users', 'Delete', '${delUrl}', 'user.topiaId');
+ $.addEvenAndOddClasses('users');
});
</script>
@@ -52,7 +53,7 @@
pager="true" pagerButtons="true" pagerInput="true"
navigator="true" rownumbers="false" autowidth="true"
onSelectRowTopics='users-rowSelect'
- onCompleteTopics='users-cleanSelect'
+ onCompleteTopics='users-cleanSelect,users-CompleteTopics'
navigatorEdit="false" navigatorDelete="false"
navigatorSearch="false" navigatorRefresh="false"
navigatorAdd="false" viewrecords="true"
Modified: trunk/echobase-ui/src/main/webapp/css/screen.css
===================================================================
--- trunk/echobase-ui/src/main/webapp/css/screen.css 2012-01-27 13:35:03 UTC (rev 299)
+++ trunk/echobase-ui/src/main/webapp/css/screen.css 2012-01-27 15:50:00 UTC (rev 300)
@@ -25,6 +25,28 @@
font-family: sans-serif;
}
+/*address this input echobse-theme when ready*/
+.ui-jqgrid-view tr.odd {
+ background-attachment: scroll;
+ background-clip: border-box;
+ background-color: white !important;
+ background-image: none;
+ background-origin: padding-box;
+ background-position: 0 0;
+ background-repeat: repeat;
+ background-size: auto auto;
+}
+.ui-jqgrid-view tr.even{
+ background-attachment: scroll;
+ background-clip: border-box;
+ background-color: lightgrey !important;
+ background-image: none;
+ background-origin: padding-box;
+ background-position: 0 0;
+ background-repeat: repeat;
+ background-size: auto auto;
+}
+
.inline {
display:inline;
}
Modified: trunk/echobase-ui/src/main/webapp/js/gridHelper.js
===================================================================
--- trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-01-27 13:35:03 UTC (rev 299)
+++ trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-01-27 15:50:00 UTC (rev 300)
@@ -21,7 +21,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
-( function($) {
+( function ($) {
$.fn.extend(
{
@@ -155,6 +155,17 @@
callback();
}
});
+ },
+
+ // Ajoute les classes even et odd à tous les tableaux de la page
+ addEvenAndOddClasses:function (gridId) {
+
+ // On souscrit au topic qui appelle la fonction addEvenAndOddClasses
+ $.subscribe(gridId + '-CompleteTopics', function () {
+ $('table tr:even').addClass('even');
+ $('table tr:odd').addClass('odd');
+ });
+
}
});
@@ -186,6 +197,9 @@
},
updateSelectBoxContent:function (url, params, jsonTarget, target, callback) {
return $(document).updateSelectBoxContent(url, params, jsonTarget, target, callback);
+ },
+ addEvenAndOddClasses:function (gridId) {
+ return $(document).addEvenAndOddClasses(gridId);
}
});
})(jQuery);
1
0
r299 - in trunk: . echobase-ui/src/main/webapp/WEB-INF/includes
by tchemit@users.forge.codelutin.com 27 Jan '12
by tchemit@users.forge.codelutin.com 27 Jan '12
27 Jan '12
Author: tchemit
Date: 2012-01-27 14:35:03 +0100 (Fri, 27 Jan 2012)
New Revision: 299
Url: http://forge.codelutin.com/repositories/revision/echobase/299
Log:
update deps + use start jquery-ui theme
Modified:
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/metas.jsp
trunk/pom.xml
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/metas.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/metas.jsp 2012-01-26 18:22:55 UTC (rev 298)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/metas.jsp 2012-01-27 13:35:03 UTC (rev 299)
@@ -32,5 +32,5 @@
href="<s:url value='/css/screen.css' />"/>
<link rel="icon" type="image/png"
href="<s:url value='/images/logo_codelutin.png' />"/>
- <sj:head jqueryui="true" jquerytheme="cupertino"/>
+ <sj:head jqueryui="true" jquerytheme="start"/>
</head>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-01-26 18:22:55 UTC (rev 298)
+++ trunk/pom.xml 2012-01-27 13:35:03 UTC (rev 299)
@@ -116,14 +116,14 @@
<msaccessImporterVersion>1.4.1</msaccessImporterVersion>
<struts2Version>2.3.1.2</struts2Version>
<jqueryPluginVersion>3.2.1</jqueryPluginVersion>
- <seleniumVersion>2.16.1</seleniumVersion>
+ <seleniumVersion>2.17.0</seleniumVersion>
<h2Version>1.3.163</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
<slf4jVersion>1.6.4</slf4jVersion>
<!--<jettyVersion>7.5.3.v20111011</jettyVersion>-->
<jackcessVersion>1.2.6</jackcessVersion>
<!-- This version does not work (missing javax.el api in overlay) -->
- <jettyVersion>8.1.0.RC2</jettyVersion>
+ <jettyVersion>8.1.0.RC5</jettyVersion>
<hibernateVersion>3.6.9.Final</hibernateVersion>
1
0
r298 - in trunk/echobase-ui/src/main: resources/i18n webapp/WEB-INF/jsp/importData webapp/js
by tchemit@users.forge.codelutin.com 26 Jan '12
by tchemit@users.forge.codelutin.com 26 Jan '12
26 Jan '12
Author: tchemit
Date: 2012-01-26 19:22:55 +0100 (Thu, 26 Jan 2012)
New Revision: 298
Url: http://forge.codelutin.com/repositories/revision/echobase/298
Log:
fix validation for import data configuration screens
Modified:
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticRegionData.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesData.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesIndividualData.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonDataComplete.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonDataFromTransect.jsp
trunk/echobase-ui/src/main/webapp/js/gridHelper.js
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 2012-01-26 16:33:38 UTC (rev 297)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-01-26 18:22:55 UTC (rev 298)
@@ -66,6 +66,7 @@
echobase.error.import.areaOfOperation.required=La sélection d'une zone d'opération est obligatoire
echobase.error.import.associationFile.required=La sélection d'un fichier Association est obligatoire
echobase.error.import.datum.required=Datum de la campagne non rengeigné
+echobase.error.import.digitThreshold.required=digitThreshold non renseigné
echobase.error.import.echosounderSoundSpeed.required=echosounderSoundSpeed non renseigné
echobase.error.import.echotypeFile.required=La sélection d'un fichier Echotype est obligatoire
echobase.error.import.importMode.required=Le mode d'import est obligatoire
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-01-26 16:33:38 UTC (rev 297)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-01-26 18:22:55 UTC (rev 298)
@@ -37,28 +37,60 @@
jQuery(document).ready(function () {
+ var voyageSelectBox = $('[name="model.voyageId"]');
var transitSelectBox = $('[name="model.transitId"]');
var vesselSelectBox = $('[name="model.vesselId"]');
- $('[name="model.voyageId"]').change({transitSelectBox:transitSelectBox,
- vesselSelectBox:vesselSelectBox}, function (event) {
+ voyageSelectBox.change({transitSelectBox:transitSelectBox,
+ vesselSelectBox:vesselSelectBox}, function (event) {
$.updateSelectBoxContent('${getTransitsUrl}',
{voyageId:this.value},
'transits',
event.data.transitSelectBox
- );
+ );
event.data.vesselSelectBox.html("");
});
+ transitSelectBox.change({vesselSelectBox:vesselSelectBox}, function (event) {
- $('[name="model.transitId"]').change({vesselSelectBox:vesselSelectBox}, function (event) {
-
$.updateSelectBoxContent('${getVesselsUrl}',
{transitId:this.value},
'vessels',
event.data.vesselSelectBox);
});
+
+ var voyageId = "${model.voyageId}";
+
+ if (voyageId) {
+
+ console.info("reload voyageId " + voyageId);
+ voyageSelectBox.change(voyageId);
+ $.updateSelectBoxContent('${getTransitsUrl}',
+ {voyageId:voyageId},
+ 'transits',
+ transitSelectBox,
+ function() {
+
+ var transitId = "${model.transitId}";
+ if (transitId) {
+
+ transitSelectBox.val(transitId);
+ $.updateSelectBoxContent('${getVesselsUrl}',
+ {transitId:transitId},
+ 'vessels',
+ vesselSelectBox, function() {
+
+ var vesselId = "${model.vesselId}";
+ if (vesselId) {
+ vesselSelectBox.val(vesselId);
+ }
+ });
+ }
+ }
+ );
+ }
+
});
</script>
@@ -69,7 +101,7 @@
<s:text name="echobase.legend.importData.configure"/>
</legend>
- <s:select key="model.voyageId" value="''" required="true"
+ <s:select key="model.voyageId" required="true"
label='%{getText("echobase.common.voyage")}'
list="voyages" headerKey="" headerValue=""/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticRegionData.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticRegionData.jsp 2012-01-26 16:33:38 UTC (rev 297)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticRegionData.jsp 2012-01-26 18:22:55 UTC (rev 298)
@@ -41,11 +41,11 @@
<s:text name="echobase.legend.importData.configure"/>
</legend>
- <s:select key="model.voyageId" value="''" required="true"
+ <s:select key="model.voyageId" required="true"
label='%{getText("echobase.common.voyage")}'
list="voyages" headerKey="" headerValue=""/>
- <s:select key="model.vesselId" value="''" required="true"
+ <s:select key="model.vesselId" required="true"
label='%{getText("echobase.common.vessel")}'
list="vessels" headerKey="" headerValue=""/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesData.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesData.jsp 2012-01-26 16:33:38 UTC (rev 297)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesData.jsp 2012-01-26 18:22:55 UTC (rev 298)
@@ -41,7 +41,7 @@
<s:text name="echobase.legend.importData.configure"/>
</legend>
- <s:select key="model.voyageId" value="''" required="true"
+ <s:select key="model.voyageId" required="true"
label='%{getText("echobase.common.voyage")}'
list="voyages" headerKey="" headerValue=""/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesIndividualData.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesIndividualData.jsp 2012-01-26 16:33:38 UTC (rev 297)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesIndividualData.jsp 2012-01-26 18:22:55 UTC (rev 298)
@@ -42,7 +42,7 @@
name="echobase.legend.importData.configure"/>
</legend>
- <s:select key="model.voyageId" value="''" required="true"
+ <s:select key="model.voyageId" required="true"
label='%{getText("echobase.common.voyage")}'
list="voyages" headerKey="" headerValue=""/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonDataComplete.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonDataComplete.jsp 2012-01-26 16:33:38 UTC (rev 297)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonDataComplete.jsp 2012-01-26 18:22:55 UTC (rev 298)
@@ -59,7 +59,7 @@
required="true"/>
<div id='USE_EXISTING_MISSION' class='importMode'>
- <s:select key="model.missionId" value="''" required="true"
+ <s:select key="model.missionId" required="true"
label='%{getText("echobase.common.mission")}'
list="missions" headerKey="" headerValue=""/>
</div>
@@ -119,11 +119,11 @@
</div>
</fieldset>
<br/>
- <s:select key="model.areaOfOperationId" value="''" required="true"
+ <s:select key="model.areaOfOperationId" required="true"
label='%{getText("echobase.common.areaOfOperation")}'
list="areaOfOperations" headerKey="" headerValue=""/>
- <s:select key="model.vesselId" value="''" required="true"
+ <s:select key="model.vesselId" required="true"
label='%{getText("echobase.common.vessel")}'
list="vessels" headerKey="" headerValue=""/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonDataFromTransect.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonDataFromTransect.jsp 2012-01-26 16:33:38 UTC (rev 297)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonDataFromTransect.jsp 2012-01-26 18:22:55 UTC (rev 298)
@@ -42,11 +42,11 @@
name="echobase.legend.importData.configure"/>
</legend>
- <s:select key="model.voyageId" value="''" required="true"
+ <s:select key="model.voyageId" required="true"
label='%{getText("echobase.common.voyage")}'
list="voyages" headerKey="" headerValue=""/>
- <s:select key="model.vesselId" value="''" required="true"
+ <s:select key="model.vesselId" required="true"
label='%{getText("echobase.common.vessel")}'
list="vessels" headerKey="" headerValue=""/>
Modified: trunk/echobase-ui/src/main/webapp/js/gridHelper.js
===================================================================
--- trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-01-26 16:33:38 UTC (rev 297)
+++ trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-01-26 18:22:55 UTC (rev 298)
@@ -134,7 +134,7 @@
return result;
},
- updateSelectBoxContent:function (url, params, jsonTarget, target) {
+ updateSelectBoxContent:function (url, params, jsonTarget, target, callback) {
// call url to obtain datas to injetc in target select box
jQuery.getJSON(url, params, function (result) {
@@ -149,6 +149,11 @@
// change the target html code
target.html(html);
+
+ // calback
+ if (callback) {
+ callback();
+ }
});
}
});
@@ -179,8 +184,8 @@
prepareUrl:function (url, params) {
return $(document).prepareUrl(url, params);
},
- updateSelectBoxContent:function (url, params, jsonTarget, target) {
- return $(document).updateSelectBoxContent(url, params, jsonTarget, target);
+ updateSelectBoxContent:function (url, params, jsonTarget, target, callback) {
+ return $(document).updateSelectBoxContent(url, params, jsonTarget, target, callback);
}
});
})(jQuery);
1
0
26 Jan '12
Author: tchemit
Date: 2012-01-26 17:33:38 +0100 (Thu, 26 Jan 2012)
New Revision: 297
Url: http://forge.codelutin.com/repositories/revision/echobase/297
Log:
remove usage of DTO (for json, just use a nicely Binder) + do not expose entity impl in ui
Removed:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserImpl.java
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntityModificationLogImpl.java
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/ExportQueryImpl.java
Modified:
trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties
trunk/echobase-entities/src/main/xmi/echobase.zargo
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.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/Update.java
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp
Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserImpl.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserImpl.java 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserImpl.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -1,50 +0,0 @@
-/*
- * #%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%
- */
-package fr.ifremer.echobase.entities;
-
-/**
- * Default implementation of the {@link EchoBaseUser}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class EchoBaseUserImpl extends EchoBaseUserAbstract {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public EchoBaseUserDTO toDTO() {
- EchoBaseUserDTO dto = new EchoBaseUserDTOImpl();
- dto.setAdmin(isAdmin());
- dto.setEmail(getEmail());
- dto.setId(getTopiaId());
- return dto;
- }
-
- @Override
- public void fromDTO(EchoBaseUserDTO dto) {
- setAdmin(dto.isAdmin());
- setEmail(dto.getEmail());
- }
-}
Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntityModificationLogImpl.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntityModificationLogImpl.java 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntityModificationLogImpl.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -1,46 +0,0 @@
-/*
- * #%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%
- */
-package fr.ifremer.echobase.entities;
-
-/**
- * Default implementation of {@link EntityModificationLog}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class EntityModificationLogImpl extends EntityModificationLogAbstract {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public EntityModificationLogDTO toDTO() {
- EntityModificationLogDTO result = new EntityModificationLogDTOImpl();
- result.setEntityType(getEntityType());
- result.setEntityId(getEntityId());
- result.setModificationDate(getModificationDate());
- result.setModificationText(getModificationText());
- result.setModificationUser(getModificationUser());
- return result;
- }
-}
Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/ExportQueryImpl.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/ExportQueryImpl.java 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/ExportQueryImpl.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -1,47 +0,0 @@
-/*
- * #%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%
- */
-package fr.ifremer.echobase.entities;
-
-/**
- * Default implementation of the {@link ExportQuery}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class ExportQueryImpl extends ExportQueryAbstract {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public ExportQueryDTO toDTO() {
- ExportQueryDTO dto = new ExportQueryDTOImpl();
- dto.setDescription(getDescription());
- dto.setId(getTopiaId());
- dto.setLastModifiedDate(getLastModifiedDate());
- dto.setLastModifiedUser(getLastModifiedUser());
- dto.setName(getName());
- dto.setSqlQuery(getSqlQuery());
- return dto;
- }
-}
Modified: trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties
===================================================================
--- trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2012-01-26 16:33:38 UTC (rev 297)
@@ -67,7 +67,6 @@
echobase.common.digitThreshold=
echobase.common.distributionStatement=distributionStatement
echobase.common.echoBaseUser=Utilisateur
-echobase.common.echoBaseUserDTO=
echobase.common.echosounderSoundSpeed=
echobase.common.echotype=
echobase.common.echotypeCategory=
@@ -80,10 +79,8 @@
echobase.common.enginePower=
echobase.common.entityId=Identifiant de l'entité
echobase.common.entityModificationLog=Journal des modifications
-echobase.common.entityModificationLogDTO=
echobase.common.entityType=Type de l'entité
echobase.common.exportQuery=Requête d'export
-echobase.common.exportQueryDTO=
echobase.common.fillValue=
echobase.common.fishingGear=
echobase.common.flagMeanings=
@@ -272,6 +269,3 @@
echobase.common.vesselType=
echobase.common.voyage=Campagne
echobase.config.data.directory.description=Chemin de l'application
-echobase.error.import.acousticDensityUnit.required=acousticDensityUnit non renseigné
-echobase.error.import.digitThreshold.required=digitThreshold non renseigné
-echobase.error.import.processingDescription.required=processingDescription non renseigné
Modified: trunk/echobase-entities/src/main/xmi/echobase.zargo
===================================================================
(Binary files differ)
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -60,7 +60,7 @@
public ExportQuery getExportQuery(String topiaId) {
ExportQuery exportQuery = getEntityById(ExportQuery.class, topiaId);
- ExportQuery entityToSave = new ExportQueryImpl();
+ ExportQuery entityToSave = newExportQuery();
entityToSave.setTopiaId(exportQuery.getTopiaId());
entityToSave.setName(exportQuery.getName());
entityToSave.setDescription(exportQuery.getDescription());
@@ -167,6 +167,10 @@
}
}
+ public ExportQuery newExportQuery() {
+ return new ExportQueryImpl();
+ }
+
private static class GenericSQLQuery extends TopiaSQLQuery<Map<String, Object>> {
protected String[] 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 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -27,8 +27,7 @@
import fr.ifremer.echobase.EchoBaseTechnicalException;
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 fr.ifremer.echobase.entities.EchoBaseUserImpl;
import org.apache.commons.lang3.StringUtils;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaQuery;
@@ -89,36 +88,37 @@
}
}
- public void createOrUpdate(EchoBaseUserDTO userDTO) {
+ public void createOrUpdate(EchoBaseUser user) {
try {
EchoBaseUserDAO dao = getDAO();
- EchoBaseUser user;
+ EchoBaseUser userToCreateOrUpdate;
// No id, creating new one entity
- String id = userDTO.getId();
+ String id = user.getTopiaId();
if (StringUtils.isEmpty(id)) {
- user = dao.create();
+ userToCreateOrUpdate = dao.create();
} else {
- user = dao.findByTopiaId(id);
+ userToCreateOrUpdate = dao.findByTopiaId(id);
}
- user.fromDTO(userDTO);
+ userToCreateOrUpdate.setAdmin(user.isAdmin());
+ userToCreateOrUpdate.setEmail(user.getEmail());
- String password = userDTO.getPassword();
+ String password = user.getPassword();
if (StringUtils.isNotEmpty(password)) {
- user.setPassword(encodePassword(password));
+ userToCreateOrUpdate.setPassword(encodePassword(password));
}
- dao.update(user);
+ dao.update(userToCreateOrUpdate);
commitTransaction("Could not create or update user");
} catch (TopiaException eee) {
throw new EchoBaseTechnicalException(eee);
}
}
- public void delete(EchoBaseUserDTO userDTO) {
+ public void delete(EchoBaseUser user) {
try {
EchoBaseUserDAO dao = getDAO();
- EchoBaseUser user = dao.findByTopiaId(userDTO.getId());
- dao.delete(user);
+ EchoBaseUser userToDelete = dao.findByTopiaId(user.getTopiaId());
+ dao.delete(userToDelete);
commitTransaction("Could not delete user");
} catch (TopiaException eee) {
throw new EchoBaseTechnicalException(eee);
@@ -132,18 +132,19 @@
}
public void createDefaultUsers() {
- EchoBaseUserDTO userDTO;
- userDTO = new EchoBaseUserDTOImpl();
- userDTO.setEmail(DEFAULT_ADMIN_EMAIL);
- userDTO.setPassword(DEFAULT_ADMIN_PASSWORD);
- userDTO.setAdmin(true);
- createOrUpdate(userDTO);
+ EchoBaseUser user;
- userDTO = new EchoBaseUserDTOImpl();
- userDTO.setEmail(DEFAULT_USER_EMAIL);
- userDTO.setPassword(DEFAULT_USER_PASSWORD);
- userDTO.setAdmin(false);
- createOrUpdate(userDTO);
+ user = new EchoBaseUserImpl();
+ user.setEmail(DEFAULT_ADMIN_EMAIL);
+ user.setPassword(DEFAULT_ADMIN_PASSWORD);
+ user.setAdmin(true);
+ createOrUpdate(user);
+
+ user = new EchoBaseUserImpl();
+ user.setEmail(DEFAULT_USER_EMAIL);
+ user.setPassword(DEFAULT_USER_PASSWORD);
+ user.setAdmin(false);
+ createOrUpdate(user);
}
public static String encodePassword(String password) {
@@ -154,4 +155,8 @@
protected EchoBaseUserDAO getDAO() throws TopiaException {
return (EchoBaseUserDAO) getDAO(EchoBaseUser.class);
}
+
+ public EchoBaseUser newUser() {
+ return new EchoBaseUserImpl();
+ }
}
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -23,6 +23,7 @@
*/
package fr.ifremer.echobase.tools;
+import com.google.common.base.Charsets;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
@@ -37,15 +38,11 @@
import org.nuiton.topia.TopiaException;
import org.nuiton.util.FileUtil;
import org.nuiton.util.csv.Export;
-import org.nuiton.util.csv.ExportModel;
-import org.nuiton.util.csv.ExportableColumn;
-import org.nuiton.util.csv.ModelBuilder;
import org.nuiton.util.csv.ValueFormatter;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -116,7 +113,7 @@
if (log.isInfoEnabled()) {
log.info("Generate to " + destination.getName());
}
- exporter.exportToFile(destination);
+ exporter.write(destination, Charsets.UTF_8);
}
}
@@ -163,13 +160,10 @@
EchoBaseIOUtil.compressZipFile(zipFile, outputDir, false);
}
- private static class MSAccessToCsvExportModel implements ExportModel<Map<String, Object>> {
+ private static class MSAccessToCsvExportModel extends CsvModelUtil.AbstractExportModel<Map<String, Object>> {
- protected ModelBuilder<Map<String, Object>> modelBuilder =
- new ModelBuilder<Map<String, Object>>();
-
public MSAccessToCsvExportModel(Table table) {
-
+ super(';');
List<Column> columns = table.getColumns();
Set<String> skipColumns = Sets.newHashSet(
@@ -183,23 +177,12 @@
if (skipColumns.contains(name)) {
continue;
}
- modelBuilder.newColumnForExport(
+ newColumnForExport(
name,
CsvModelUtil.newMapProperty(name),
(ValueFormatter<Object>) CsvModelUtil.TO_STRING_FORMATTER
);
}
}
-
- @Override
- public char getSeparator() {
- return ';';
- }
-
- @Override
- public Collection<ExportableColumn<Map<String, Object>, Object>> getColumnsForExport() {
- Collection columnsForExport = modelBuilder.getColumnsForExport();
- return columnsForExport;
- }
}
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -25,7 +25,6 @@
import com.opensymphony.xwork2.Preparable;
import fr.ifremer.echobase.entities.ExportQuery;
-import fr.ifremer.echobase.entities.ExportQueryImpl;
import fr.ifremer.echobase.services.ExportQueryService;
import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
import org.apache.commons.lang3.StringUtils;
@@ -49,9 +48,18 @@
/** Selected query loaded from database if his id is not empty. */
protected ExportQuery query;
+ protected transient ExportQueryService service;
+
+ public ExportQueryService getService() {
+ if (service == null) {
+ service = newService(ExportQueryService.class);
+ }
+ return service;
+ }
+
public ExportQuery getQuery() {
if (query == null) {
- query = new ExportQueryImpl();
+ query = getService().newExportQuery();
}
return query;
}
@@ -67,10 +75,9 @@
public String saveQuery() throws Exception {
//TODO : do validation
- ExportQueryService service = newService(ExportQueryService.class);
- query = service.createOrUpdate(getQuery(),
- getEchoBaseSession().getEchoBaseUser()
+ query = getService().createOrUpdate(getQuery(),
+ getEchoBaseSession().getEchoBaseUser()
);
return SUCCESS;
}
@@ -78,11 +85,10 @@
public String cloneQuery() throws Exception {
//TODO : do validation
- ExportQueryService service = newService(ExportQueryService.class);
getQuery().setTopiaId(null);
- query = service.createOrUpdate(getQuery(),
- getEchoBaseSession().getEchoBaseUser()
+ query = getService().createOrUpdate(getQuery(),
+ getEchoBaseSession().getEchoBaseUser()
);
return SUCCESS;
}
@@ -90,7 +96,6 @@
public String deleteQuery() throws Exception {
//TODO : do validation
- ExportQueryService service = newService(ExportQueryService.class);
service.delete(getQuery().getTopiaId());
query = null;
return SUCCESS;
@@ -98,10 +103,9 @@
@Override
public void prepare() throws Exception {
- ExportQueryService service = newService(ExportQueryService.class);
Collection<ExportQuery> sqlQueries =
- service.getEntities(ExportQuery.class);
+ getService().getEntities(ExportQuery.class);
queries = sortAndDecorate(sqlQueries, null);
if (sqlQueries.isEmpty()) {
@@ -118,7 +122,7 @@
} else {
// load query from database
- query = service.getExportQuery(selectedQueryId);
+ query = getService().getExportQuery(selectedQueryId);
}
}
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -24,8 +24,6 @@
package fr.ifremer.echobase.ui.actions.user;
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 org.apache.commons.lang3.StringUtils;
@@ -46,7 +44,7 @@
protected transient UserService userService;
- protected EchoBaseUserDTO user;
+ protected EchoBaseUser user;
public UserService getUserService() {
if (userService == null) {
@@ -56,7 +54,7 @@
}
public String execute() throws Exception {
- EchoBaseUserDTO userToCreate = getUser();
+ EchoBaseUser userToCreate = getUser();
String userEmail = userToCreate.getEmail();
if (log.isInfoEnabled()) {
@@ -74,7 +72,7 @@
@Override
public void validate() {
- EchoBaseUserDTO userToValidate = getUser();
+ EchoBaseUser userToValidate = getUser();
String userEmail = userToValidate.getEmail();
// login + password required
@@ -111,9 +109,9 @@
}
- public EchoBaseUserDTO getUser() {
+ public EchoBaseUser getUser() {
if (user == null) {
- user = new EchoBaseUserDTOImpl();
+ user = getUserService().newUser();
}
return user;
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -25,8 +25,6 @@
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 org.apache.commons.lang3.StringUtils;
@@ -47,7 +45,7 @@
protected transient UserService userService;
- protected EchoBaseUserDTO user;
+ protected EchoBaseUser user;
public UserService getUserService() {
if (userService == null) {
@@ -58,7 +56,7 @@
public String execute() throws Exception {
- EchoBaseUserDTO userToDelete = getUser();
+ EchoBaseUser userToDelete = getUser();
String userEmail = userToDelete.getEmail();
if (log.isInfoEnabled()) {
@@ -73,20 +71,20 @@
return SUCCESS;
}
- public EchoBaseUserDTO getUser() {
+ public EchoBaseUser getUser() {
if (user == null) {
- user = new EchoBaseUserDTOImpl();
+ user = getUserService().newUser();
}
return user;
}
@Override
public void prepare() throws Exception {
- String userId = getUser().getId();
+ String userId = getUser().getTopiaId();
if (!StringUtils.isEmpty(userId)) {
// load user
- user = getUserService().getEntityById(EchoBaseUser.class, userId).toDTO();
+ user = getUserService().getEntityById(EchoBaseUser.class, userId);
if (log.isInfoEnabled()) {
log.info("Selected user " + user.getEmail());
Modified: 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/GetUsers.java 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -23,13 +23,14 @@
*/
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 org.nuiton.util.beans.Binder;
+import org.nuiton.util.beans.BinderFactory;
import java.util.List;
+import java.util.Map;
/**
* Obtains all users of the echobase internal database.
@@ -41,9 +42,9 @@
private static final long serialVersionUID = 1L;
- protected List<EchoBaseUserDTO> users;
+ protected transient Map<String, Object>[] users;
- public List<EchoBaseUserDTO> getUsers() {
+ public Map<String, Object>[] getUsers() {
return users;
}
@@ -73,9 +74,15 @@
List<EchoBaseUser> allUsers =
newService(UserService.class).getUsers(pager);
- users = Lists.newArrayList();
+ users = new Map[allUsers.size()];
+ Binder<EchoBaseUser, EchoBaseUser> binder =
+ BinderFactory.newBinder(EchoBaseUser.class);
+
+ int index = 0;
for (EchoBaseUser user : allUsers) {
- users.add(user.toDTO());
+ Map<String, Object> data = binder.obtainProperties(user);
+ data.put("id", user.getTopiaId());
+ users[index++] = data;
}
return SUCCESS;
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2012-01-26 16:33:38 UTC (rev 297)
@@ -25,8 +25,6 @@
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 org.apache.commons.lang3.StringUtils;
@@ -47,7 +45,7 @@
protected transient UserService userService;
- protected EchoBaseUserDTO user;
+ protected EchoBaseUser user;
public UserService getUserService() {
if (userService == null) {
@@ -58,7 +56,7 @@
@Override
public String execute() throws Exception {
- EchoBaseUserDTO userToUpdate = getUser();
+ EchoBaseUser userToUpdate = getUser();
String userEmail = userToUpdate.getEmail();
if (log.isInfoEnabled()) {
@@ -75,11 +73,11 @@
@Override
public void prepare() throws Exception {
- String userId = getUser().getId();
+ String userId = getUser().getTopiaId();
if (!StringUtils.isEmpty(userId)) {
// load user
- user = getUserService().getEntityById(EchoBaseUser.class, userId).toDTO();
+ user = getUserService().getEntityById(EchoBaseUser.class, userId);
if (log.isInfoEnabled()) {
log.info("Selected user " + user.getEmail());
@@ -87,9 +85,9 @@
}
}
- public EchoBaseUserDTO getUser() {
+ public EchoBaseUser getUser() {
if (user == null) {
- user = new EchoBaseUserDTOImpl();
+ user = getUserService().newUser();
}
return user;
}
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 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-01-26 16:33:38 UTC (rev 297)
@@ -61,6 +61,8 @@
echobase.error.export.name.requiredstring=Le nom de l'export est obligatoire
echobase.error.export.sqlQuery.requiredstring=La requête de l'export est obligatoire
echobase.error.export.sqlQuery.wrongformat=La requêtes n'est pas valide
+echobase.error.import.acquisitionSoftwareVersionER60.required=acquisitionSoftwareVersionER60 non renseigné
+echobase.error.import.acquisitionSoftwareVersionME70.required=acquisitionSoftwareVersionME70 non renseigné
echobase.error.import.areaOfOperation.required=La sélection d'une zone d'opération est obligatoire
echobase.error.import.associationFile.required=La sélection d'un fichier Association est obligatoire
echobase.error.import.datum.required=Datum de la campagne non rengeigné
@@ -70,35 +72,33 @@
echobase.error.import.individualDataFile.required=La sélection d'un fichier individualData est obligatoire
echobase.error.import.lengthAgeKeyFile.required=La sélection d'un fichier lengthAgeKey est obligatoire
echobase.error.import.lengthWeightKeyFile.required=La sélection d'un fichier lengthWeightKey est obligatoire
+echobase.error.import.loggedDataDatatype.required=loggedDataDatatype non renseigné
+echobase.error.import.loggedDataFormat.required=loggedDataFormat non renseigné
echobase.error.import.mission.required=La sélection d'une mission est obligatoire
echobase.error.import.missionAbstract.required=Le résumé de la mission est obligatoire
echobase.error.import.missionName.required=Le nom de la mission est obligatoire
echobase.error.import.moviesFile.required=La sélection d'un fichier Movies est obligatoire
echobase.error.import.notes.required=Note des DataProcessing non renseigné
-echobase.error.import.regionsFile.required=La sélection d'un fichier Region est obligatoire
+echobase.error.import.pingDutyCycle.required=pingDutyCycle non renseigné
echobase.error.import.processingDescription.required=processingDescription non renseigné
echobase.error.import.processingTemplate.required=processingTemplate non renseigné
+echobase.error.import.regionsFile.required=La sélection d'un fichier Region est obligatoire
+echobase.error.import.soundSpeedCalculationsER60.required=soundSpeedCalculationsER60 non renseigné
+echobase.error.import.soundSpeedCalculationsME70.required=soundSpeedCalculationsME70 non renseigné
echobase.error.import.sounderConstant.required=sounderConstant non renseigné
-echobase.error.import.soundSpeedCalculationsME70.required=soundSpeedCalculationsME70 non renseigné
-echobase.error.import.soundSpeedCalculationsER60.required=soundSpeedCalculationsER60 non renseigné
-echobase.error.import.pingDutyCycle.required=pingDutyCycle non renseigné
-echobase.error.import.loggedDataDatatype.required=loggedDataDatatype non renseigné
-echobase.error.import.loggedDataFormat.required=loggedDataFormat non renseigné
-echobase.error.import.acquisitionSoftwareVersionER60.required=acquisitionSoftwareVersionER60 non renseigné
-echobase.error.import.acquisitionSoftwareVersionME70.required=acquisitionSoftwareVersionME70 non renseigné
-echobase.error.import.transceiverAcquisitionAbsorptionDescription.required=transceiverAcquisitionAbsorptionDescription non renseigné
echobase.error.import.tblMensurationClasseFile.required=La sélection d'un fichier tblMensurationClasse est obligatoire
echobase.error.import.tblMensurationFile.required=La sélection d'un fichier tblMensuration est obligatoire
echobase.error.import.tlbeStationFile.required=La sélection d'un fichier tlbeStation est obligatoire
+echobase.error.import.transceiverAcquisitionAbsorptionDescription.required=transceiverAcquisitionAbsorptionDescription non renseigné
echobase.error.import.transectBinUnitsPingAxis.required=BinUnitsPingAxis des transtects non rengeigné
echobase.error.import.transectFile.required=La sélection d'un fichier Transect est obligatoire
echobase.error.import.transectGeospatialVerticalPositive.required=GeospatialVerticalPositive des transtects non rengeigné
echobase.error.import.transectLicence.required=Licence des transtects non rengeigné
+echobase.error.import.transit.required=La sélection d'un transit est obligatoire
echobase.error.import.transitFile.required=La sélection d'un fichier Transit est obligatoire
echobase.error.import.transitRelatedActivity.required=RelatedActivity des transits non rengeigné
echobase.error.import.vessel.required=La sélection d'un navire est obligatoire
echobase.error.import.voyage.required=La sélection d'une campagne est obligatoire
-echobase.error.import.transit.required=La sélection d'un transit est obligatoire
echobase.error.import.voyageDescription.required=Description de la campagne non rengeigné
echobase.error.import.voyageFile.required=La sélection d'un fichier Voyage est obligatoire
echobase.error.import.xtblTriFile.required=La sélection d'un fichier xtblTri est obligatoire
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp 2012-01-26 16:33:38 UTC (rev 297)
@@ -32,7 +32,7 @@
<legend>
<s:text name="echobase.common.user"/>
</legend>
- <s:hidden name="user.id" label=""/>
+ <s:hidden name="user.topiaId" label=""/>
<s:textfield key="user.email" label="%{getText('echobase.common.email')}"
size="40" disabled="true"/>
<s:checkbox value="%{user.admin}" key="echobase.common.admin"
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp 2012-01-26 16:33:38 UTC (rev 297)
@@ -32,7 +32,7 @@
<legend>
<s:text name="echobase.common.user"/>
</legend>
- <s:hidden key="user.id" label=""/>
+ <s:hidden key="user.topiaId" label=""/>
<s:textfield key="user.email" label="%{getText('echobase.common.email')}"
size="40" readonly="true"/>
<s:password name="user.password" value=""
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 2012-01-26 15:35:35 UTC (rev 296)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp 2012-01-26 16:33:38 UTC (rev 297)
@@ -32,7 +32,7 @@
<s:url id="addUrl" action="user-Create" namespace="/user" escapeAmp="false" method="input"/>
-<s:url id="editUrl" action="user-Update" namespace="/user" escapeAmp="false" method="input"/>
+<s:url id="updateUrl" action="user-Update" namespace="/user" escapeAmp="false" method="input"/>
<s:url id="delUrl" action="user-Delete" namespace="/user" escapeAmp="false" method="input"/>
@@ -42,8 +42,8 @@
$.addRowSelectTopic('users');
$.addClearSelectTopic('users');
$.addAddRowTopic('users', '${addUrl}');
- $.addSingleRowTopic('users', 'Update', '${editUrl}', 'user.id');
- $.addSingleRowTopic('users', 'Delete', '${delUrl}', 'user.id');
+ $.addSingleRowTopic('users', 'Update', '${updateUrl}', 'user.topiaId');
+ $.addSingleRowTopic('users', 'Delete', '${delUrl}', 'user.topiaId');
});
</script>
1
0
r296 - in trunk/echobase-ui/src/main: java/fr/ifremer/echobase/ui/actions/importData resources/config resources/fr/ifremer/echobase/ui/actions/importData resources/i18n webapp/WEB-INF webapp/WEB-INF/jsp/importData webapp/css webapp/js
by tchemit@users.forge.codelutin.com 26 Jan '12
by tchemit@users.forge.codelutin.com 26 Jan '12
26 Jan '12
Author: tchemit
Date: 2012-01-26 16:35:35 +0100 (Thu, 26 Jan 2012)
New Revision: 296
Url: http://forge.codelutin.com/repositories/revision/echobase/296
Log:
continue import data (acoustic data) (ui part)
Added:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java
Modified:
trunk/echobase-ui/src/main/resources/config/struts-importData.xml
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData-validation.xml
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp
trunk/echobase-ui/src/main/webapp/css/screen.css
trunk/echobase-ui/src/main/webapp/js/gridHelper.js
Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java 2012-01-26 15:35:35 UTC (rev 296)
@@ -0,0 +1,92 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 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.importData;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.services.EchoBaseServiceSupport;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.lang3.StringUtils;
+import org.nuiton.util.decorator.Decorator;
+
+import java.util.Map;
+
+/**
+ * Given a voyage, obtain all his transits.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class GetTransits extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+
+ protected String voyageId;
+
+ protected Map<String, String> transits;
+
+ public void setVoyageId(String voyageId) {
+ this.voyageId = voyageId;
+ }
+
+ public Map<String, String> getTransits() {
+ return transits;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ transits = Maps.newLinkedHashMap();
+
+ if (StringUtils.isNotEmpty(voyageId)) {
+
+ EchoBaseServiceSupport service =
+ newService(EchoBaseServiceSupport.class);
+
+ Voyage voyage = service.getEntityById(Voyage.class, voyageId);
+
+ Preconditions.checkNotNull(
+ voyage,
+ "Could not find voyage with id " + voyageId);
+
+ if (!voyage.isTransitEmpty()) {
+
+ Decorator<Transit> decorator =
+ getDecoratorService().getDecorator(getLocale(),
+ Transit.class,
+ null);
+
+ for (Transit transit : voyage.getTransit()) {
+ String value = decorator.toString(transit);
+ transits.put(transit.getTopiaId(), value);
+ }
+ }
+ }
+
+ return SUCCESS;
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.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/importData/GetVessels.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java 2012-01-26 15:35:35 UTC (rev 296)
@@ -0,0 +1,95 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 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.importData;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.references.Vessel;
+import fr.ifremer.echobase.services.EchoBaseServiceSupport;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.lang3.StringUtils;
+import org.nuiton.util.decorator.Decorator;
+
+import java.util.Map;
+
+/**
+ * Given a voyage, obtain all his transits.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class GetVessels extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+
+ protected String transitId;
+
+ protected Map<String, String> vessels;
+
+ public void setTransitId(String transitId) {
+ this.transitId = transitId;
+ }
+
+ public Map<String, String> getVessels() {
+ return vessels;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ vessels = Maps.newLinkedHashMap();
+
+ if (StringUtils.isNotEmpty(transitId)) {
+
+ EchoBaseServiceSupport service =
+ newService(EchoBaseServiceSupport.class);
+
+ Transit transit = service.getEntityById(Transit.class, transitId);
+
+ Preconditions.checkNotNull(transit,
+ "Could not find transit with id " + transitId);
+ if (!transit.isTransectEmpty()) {
+
+ Decorator<Vessel> decorator =
+ getDecoratorService().getDecorator(getLocale(),
+ Vessel.class,
+ null);
+
+ for (Transect transect : transit.getTransect()) {
+ String id = transect.getTopiaId();
+ if (!vessels.containsKey(id)) {
+ String value = decorator.toString(transect.getVessel());
+ vessels.put(id, value);
+ }
+ }
+ }
+ }
+
+ return SUCCESS;
+ }
+}
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-ui/src/main/resources/config/struts-importData.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-importData.xml 2012-01-26 15:35:06 UTC (rev 295)
+++ trunk/echobase-ui/src/main/resources/config/struts-importData.xml 2012-01-26 15:35:35 UTC (rev 296)
@@ -64,6 +64,18 @@
<result>/WEB-INF/jsp/importData/result{1}.jsp</result>
</action>
+ <!-- Get transits for a given voyage id -->
+ <action name="getTransits"
+ class="fr.ifremer.echobase.ui.actions.importData.GetTransits">
+ <result type="json"/>
+ </action>
+
+ <!-- Get vessels (of transects) for a given transit id -->
+ <action name="getVessels"
+ class="fr.ifremer.echobase.ui.actions.importData.GetVessels">
+ <result type="json"/>
+ </action>
+
</package>
</struts>
Modified: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData-validation.xml 2012-01-26 15:35:06 UTC (rev 295)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData-validation.xml 2012-01-26 15:35:35 UTC (rev 296)
@@ -32,25 +32,106 @@
</field-validator>
</field>
+ <field name="model.transitId">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.transit.required"/>
+ </field-validator>
+ </field>
+
<field name="model.vesselId">
<field-validator type="nrequiredstring">
<message key="echobase.error.import.vessel.required"/>
</field-validator>
</field>
+ <field name="model.transceiverAcquisitionAbsorptionDescription">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.transceiverAcquisitionAbsorptionDescription.required"/>
+ </field-validator>
+ </field>
+
+ <field name="model.acquisitionSoftwareVersionER60">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.acquisitionSoftwareVersionER60.required"/>
+ </field-validator>
+ </field>
+
+ <field name="model.acquisitionSoftwareVersionME70">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.acquisitionSoftwareVersionME70.required"/>
+ </field-validator>
+ </field>
+
<field name="model.echosounderSoundSpeed">
<field-validator type="nrequiredstring">
<message key="echobase.error.import.echosounderSoundSpeed.required"/>
</field-validator>
</field>
- <field name="model.soundSpeedCalculations">
+ <field name="model.loggedDataFormat">
<field-validator type="nrequiredstring">
+ <message key="echobase.error.import.loggedDataFormat.required"/>
+ </field-validator>
+ </field>
+
+ <field name="model.loggedDataDatatype">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.loggedDataDatatype.required"/>
+ </field-validator>
+ </field>
+
+ <field name="model.pingDutyCycle">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.pingDutyCycle.required"/>
+ </field-validator>
+ </field>
+
+ <field name="model.soundSpeedCalculationsER60">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.soundSpeedCalculationsER60.required"/>
+ </field-validator>
+ </field>
+
+ <field name="model.soundSpeedCalculationsME70">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.soundSpeedCalculationsME70.required"/>
+ </field-validator>
+ </field>
+
+ <field name="model.sounderConstant">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.sounderConstant.required"/>
+ </field-validator>
+ </field>
+
+ <field name="model.processingTemplate">
+ <field-validator type="nrequiredstring">
<message
- key="echobase.error.import.soundSpeedCalculations.required"/>
+ key="echobase.error.import.processingTemplate.required"/>
</field-validator>
</field>
+ <field name="model.processingDescription">
+ <field-validator type="nrequiredstring">
+ <message
+ key="echobase.error.import.processingDescription.required"/>
+ </field-validator>
+ </field>
+
+ <field name="model.digitThreshold">
+ <field-validator type="nrequiredstring">
+ <message
+ key="echobase.error.import.digitThreshold.required"/>
+ </field-validator>
+ </field>
+
+ <field name="model.acousticDensityUnit">
+ <field-validator type="nrequiredstring">
+ <message
+ key="echobase.error.import.acousticDensityUnit.required"/>
+ </field-validator>
+ </field>
+
<field name="model.notes">
<field-validator type="nrequiredstring">
<message key="echobase.error.import.notes.required"/>
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 2012-01-26 15:35:06 UTC (rev 295)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-01-26 15:35:35 UTC (rev 296)
@@ -43,10 +43,12 @@
echobase.common.notes=notes
echobase.common.password=Mot de passe
echobase.common.pingDutyCycle=pingDutyCycle
-echobase.common.soundSpeedCalculations=soundSpeedCalculations
+echobase.common.processingDescription=processingDescription
+echobase.common.processingTemplate=processingTemplate
echobase.common.soundSpeedCalculationsER60=soundSpeedCalculations (ER60 instrument)
echobase.common.soundSpeedCalculationsME70=soundSpeedCalculations (ME70 instrument)
echobase.common.sounderConstant=sounderConstant
+echobase.common.transceiverAcquisitionAbsorptionDescription=transceiverAcquisitionAbsorptionDescription
echobase.common.transectBinUnitsPingAxis=BinUnitsPingAxis (transect)
echobase.common.transectGeospatialVerticalPositive=GeospatialVerticalPositive (transect)
echobase.common.transectLicence=Licence (transect)
@@ -74,7 +76,17 @@
echobase.error.import.moviesFile.required=La sélection d'un fichier Movies est obligatoire
echobase.error.import.notes.required=Note des DataProcessing non renseigné
echobase.error.import.regionsFile.required=La sélection d'un fichier Region est obligatoire
-echobase.error.import.soundSpeedCalculations.required=soundSpeedCalculations non renseigné
+echobase.error.import.processingDescription.required=processingDescription non renseigné
+echobase.error.import.processingTemplate.required=processingTemplate non renseigné
+echobase.error.import.sounderConstant.required=sounderConstant non renseigné
+echobase.error.import.soundSpeedCalculationsME70.required=soundSpeedCalculationsME70 non renseigné
+echobase.error.import.soundSpeedCalculationsER60.required=soundSpeedCalculationsER60 non renseigné
+echobase.error.import.pingDutyCycle.required=pingDutyCycle non renseigné
+echobase.error.import.loggedDataDatatype.required=loggedDataDatatype non renseigné
+echobase.error.import.loggedDataFormat.required=loggedDataFormat non renseigné
+echobase.error.import.acquisitionSoftwareVersionER60.required=acquisitionSoftwareVersionER60 non renseigné
+echobase.error.import.acquisitionSoftwareVersionME70.required=acquisitionSoftwareVersionME70 non renseigné
+echobase.error.import.transceiverAcquisitionAbsorptionDescription.required=transceiverAcquisitionAbsorptionDescription non renseigné
echobase.error.import.tblMensurationClasseFile.required=La sélection d'un fichier tblMensurationClasse est obligatoire
echobase.error.import.tblMensurationFile.required=La sélection d'un fichier tblMensuration est obligatoire
echobase.error.import.tlbeStationFile.required=La sélection d'un fichier tlbeStation est obligatoire
@@ -86,6 +98,7 @@
echobase.error.import.transitRelatedActivity.required=RelatedActivity des transits non rengeigné
echobase.error.import.vessel.required=La sélection d'un navire est obligatoire
echobase.error.import.voyage.required=La sélection d'une campagne est obligatoire
+echobase.error.import.transit.required=La sélection d'un transit est obligatoire
echobase.error.import.voyageDescription.required=Description de la campagne non rengeigné
echobase.error.import.voyageFile.required=La sélection d'un fichier Voyage est obligatoire
echobase.error.import.xtblTriFile.required=La sélection d'un fichier xtblTri est obligatoire
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml 2012-01-26 15:35:06 UTC (rev 295)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml 2012-01-26 15:35:35 UTC (rev 296)
@@ -32,6 +32,7 @@
<pattern>/dbeditor/getForeignEntities*</pattern>
<pattern>/dbeditor/doExport*</pattern>
<pattern>/exportQuery/exportQueryResult*</pattern>
+ <pattern>/importData/get*</pattern>
</excludes>
<decorator name="layout-default" page="layout-default.jsp">
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-01-26 15:35:06 UTC (rev 295)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-01-26 15:35:35 UTC (rev 296)
@@ -23,14 +23,42 @@
--%>
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
+<script type="text/javascript"
+ src="<s:url value='/js/gridHelper.js' />"></script>
<title>Configuration <s:text
name="echobase.common.importDataMode.accousticData"/></title>
+<s:url id="getTransitsUrl" action="getTransits" namespace="/importData"/>
+<s:url id="getVesselsUrl" action="getVessels" namespace="/importData"/>
+
<script type="text/javascript">
jQuery(document).ready(function () {
+ var transitSelectBox = $('[name="model.transitId"]');
+ var vesselSelectBox = $('[name="model.vesselId"]');
+
+ $('[name="model.voyageId"]').change({transitSelectBox:transitSelectBox,
+ vesselSelectBox:vesselSelectBox}, function (event) {
+
+ $.updateSelectBoxContent('${getTransitsUrl}',
+ {voyageId:this.value},
+ 'transits',
+ event.data.transitSelectBox
+ );
+ event.data.vesselSelectBox.html("");
+ });
+
+
+ $('[name="model.transitId"]').change({vesselSelectBox:vesselSelectBox}, function (event) {
+
+ $.updateSelectBoxContent('${getVesselsUrl}',
+ {transitId:this.value},
+ 'vessels',
+ event.data.vesselSelectBox);
+ });
});
</script>
@@ -41,61 +69,64 @@
<s:text name="echobase.legend.importData.configure"/>
</legend>
- <s:select name="model.voyageId" value="''" required="true"
+ <s:select key="model.voyageId" value="''" required="true"
label='%{getText("echobase.common.voyage")}'
list="voyages" headerKey="" headerValue=""/>
- <s:select name="model.transitId" value="''" required="true"
- label='%{getText("echobase.common.transit")}'
- list="transits" headerKey="" headerValue=""/>
+ <sj:select key="model.transitId" required="true"
+ label='%{getText("echobase.common.transit")}'/>
- <s:select name="model.vesselId" value="''" required="true"
- label='%{getText("echobase.common.vessel")}'
- list="vessels" headerKey="" headerValue=""/>
+ <sj:select key="model.vesselId" required="true"
+ label='%{getText("echobase.common.vessel")}'/>
- <s:textfield key="model.transceiverAcquisitionAbsorptionDescription" size="40" required="true"
+ <s:textfield key="model.transceiverAcquisitionAbsorptionDescription"
+ size="100" required="true"
label='%{getText("echobase.common.transceiverAcquisitionAbsorptionDescription")}'/>
- <s:textfield key="model.acquisitionSoftwareVersionER60" size="40" required="true"
+ <s:textfield key="model.acquisitionSoftwareVersionER60" size="100"
+ required="true"
label='%{getText("echobase.common.acquisitionSoftwareVersionER60")}'/>
- <s:textfield key="model.acquisitionSoftwareVersionME70" size="40" required="true"
+ <s:textfield key="model.acquisitionSoftwareVersionME70" size="100"
+ required="true"
label='%{getText("echobase.common.acquisitionSoftwareVersionME70")}'/>
- <s:textfield key="model.loggedDataFormat" size="40" required="true"
+ <s:textfield key="model.loggedDataFormat" size="100" required="true"
label='%{getText("echobase.common.loggedDataFormat")}'/>
- <s:textfield key="model.loggedDataDatatype" size="40" required="true"
+ <s:textfield key="model.loggedDataDatatype" size="100" required="true"
label='%{getText("echobase.common.loggedDataDatatype")}'/>
- <s:textfield key="model.pingDutyCycle" size="40" required="true"
+ <s:textfield key="model.pingDutyCycle" size="100" required="true"
label='%{getText("echobase.common.pingDutyCycle")}'/>
- <s:textfield key="model.echosounderSoundSpeed" size="40" required="true"
+ <s:textfield key="model.echosounderSoundSpeed" size="100" required="true"
label='%{getText("echobase.common.echosounderSoundSpeed")}'/>
- <s:textfield key="model.soundSpeedCalculationsER60" size="40" required="true"
+ <s:textfield key="model.soundSpeedCalculationsER60" size="100"
+ required="true"
label='%{getText("echobase.common.soundSpeedCalculationsER60")}'/>
- <s:textfield key="model.soundSpeedCalculationsME70" size="40" required="true"
+ <s:textfield key="model.soundSpeedCalculationsME70" size="100"
+ required="true"
label='%{getText("echobase.common.soundSpeedCalculationsME70")}'/>
- <s:textfield key="model.sounderConstant" size="40" required="true"
+ <s:textfield key="model.sounderConstant" size="100" required="true"
label='%{getText("echobase.common.sounderConstant")}'/>
- <s:textfield key="model.processingTemplate" size="40" required="true"
+ <s:textfield key="model.processingTemplate" size="100" required="true"
label='%{getText("echobase.common.processingTemplate")}'/>
- <s:textfield key="model.processingDescription" size="40" required="true"
+ <s:textfield key="model.processingDescription" size="100" required="true"
label='%{getText("echobase.common.processingDescription")}'/>
- <s:textfield key="model.digitThreshold" size="40" required="true"
+ <s:textfield key="model.digitThreshold" size="100" required="true"
label='%{getText("echobase.common.digitThreshold")}'/>
- <s:textfield key="model.acousticDensityUnit" size="40" required="true"
+ <s:textfield key="model.acousticDensityUnit" size="100" required="true"
label='%{getText("echobase.common.acousticDensityUnit")}'/>
- <s:textfield key="model.notes" size="40" required="true"
+ <s:textfield key="model.notes" size="100" required="true"
label='%{getText("echobase.common.notes")}'/>
<s:file key="moviesFile" required="true"
Modified: trunk/echobase-ui/src/main/webapp/css/screen.css
===================================================================
--- trunk/echobase-ui/src/main/webapp/css/screen.css 2012-01-26 15:35:06 UTC (rev 295)
+++ trunk/echobase-ui/src/main/webapp/css/screen.css 2012-01-26 15:35:35 UTC (rev 296)
@@ -135,7 +135,7 @@
.wwlbl {
float: left;
clear: both;
- width: 300px;
+ width: 350px;
/*# text-align: right;*/
}
.wwctrl {
Modified: trunk/echobase-ui/src/main/webapp/js/gridHelper.js
===================================================================
--- trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-01-26 15:35:06 UTC (rev 295)
+++ trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-01-26 15:35:35 UTC (rev 296)
@@ -25,8 +25,8 @@
$.fn.extend(
{
- addRowSelectTopic: function(gridId, callback) {
- $.subscribe(gridId + '-rowSelect', function(event) {
+ addRowSelectTopic:function (gridId, callback) {
+ $.subscribe(gridId + '-rowSelect', function (event) {
if (event.originalEvent) {
var gridId = event.data.id;
var opts = jQuery.struts2_jquery[gridId] = {};
@@ -43,8 +43,8 @@
}, {id:gridId, callback:callback});
},
- addClearSelectTopic: function (gridId, callback) {
- $.subscribe(gridId + '-clearSelect', function(event) {
+ addClearSelectTopic:function (gridId, callback) {
+ $.subscribe(gridId + '-clearSelect', function (event) {
var gridId = event.data.id;
jQuery.struts2_jquery[gridId] = {};
var callback = event.data.callback;
@@ -54,15 +54,15 @@
}, {id:gridId, callback:callback});
},
- addAddRowTopic: function (gridId, url) {
- $.subscribe(gridId + '-rowAdd', function(event) {
+ addAddRowTopic:function (gridId, url) {
+ $.subscribe(gridId + '-rowAdd', function (event) {
var url = event.data.url;
window.location = url;
}, {id:gridId, url:url});
},
- addSingleRowTopic: function (gridId, action, url, parameterName) {
- $.subscribe(gridId + '-row' + action, function(event) {
+ addSingleRowTopic:function (gridId, action, url, parameterName) {
+ $.subscribe(gridId + '-row' + action, function (event) {
var gridId = event.data.id;
var opts = jQuery.struts2_jquery[gridId];
if (opts && opts['selectedRow']) {
@@ -75,8 +75,8 @@
}
}, {id:gridId, url:url, parameterName:parameterName});
},
- addMultiRowTopic: function (gridId, action, target, checkboxName, callback) {
- $.subscribe(gridId + '-row' + action, function(event) {
+ addMultiRowTopic:function (gridId, action, target, checkboxName, callback) {
+ $.subscribe(gridId + '-row' + action, function (event) {
var gridId = event.data.id;
var prefix = 'jqg_' + gridId + '_';
var prefixLength = prefix.length;
@@ -86,7 +86,7 @@
if (inputs && inputs.length) {
var checkboxName = event.data.checkboxName;
- inputs.each(function() {
+ inputs.each(function () {
var id = this.id;
var newId = id.substring(prefixLength);
$.attr(this, "name", checkboxName);
@@ -105,7 +105,7 @@
callback:callback});
},
- serializeCheckboxs: function(id, params, newId) {
+ serializeCheckboxs:function (id, params, newId) {
var all = $(':checkbox[name="' + id + '"]');
var selected = $(':checked[name="' + id + '"]');
@@ -113,7 +113,7 @@
// apply a year filter
var list = [];
- selected.each(function() {
+ selected.each(function () {
list.push(this.value);
});
if (!newId) {
@@ -123,7 +123,7 @@
}
},
- prepareUrl: function (url, params) {
+ prepareUrl:function (url, params) {
var result = url;
if (url.indexOf("?") > -1) {
result += "&";
@@ -132,34 +132,55 @@
}
result += $.param(params);
return result;
+ },
+
+ updateSelectBoxContent:function (url, params, jsonTarget, target) {
+
+ // call url to obtain datas to injetc in target select box
+ jQuery.getJSON(url, params, function (result) {
+
+ // will contains selectBox html code
+ var html = "<option/>";
+
+ // iterate on found datas (each data gives a select option)
+ $.each(result[jsonTarget], function (propertyName, value) {
+ html += '<option value="' + propertyName + '">' + value + '</option>'
+ });
+
+ // change the target html code
+ target.html(html);
+ });
}
});
$.extend({
- addRowSelectTopic:function(gridId, callback) {
+ addRowSelectTopic:function (gridId, callback) {
return $(document).addRowSelectTopic(gridId, callback);
},
- addClearSelectTopic:function(gridId, callback) {
+ addClearSelectTopic:function (gridId, callback) {
return $(document).addClearSelectTopic(gridId, callback);
},
- addAddRowTopic:function(gridId, url) {
+ addAddRowTopic:function (gridId, url) {
return $(document).addAddRowTopic(gridId, url);
},
- addSingleRowTopic:function(gridId, action, url, parameterName) {
+ addSingleRowTopic:function (gridId, action, url, parameterName) {
return $(document).addSingleRowTopic(gridId, action, url, parameterName);
},
- addMultiRowTopic:function(gridId, action, target, checkboxName, calbback) {
+ addMultiRowTopic:function (gridId, action, target, checkboxName, calbback) {
return $(document).addMultiRowTopic(gridId, action, target, checkboxName, calbback);
},
- serializeCheckboxs: function(id, params, newId) {
+ serializeCheckboxs:function (id, params, newId) {
return $(document).serializeCheckboxs(id, params, newId);
},
- prepareUrl:function(url, params) {
+ prepareUrl:function (url, params) {
return $(document).prepareUrl(url, params);
+ },
+ updateSelectBoxContent:function (url, params, jsonTarget, target) {
+ return $(document).updateSelectBoxContent(url, params, jsonTarget, target);
}
});
})(jQuery);
1
0
r295 - trunk/echobase-services/src/main/java/fr/ifremer/echobase/services
by tchemit@users.forge.codelutin.com 26 Jan '12
by tchemit@users.forge.codelutin.com 26 Jan '12
26 Jan '12
Author: tchemit
Date: 2012-01-26 16:35:06 +0100 (Thu, 26 Jan 2012)
New Revision: 295
Url: http://forge.codelutin.com/repositories/revision/echobase/295
Log:
use new csv api (charset safe api)
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java 2012-01-26 15:34:47 UTC (rev 294)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java 2012-01-26 15:35:06 UTC (rev 295)
@@ -23,6 +23,7 @@
*/
package fr.ifremer.echobase.services;
+import com.google.common.base.Charsets;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.ExportQuery;
@@ -159,7 +160,7 @@
ExportQueryCsvModel csvModel = sqlQuery.generateCsvModel(csvSeparator);
Export<Map<String, Object>> exporter = Export.newExport(csvModel, rows);
try {
- String content = exporter.startExportAsString();
+ String content = exporter.toString(Charsets.UTF_8);
return content;
} catch (Exception eee) {
throw new EchoBaseTechnicalException("Could not export sql", eee);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java 2012-01-26 15:34:47 UTC (rev 294)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java 2012-01-26 15:35:06 UTC (rev 295)
@@ -23,6 +23,7 @@
*/
package fr.ifremer.echobase.services;
+import com.google.common.base.Charsets;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.entities.meta.AssociationMeta;
import fr.ifremer.echobase.entities.meta.ColumnMeta;
@@ -88,7 +89,7 @@
Export<TopiaEntity> export = prepareExport(tableMeta);
try {
- return export.startExportAsString();
+ return export.toString(Charsets.UTF_8);
} catch (Exception eee) {
throw new EchoBaseTechnicalException("Can not export datas", eee);
}
@@ -104,7 +105,7 @@
TIME_LOG.log(s1, "exportDatas::prepareExport");
long s2 = TimeLog.getTime();
try {
- export.exportToFile(file);
+ export.write(file, Charsets.UTF_8);
} catch (Exception eee) {
throw new EchoBaseTechnicalException("Can not export datas", eee);
}
@@ -122,7 +123,7 @@
long s2 = TimeLog.getTime();
try {
- export.exportToFile(file);
+ export.write(file, Charsets.UTF_8);
} catch (Exception eee) {
throw new EchoBaseTechnicalException("Can not export datas", eee);
}
1
0
r294 - trunk/echobase-entities/src/main/resources/i18n
by tchemit@users.forge.codelutin.com 26 Jan '12
by tchemit@users.forge.codelutin.com 26 Jan '12
26 Jan '12
Author: tchemit
Date: 2012-01-26 16:34:47 +0100 (Thu, 26 Jan 2012)
New Revision: 294
Url: http://forge.codelutin.com/repositories/revision/echobase/294
Log:
clean i18n
Modified:
trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties
Modified: trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties
===================================================================
--- trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2012-01-26 10:54:27 UTC (rev 293)
+++ trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2012-01-26 15:34:47 UTC (rev 294)
@@ -28,7 +28,7 @@
echobase.common.binSizeRangeAxis=
echobase.common.binUnitsPingAxis=
echobase.common.calendar=
-echobase.common.calibration=calibration
+echobase.common.calibration=Calibration
echobase.common.callsign=
echobase.common.casinoGearName=
echobase.common.category=
@@ -36,7 +36,7 @@
echobase.common.categoryRef=
echobase.common.categoryType=
echobase.common.categoryValue=
-echobase.common.cell=cell
+echobase.common.cell=Cell
echobase.common.cellMethod=
echobase.common.cellType=
echobase.common.childs=
@@ -46,22 +46,22 @@
echobase.common.codeMemo=
echobase.common.codePerm=
echobase.common.comment=
-echobase.common.data=data
-echobase.common.dataAcquisition=dataAcquisition
+echobase.common.data=Data
+echobase.common.dataAcquisition=DataAcquisition
echobase.common.dataCentre=Centre de données
echobase.common.dataCentreEmail=Courriel du centre de données
echobase.common.dataLabel=
echobase.common.dataMetadata=
-echobase.common.dataProcessing=dataProcessing
+echobase.common.dataProcessing=DataProcessing
echobase.common.dataProtocol=
-echobase.common.dataQuality=dataQuality
+echobase.common.dataQuality=DataQuality
echobase.common.dataType=
echobase.common.dataValue=
echobase.common.date=
echobase.common.dateCreated=
-echobase.common.datum=datum
+echobase.common.datum=Datum
echobase.common.datumType=
-echobase.common.depthStratum=depthStratum
+echobase.common.depthStratum=DepthStratum
echobase.common.description=Description
echobase.common.dielPeriod=
echobase.common.digitThreshold=
@@ -141,7 +141,7 @@
echobase.common.measurementBinSize=
echobase.common.measurementMetadata=
echobase.common.measurementUnit=
-echobase.common.metadata=metadata
+echobase.common.metadata=Metadata
echobase.common.metadataGroup=
echobase.common.method=
echobase.common.midHauleLatitude=
@@ -150,7 +150,7 @@
echobase.common.minFishLength=
echobase.common.minLatitude=
echobase.common.minLongitude=
-echobase.common.mission=mission
+echobase.common.mission=Mission
echobase.common.missionAbstract=Résumé de la mission
echobase.common.modificationDate=Date de modification
echobase.common.modificationText=Modification
@@ -185,7 +185,7 @@
echobase.common.qualityDataFlagValues=
echobase.common.r2=
echobase.common.raptriBiometryDataType=
-echobase.common.referenceDatum=referenceDatum
+echobase.common.referenceDatum=ReferenceDatum
echobase.common.referenceDatumType=
echobase.common.referencingMethod=
echobase.common.relatedActivity=
@@ -204,12 +204,12 @@
echobase.common.soundSpeedCalculations=
echobase.common.sounderConstant=
echobase.common.source=Source
-echobase.common.species=espèce
+echobase.common.species=Espèce
echobase.common.speciesCategory=
echobase.common.speciesCode=
echobase.common.speciesCommonName=
echobase.common.speciesTSGroup=
-echobase.common.sqlQuery=requête SQL
+echobase.common.sqlQuery=Requête SQL
echobase.common.standardName=
echobase.common.startDate=
echobase.common.startLocality=
@@ -258,9 +258,9 @@
echobase.common.transducerProcessingBeamAngleAthwartship=
echobase.common.transducerProcessingPsi=
echobase.common.transducerSerial=
-echobase.common.transect=transect
+echobase.common.transect=Transect
echobase.common.transectAbstract=
-echobase.common.transit=transit
+echobase.common.transit=Transit
echobase.common.type=
echobase.common.unit=
echobase.common.units=
@@ -272,3 +272,6 @@
echobase.common.vesselType=
echobase.common.voyage=Campagne
echobase.config.data.directory.description=Chemin de l'application
+echobase.error.import.acousticDensityUnit.required=acousticDensityUnit non renseigné
+echobase.error.import.digitThreshold.required=digitThreshold non renseigné
+echobase.error.import.processingDescription.required=processingDescription non renseigné
1
0