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
- 1820 discussions
r255 - in trunk: echobase-entities/src/main/java/fr/ifremer/echobase/entities echobase-entities/src/main/java/fr/ifremer/echobase/entities/references echobase-entities/src/main/xmi echobase-services/src/main/java/fr/ifremer/echobase/services/csv echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders
by tchemit@users.forge.codelutin.com 10 Jan '12
by tchemit@users.forge.codelutin.com 10 Jan '12
10 Jan '12
Author: tchemit
Date: 2012-01-10 17:44:31 +0100 (Tue, 10 Jan 2012)
New Revision: 255
Url: http://forge.codelutin.com/repositories/revision/echobase/255
Log:
Anomalie #681: Mauvaise mod?\195?\169lisation de la liaison Echotype -> Species
Added:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/references/
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/references/EchotypeDAOImpl.java
Modified:
trunk/echobase-entities/src/main/xmi/echobase.zargo
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EntityCsvModel.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/EchotypeLoaderIT.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderIT.java
Added: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/references/EchotypeDAOImpl.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/references/EchotypeDAOImpl.java (rev 0)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/references/EchotypeDAOImpl.java 2012-01-10 16:44:31 UTC (rev 255)
@@ -0,0 +1,50 @@
+/*
+ * #%L
+ * EchoBase :: Entities
+ *
+ * $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.entities.references;
+
+import org.nuiton.topia.TopiaException;
+
+import java.util.List;
+
+/**
+ * User {@link EchotypeDAO} implementation.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class EchotypeDAOImpl<E extends Echotype> extends EchotypeDAOAbstract<E> {
+
+ @Override
+ public Echotype findByIdAndSpecies(Integer id, Species species) throws TopiaException {
+ List<E> allById = findAllById(id);
+ Echotype result = null;
+ for (E echotype : allById) {
+ if (echotype.getSpecies().contains(species)) {
+ result = echotype;
+ break;
+ }
+ }
+ return result;
+ }
+}
Property changes on: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/references/EchotypeDAOImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-entities/src/main/xmi/echobase.zargo
===================================================================
(Binary files differ)
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java 2012-01-10 16:37:09 UTC (rev 254)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java 2012-01-10 16:44:31 UTC (rev 255)
@@ -40,6 +40,7 @@
import java.sql.Timestamp;
import java.text.ParseException;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.Locale;
@@ -85,6 +86,11 @@
return new ForeignKeyValue<E>(type, universe);
}
+ public static <E extends TopiaEntity> ForeignKeyValueForAssociation<E> newForeignKeyValueAssociation(Class<E> type, Collection<E> entitites, Function<E, String> transform) {
+ Map<String, E> universe = Maps.uniqueIndex(entitites, transform);
+ return new ForeignKeyValueForAssociation<E>(type, universe);
+ }
+
public static <E extends TopiaEntity> ForeignKeyDecoratedValue<E> newForeignKeyDecoratedValue(Class<E> entityType,
DecoratorService decoratorService, Locale locale) {
return new ForeignKeyDecoratedValue<E>(entityType, decoratorService, locale);
@@ -246,6 +252,37 @@
}
}
+ public static class ForeignKeyValueForAssociation<E extends TopiaEntity> implements ValueParser<Collection<E>> {
+
+ protected final Class<E> entityType;
+
+ protected final Map<String, E> universe;
+
+ public ForeignKeyValueForAssociation(Class<E> entityType,
+ Map<String, E> universe) {
+ this.entityType = entityType;
+ this.universe = universe;
+ }
+
+ @Override
+ public Collection<E> parse(String value) throws ParseException {
+ E result = null;
+ if (StringUtils.isNotBlank(value)) {
+
+ // get entity from universe
+ result = universe.get(value);
+
+ if (result == null) {
+
+ // can not find entity this is a big problem for us...
+ throw new EchoBaseTechnicalException(
+ "Could not find entity with name " + value);
+ }
+ }
+ return Arrays.asList(result);
+ }
+ }
+
public static class ForeignKeyDecoratedValue<E extends TopiaEntity> implements ValueFormatter<E> {
protected final Class<E> entityType;
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EntityCsvModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EntityCsvModel.java 2012-01-10 16:37:09 UTC (rev 254)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EntityCsvModel.java 2012-01-10 16:44:31 UTC (rev 255)
@@ -118,6 +118,19 @@
);
}
+ public <E extends TopiaEntity> void addForeignKeyForAssociationForImport(String headerName,
+ String propertyName,
+ Class<E> entityType,
+ Collection<E> universe,
+ Function<E, String> transform) {
+
+ modelBuilder.newMandatoryColumn(
+ headerName,
+ propertyName,
+ CsvModelUtil.newForeignKeyValueAssociation(entityType, universe, transform)
+ );
+ }
+
public <E extends TopiaEntity> void addForeignKeyForImport(String propertyName,
Class<E> entityType,
Collection<E> universe) {
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeLoader.java 2012-01-10 16:37:09 UTC (rev 254)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeLoader.java 2012-01-10 16:44:31 UTC (rev 255)
@@ -23,16 +23,26 @@
*/
package fr.ifremer.echobase.tools.loaders;
+import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseFunctions;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.meta.AssociationMeta;
import fr.ifremer.echobase.entities.meta.TableMeta;
import fr.ifremer.echobase.entities.references.DepthStratum;
import fr.ifremer.echobase.entities.references.Echotype;
import fr.ifremer.echobase.entities.references.EchotypeCategory;
import fr.ifremer.echobase.entities.references.Species;
+import fr.ifremer.echobase.services.DbEditorService;
import fr.ifremer.echobase.services.csv.EntityCsvModel;
import fr.ifremer.echobase.tools.FileType;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.csv.Import;
+import java.io.File;
+import java.io.IOException;
import java.util.List;
+import java.util.Map;
/**
* {@link Echotype} loader.
@@ -42,11 +52,28 @@
*/
public class EchotypeLoader extends EntityLoader<Echotype> {
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(EchotypeLoader.class);
+
public EchotypeLoader() {
- super(Echotype.class, FileType.NEW);
+ super(Echotype.class,
+ new EchoBaseEntityEnum[]{EchoBaseEntityEnum.Species},
+ FileType.NEW);
}
@Override
+ protected void exportAssociations(File outputDir,
+ FileType targetType) throws IOException {
+ super.exportAssociations(outputDir, targetType);
+
+ // also export echotype associations (echotype are references)
+ AssociationMeta associationMeta =
+ getMeta().getAssociations(Echotype.PROPERTY_SPECIES);
+
+ exportAssociation(outputDir, targetType, associationMeta);
+ }
+
+ @Override
protected EntityCsvModel<Echotype> createCsvImportModel(TableMeta meta) {
List<Species> species = getEntities(Species.class);
@@ -62,11 +89,48 @@
"ECHOS";"IMAGES";"LIBELLE_DESCRIPTION_DEVIATION";"ID_DESCRIPTION_DEVIATION";"GENRE_ESP;TYPE_DEVIATION"
*/
model.addDefaultColumn("ID_DESCRIPTION_DEVIATION", Echotype.PROPERTY_ID, int.class);
- model.newMandatoryColumn("ECHOS",Echotype.PROPERTY_NAME);
+ model.newMandatoryColumn("ECHOS", Echotype.PROPERTY_NAME);
model.newMandatoryColumn("LIBELLE_DESCRIPTION_DEVIATION", Echotype.PROPERTY_MEANING);
- model.addForeignKeyForImport("GENRE_ESP", Echotype.PROPERTY_SPECIES, Species.class, species, EchoBaseFunctions.SPECIES_BARACOUDA_CODE);
model.addForeignKeyForImport("IMAGES", Echotype.PROPERTY_DEPTH_STRATUM, DepthStratum.class, depthStratums, EchoBaseFunctions.DEPTH_STRATUM_ID);
model.addForeignKeyForImport("TYPE_DEVIATION", Echotype.PROPERTY_ECHOTYPE_CATEGORY, EchotypeCategory.class, echotypeCategorys, EchoBaseFunctions.ECHO_TYPE_CATEGORY_NAME);
+ model.addForeignKeyForAssociationForImport("GENRE_ESP", Echotype.PROPERTY_SPECIES, Species.class, species, EchoBaseFunctions.SPECIES_BARACOUDA_CODE);
return model;
}
+
+ @Override
+ protected void importNewEntities(DbEditorService dbEditorService,
+ TableMeta meta,
+ Import<Echotype> importer) {
+
+ Map<String, String> keystoTopiaId = Maps.newHashMap();
+
+ for (Echotype entity : importer) {
+
+ // key for this echotype : id + depthStratum
+ String key = entity.getId() + "_" + entity.getDepthStratum().getId();
+
+ String topiaId = keystoTopiaId.get(key);
+
+ if (topiaId == null) {
+
+ // create this new echotype
+ dbEditorService.saveEntity(meta,
+ "",
+ entity,
+ null,
+ false
+ );
+
+ topiaId = entity.getTopiaId();
+ keystoTopiaId.put(key, topiaId);
+ }
+
+ // just push the species of this echotype
+ // the saveEntity can not save it
+ Species species = entity.getSpecies().iterator().next();
+
+ Echotype echotype = getEntityById(Echotype.class, topiaId);
+ echotype.addSpecies(species);
+ }
+ }
}
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2012-01-10 16:37:09 UTC (rev 254)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2012-01-10 16:44:31 UTC (rev 255)
@@ -216,15 +216,7 @@
DbEditorService dbEditorService =
getService(DbEditorService.class);
- for (E entity : importer) {
-
- dbEditorService.saveEntity(meta,
- "",
- entity,
- null,
- false
- );
- }
+ importNewEntities(dbEditorService, meta, importer);
} finally {
importer.close();
@@ -238,9 +230,12 @@
bf.close();
}
- File out = getTableFile(outputDir, meta, FileType.NEW);
+// File out = getTableFile(outputDir, meta, FileType.NEW);
+// getExportService().exportDatas(meta, out);
- getExportService().exportDatas(meta, out);
+ exportDatas(outputDir, FileType.NEW);
+
+ exportAssociations(outputDir, FileType.ASSOCIATION);
} finally {
if (cleanTransaction) {
serviceContext.getTransaction().rollbackTransaction();
@@ -248,6 +243,18 @@
}
}
+ protected void importNewEntities(DbEditorService dbEditorService, TableMeta meta, Import<E> importer) {
+ for (E entity : importer) {
+
+ dbEditorService.saveEntity(meta,
+ "",
+ entity,
+ null,
+ false
+ );
+ }
+ }
+
public final void generateBaracoudaEntities(Database db,
File outputDir,
boolean cleanTransaction) throws IOException, TopiaException, ParseException {
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java 2012-01-10 16:37:09 UTC (rev 254)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java 2012-01-10 16:44:31 UTC (rev 255)
@@ -35,6 +35,7 @@
import fr.ifremer.echobase.entities.meta.TableMeta;
import fr.ifremer.echobase.entities.references.AreaOfOperation;
import fr.ifremer.echobase.entities.references.Echotype;
+import fr.ifremer.echobase.entities.references.EchotypeDAO;
import fr.ifremer.echobase.entities.references.Mission;
import fr.ifremer.echobase.entities.references.Species;
import fr.ifremer.echobase.services.csv.CsvModelUtil;
@@ -161,7 +162,7 @@
meta.getAssociations(Voyage.PROPERTY_ECHOTYPE);
try {
- TopiaDAO<Echotype> echotypeDAO = getDAO(Echotype.class);
+ EchotypeDAO echotypeDAO = (EchotypeDAO) getDAO(Echotype.class);
BufferedReader bf = new BufferedReader(new FileReader(csvfile));
try {
@@ -174,11 +175,11 @@
String specieEchotype = (String) entity.get("GENRE_ESP");
Voyage voayge = getFK(voyages, campagneName);
Species species = getFK(speciess, specieEchotype);
- Echotype echotype = echotypeDAO.findByProperties(
- Echotype.PROPERTY_ID, Integer.valueOf(idEchotype),
- Echotype.PROPERTY_SPECIES, species
+ Echotype echotype = echotypeDAO.findByIdAndSpecies(
+ Integer.valueOf(idEchotype),
+ species
);
- Preconditions.checkNotNull(echotype, String.format("Could not find echotype with (id,species) = (%S,%s)", idEchotype, specieEchotype));
+ Preconditions.checkNotNull(echotype, String.format("Could not find echotype with (id,species) = (%s,%s)", idEchotype, specieEchotype));
voayge.addEchotype(echotype);
}
} finally {
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java 2012-01-10 16:37:09 UTC (rev 254)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java 2012-01-10 16:44:31 UTC (rev 255)
@@ -205,7 +205,7 @@
loadDependencies(meta, dones);
}
- private void loadDependencies(MetaFilenameAware meta,
+ protected void loadDependencies(MetaFilenameAware meta,
Set<MetaFilenameAware> dones) throws IOException, TopiaException {
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/EchotypeLoaderIT.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/EchotypeLoaderIT.java 2012-01-10 16:37:09 UTC (rev 254)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/EchotypeLoaderIT.java 2012-01-10 16:44:31 UTC (rev 255)
@@ -35,7 +35,7 @@
public class EchotypeLoaderIT extends AbstractLoaderIT<Echotype, EchotypeLoader> {
public EchotypeLoaderIT() {
- super(EchotypeLoader.class, 183, 0);
+ super(EchotypeLoader.class, 43, 0);
}
@Test
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderIT.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderIT.java 2012-01-10 16:37:09 UTC (rev 254)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderIT.java 2012-01-10 16:44:31 UTC (rev 255)
@@ -27,6 +27,8 @@
import fr.ifremer.echobase.entities.data.Voyage;
import fr.ifremer.echobase.entities.meta.AssociationMeta;
import fr.ifremer.echobase.entities.meta.MetaFilenameAware;
+import fr.ifremer.echobase.entities.meta.TableMeta;
+import fr.ifremer.echobase.entities.references.Echotype;
import fr.ifremer.echobase.tools.FileType;
import org.junit.Assert;
import org.junit.Test;
@@ -66,6 +68,11 @@
loadDependencies(EchoBaseEntityEnum.Voyage, dones);
+ TableMeta table = serviceContext.getDbMeta().getTable(EchoBaseEntityEnum.Echotype);
+ AssociationMeta echotypeAssociation =
+ table.getAssociations(Echotype.PROPERTY_SPECIES);
+ loadDependencies(echotypeAssociation, dones);
+
AssociationMeta associationMeta =
loader.getMeta().getAssociations(Voyage.PROPERTY_ECHOTYPE);
1
0
r254 - trunk/echobase-services/src/main/java/fr/ifremer/echobase/services
by tchemit@users.forge.codelutin.com 10 Jan '12
by tchemit@users.forge.codelutin.com 10 Jan '12
10 Jan '12
Author: tchemit
Date: 2012-01-10 17:37:09 +0100 (Tue, 10 Jan 2012)
New Revision: 254
Url: http://forge.codelutin.com/repositories/revision/echobase/254
Log:
can retrieve the topiaId when creating an entity
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-01-10 14:25:03 UTC (rev 253)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-01-10 16:37:09 UTC (rev 254)
@@ -242,6 +242,8 @@
if (create) {
entityToSave = dao.create();
+ // push back topiaId (could be used by caller)
+ entity.setTopiaId(entityToSave.getTopiaId());
} else {
1
0
Author: tchemit
Date: 2012-01-10 15:25:03 +0100 (Tue, 10 Jan 2012)
New Revision: 253
Url: http://forge.codelutin.com/repositories/revision/echobase/253
Log:
cr reunion
Added:
trunk/src/doc/reunions/reunion-2012-01-10.txt
Added: trunk/src/doc/reunions/reunion-2012-01-10.txt
===================================================================
--- trunk/src/doc/reunions/reunion-2012-01-10.txt (rev 0)
+++ trunk/src/doc/reunions/reunion-2012-01-10.txt 2012-01-10 14:25:03 UTC (rev 253)
@@ -0,0 +1,319 @@
+projet echobase
+---------------
+
+Mardi 10 janvier 2012 (Ifremer)
+
+Présents : Mathieu et Tony
+
+Planning
+--------
+
+- clarifier les import des données nouvelles
+- parler de la charte graphique
+- point sur ce qu'il reste à faire
+
+Import nouvelles données
+------------------------
+
+On définit 7 scénarii d'import possible :
+
+- import des données communes complêt
+- import des données communes (Transect-Operation)
+- import des données de référentiel pêche
+- import des données de pêche (capture-mensuration)
+- import des données de pêche (biométrie)
+- import des données accoustiques
+- import des cellules de type région (accoustique)
+
+Import données communes complêt
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Import qui permet de remplir les objets suivants :
+
+- Voyage
+- Transit
+- Transect
+- Operation
+- OperationMetadataValue
+- GearMetadataValue
+
+Pré-requis
+==========
+
+- avoir en base la mission à utiliser
+- référentiel bien rempli
+
+Formulaire d'import
+===================
+
+- sélectionner (ou création) de la mission à utiliser
+- sélectionner la zone d'opération à utiliser
+- saisir la *description* du voyage
+- saisir le *datum* du voyage (valeur par défaut : *WGS84*)
+- fournir le fichier casino
+- fournir le fichier echotype
+
+Déroulement de l'import
+=======================
+
+Fichier CASINO
+______________
+
+Chaque ligne du fichier *CASINO* définit un évènement :
+
+- début voyage
+- début transit
+- début transect
+- début opération
+- ...
+- fin opération
+- fin transect
+- fin transit
+- fin voyage
+
+On construit les différents object en suivant l'ordre chronologique
+des évènements.
+
+La ligne en question fournit les différents champs à utiliser pour l'objet en
+cours de création.
+
+Certains champs du transect sont calculés.
+
+Fichier echotype
+________________
+
+Le fichier echotype permet de remplir la liaison Voyage -> Echotype.
+
+*Attention!* A corriger le fait qu'un echotype définit un groupe d'espèces et non
+pas est lié à une espèce. Il faut donc modifier le modèle en conséquence.
+
+Chaque ligne du fichier correspond à une espèce d'un echotype, on doit
+retrouver donc l'échotype à rattacher au voyage à partir de :
+
+- son id (dev)
+- son depthStratum (class)
+- son espece
+
+Import données communes (transect)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Import qui permet de remplir les objets suivants :
+
+- Transect
+- Operation
+- OperationMetadataValue
+- GearMetadataValue
+
+Pré-requis
+==========
+
+- avoir en base le voyage à utiliser
+- référentiel bien rempli
+
+Formulaire d'import
+===================
+
+- sélectionner le voyage à utiliser
+- fournir le fichier casino
+
+Déroulement de l'import
+=======================
+
+Le déroulement est identique à l'import complêt sauf que les transects sont
+rattachés aux transit déjà existants.
+
+On recherche le transit à partir des ses bornes de date de début de fin en
+utilisant la date du transect.
+
+Import données pêche (référentiel)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Import qui permet de remplir les objets suivants :
+
+- LengthAgeKey
+- LengthWeightKey
+
+Pré-requis
+==========
+
+- référentiel bien rempli
+
+Formulaire d'import
+===================
+
+- fournir le fichier taille_poids
+- fournir le fichier taille_age
+
+Déroulement de l'import
+=======================
+
+La procédure reste très proche de celle utilisée dans l'import des données
+légendaires. Il suffit juste de retrouver les entités du référentiel qui vont
+bien.
+
+Import données pêche (capture - mensuration)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Import qui permet de remplir les objets suivants :
+
+- Sample de type capture - mensuration
+- SampleData
+
+Pré-requis
+==========
+
+- avoir en base le voyage à utiliser
+- référentiel bien rempli (on interdit la création du nouveau SpeciesCategory)
+
+Formulaire d'import
+===================
+
+- sélectionner le voyage à utiliser
+- fournir les quatre fichiers provenant de RAPTRI
+ - tblStation
+ - xtblTri
+ - tblMensuration
+ - tblMensurationClasse
+
+
+Déroulement de l'import
+=======================
+
+On retrouve l'opération à partir du code de la station (premier fichier).
+
+On importe ici que des Sample de type :
+- total
+- unsorted
+- subsample
+
+La procédure reste très proche de celle utilisée dans l'import des données
+légendaires.
+
+Import données pêches biométrie
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Import qui permet de remplir les objets suivants :
+
+- Sample de type biométrie (individuel)
+- SampleData
+
+Pré-requis
+==========
+
+- avoir en base le voyage à utiliser
+- référentiel bien rempli (on interdit la création du nouveau SpeciesCategory)
+
+Formulaire d'import
+===================
+
+- sélectionner le voyage à utiliser
+- fournir le fichier unique conforme au format echobase
+
+Déroulement de l'import
+=======================
+
+Il faudra crééer les samples pour les espèces données et y rattacher
+les SampleData de chaque ligne.
+
+Clef métier operation + clef métier sampleDataType
+
+Import données accoustique
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Import qui permet de remplir les objets suivants :
+
+- DataAcquisition
+- DataProcessing
+- Cell (de type ESDU et élémentaire)
+- Data
+
+Pré-requis
+==========
+
+- avoir en base le voyage à utiliser, ainsi que le transect qui va bien.
+- référentiel bien rempli.
+
+Formulaire d'import
+===================
+
+- sélectionner le voyage à utiliser
+- sélectionner le navire à utiliser (on retrouve ainsi le transect à utiliser)
+- renseigner les 2 champs utilisées pour remplir des données des DataAcquisition et DataProcessing
+- fournir l'unique fichier provenant de la base Movies
+
+Déroulement de l'import
+=======================
+
+L'import permet de remplir les cellules de type ESDU et élémentaires.
+
+L'ordre chronologique permet d'abord de crééer une cellule de type ESDU puis
+les cellules qui suivent sont de type élémentaire (jusqu'à la prochaine nouvelle cellule ESDU).
+
+Pour retrouver un AcousticIntrument on utilisera une combinaison
+MOVIES_EILayer\sndset\sndname + MOVIES_EILayer\sndset\channelName
+
+Pour chaque acousticInstrument différent, on crée un dataAcquisiton + 1 seul
+dataProcessing. puis on rattache les données (cellule) au dataprocessing.
+
+Import données accoustique (région)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Import qui permet de remplir les objets suivants :
+
+- Cell (de type région)
+
+Pré-requis
+==========
+
+- avoir en base le voyage à utiliser, ainsi que le transect qui va bien.
+- référentiel bien rempli.
+
+Formulaire d'import
+===================
+
+- sélectionner le voyage à utiliser
+- sélectionner le navire à utiliser (on retrouve ainsi le transect à utiliser)
+- renseigner les 2 champs utilisées pour remplir des données des DataAcquisition et DataProcessing
+- fournir le fichier de définition des cellules Region
+- fournir le fichier de définition des association Region -> ESDU
+
+Déroulement de l'import
+=======================
+
+On commence par créer les régions à partir du premier fichier
+Ensuite en lisant le second fichier on peut retrouver les cellules à associer
+en utilisant la date de la cellule.
+
+Import Résultat
+~~~~~~~~~~~~~~~
+
+A venir ensuite...
+
+Suppression des imports
+-----------------------
+
+Il faut réfléchir à pouvoir supprimer tous les types d'imports.
+
+Action
+------
+
+- CodeLutin
+
+ - fournir les informations pour se connecter à demo
+ - finir doc d'installation linux + windows XP et 7
+ - modifier le modèle Echotype et l'import qui en découle
+ - modifier la table TSParameters (rajout de nouveaux champs + suppression liens) -> import new (et plus baracouda)
+ - réflechir à comment mettre des droits sur les tables
+
+- Ifremer
+
+ - fournir les référentiels manquants
+ - fournir nouvelle table TSParameters
+ - les codes d'action pour l'import des common datas (CASINO)
+ - le fichier echotype.txt
+ - les mapping des nouveaux imports
+ - la carte mentale qui résume les import des nouvelles données
+
+Prochaine réunion :
+
+ - Vendredi 20 janvier 14h00 à l'Ifremer avec Mathieu
\ No newline at end of file
Property changes on: trunk/src/doc/reunions/reunion-2012-01-10.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
r252 - in trunk/echobase-ui/src/main: java/fr/ifremer/echobase/ui/actions/dbeditor webapp/WEB-INF/jsp/dbeditor
by tchemit@users.forge.codelutin.com 10 Jan '12
by tchemit@users.forge.codelutin.com 10 Jan '12
10 Jan '12
Author: tchemit
Date: 2012-01-10 09:32:46 +0100 (Tue, 10 Jan 2012)
New Revision: 252
Url: http://forge.codelutin.com/repositories/revision/echobase/252
Log:
Anomalie #672: L'?\195?\169diteur d'entit?\195?\169 ne fonctionne pas pour le type Vessel
Modified:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java 2012-01-08 19:12:55 UTC (rev 251)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java 2012-01-10 08:32:46 UTC (rev 252)
@@ -80,6 +80,12 @@
datas = service.getData(table, id);
+ Object length = datas.remove("length");
+ if (length != null) {
+
+ // replace it by length_ (ovtherwise javascript won't work)
+ ((Map) datas).put("length_", length);
+ }
List<ColumnMeta> columnMetas = table.getColumns();
metas = Maps.newHashMap();
for (ColumnMeta columnMeta : columnMetas) {
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-08 19:12:55 UTC (rev 251)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2012-01-10 08:32:46 UTC (rev 252)
@@ -98,6 +98,12 @@
return;
}
+ if (propertyName == 'length_') {
+
+ // rename it to length
+ propertyName = "length";
+ }
+
var meta = metas[propertyName];
if (!meta) {
1
0
r251 - in trunk: . echobase-entities echobase-services echobase-tools echobase-ui
by maven-release@users.forge.codelutin.com 08 Jan '12
by maven-release@users.forge.codelutin.com 08 Jan '12
08 Jan '12
Author: maven-release
Date: 2012-01-08 20:12:55 +0100 (Sun, 08 Jan 2012)
New Revision: 251
Url: http://forge.codelutin.com/repositories/revision/echobase/251
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/echobase-entities/pom.xml
trunk/echobase-services/pom.xml
trunk/echobase-tools/pom.xml
trunk/echobase-ui/pom.xml
trunk/pom.xml
Modified: trunk/echobase-entities/pom.xml
===================================================================
--- trunk/echobase-entities/pom.xml 2012-01-08 19:12:54 UTC (rev 250)
+++ trunk/echobase-entities/pom.xml 2012-01-08 19:12:55 UTC (rev 251)
@@ -9,7 +9,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>0.2</version>
+ <version>0.3-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/echobase-services/pom.xml
===================================================================
--- trunk/echobase-services/pom.xml 2012-01-08 19:12:54 UTC (rev 250)
+++ trunk/echobase-services/pom.xml 2012-01-08 19:12:55 UTC (rev 251)
@@ -10,7 +10,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>0.2</version>
+ <version>0.3-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/echobase-tools/pom.xml
===================================================================
--- trunk/echobase-tools/pom.xml 2012-01-08 19:12:54 UTC (rev 250)
+++ trunk/echobase-tools/pom.xml 2012-01-08 19:12:55 UTC (rev 251)
@@ -11,7 +11,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>0.2</version>
+ <version>0.3-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/echobase-ui/pom.xml
===================================================================
--- trunk/echobase-ui/pom.xml 2012-01-08 19:12:54 UTC (rev 250)
+++ trunk/echobase-ui/pom.xml 2012-01-08 19:12:55 UTC (rev 251)
@@ -11,7 +11,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>0.2</version>
+ <version>0.3-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-01-08 19:12:54 UTC (rev 250)
+++ trunk/pom.xml 2012-01-08 19:12:55 UTC (rev 251)
@@ -15,7 +15,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>0.2</version>
+ <version>0.3-SNAPSHOT</version>
<modules>
<module>echobase-entities</module>
@@ -78,11 +78,11 @@
<!-- ************************************************************* -->
<scm>
- <url>http://svn.forge.codelutin.com/svn/echobase/tags/echobase-0.2</url>
- <connection>scm:svn:http://svn.forge.codelutin.com/svn/echobase/tags/echobase-0.2
+ <url>http://svn.forge.codelutin.com/svn/echobase/trunk</url>
+ <connection>scm:svn:http://svn.forge.codelutin.com/svn/echobase/trunk
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/echobase/tags/echobase-0.2
+ scm:svn:http://svn.forge.codelutin.com/svn/echobase/trunk
</developerConnection>
</scm>
1
0
Author: maven-release
Date: 2012-01-08 20:12:54 +0100 (Sun, 08 Jan 2012)
New Revision: 250
Url: http://forge.codelutin.com/repositories/revision/echobase/250
Log:
[maven-release-plugin] copy for tag echobase-0.2
Added:
tags/echobase-0.2/
1
0
r249 - in trunk: . echobase-entities echobase-services echobase-tools echobase-ui
by maven-release@users.forge.codelutin.com 08 Jan '12
by maven-release@users.forge.codelutin.com 08 Jan '12
08 Jan '12
Author: maven-release
Date: 2012-01-08 20:12:53 +0100 (Sun, 08 Jan 2012)
New Revision: 249
Url: http://forge.codelutin.com/repositories/revision/echobase/249
Log:
[maven-release-plugin] prepare release echobase-0.2
Modified:
trunk/echobase-entities/pom.xml
trunk/echobase-services/pom.xml
trunk/echobase-tools/pom.xml
trunk/echobase-ui/pom.xml
trunk/pom.xml
Modified: trunk/echobase-entities/pom.xml
===================================================================
--- trunk/echobase-entities/pom.xml 2012-01-08 18:57:36 UTC (rev 248)
+++ trunk/echobase-entities/pom.xml 2012-01-08 19:12:53 UTC (rev 249)
@@ -9,7 +9,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>0.2-SNAPSHOT</version>
+ <version>0.2</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/echobase-services/pom.xml
===================================================================
--- trunk/echobase-services/pom.xml 2012-01-08 18:57:36 UTC (rev 248)
+++ trunk/echobase-services/pom.xml 2012-01-08 19:12:53 UTC (rev 249)
@@ -10,7 +10,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>0.2-SNAPSHOT</version>
+ <version>0.2</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/echobase-tools/pom.xml
===================================================================
--- trunk/echobase-tools/pom.xml 2012-01-08 18:57:36 UTC (rev 248)
+++ trunk/echobase-tools/pom.xml 2012-01-08 19:12:53 UTC (rev 249)
@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -13,7 +11,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>0.2-SNAPSHOT</version>
+ <version>0.2</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/echobase-ui/pom.xml
===================================================================
--- trunk/echobase-ui/pom.xml 2012-01-08 18:57:36 UTC (rev 248)
+++ trunk/echobase-ui/pom.xml 2012-01-08 19:12:53 UTC (rev 249)
@@ -11,7 +11,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>0.2-SNAPSHOT</version>
+ <version>0.2</version>
</parent>
<groupId>fr.ifremer.echobase</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-01-08 18:57:36 UTC (rev 248)
+++ trunk/pom.xml 2012-01-08 19:12:53 UTC (rev 249)
@@ -15,7 +15,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>echobase</artifactId>
- <version>0.2-SNAPSHOT</version>
+ <version>0.2</version>
<modules>
<module>echobase-entities</module>
@@ -78,11 +78,11 @@
<!-- ************************************************************* -->
<scm>
- <url>http://svn.forge.codelutin.com/svn/echobase/trunk</url>
- <connection>scm:svn:http://svn.forge.codelutin.com/svn/echobase/trunk
+ <url>http://svn.forge.codelutin.com/svn/echobase/tags/echobase-0.2</url>
+ <connection>scm:svn:http://svn.forge.codelutin.com/svn/echobase/tags/echobase-0.2
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/echobase/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/echobase/tags/echobase-0.2
</developerConnection>
</scm>
1
0
Author: tchemit
Date: 2012-01-08 19:57:36 +0100 (Sun, 08 Jan 2012)
New Revision: 248
Url: http://forge.codelutin.com/repositories/revision/echobase/248
Log:
update install doc
Modified:
trunk/src/site/rst/install.rst
Modified: trunk/src/site/rst/install.rst
===================================================================
--- trunk/src/site/rst/install.rst 2012-01-06 18:15:34 UTC (rev 247)
+++ trunk/src/site/rst/install.rst 2012-01-08 18:57:36 UTC (rev 248)
@@ -37,42 +37,77 @@
Configuration d'Echobase
------------------------
-La configuration personnalisée d'Echobase ce trouve par défaut dans /etc/echobase.properties.
+La configuration d'Echobase se trouve par défaut de le fichier
+**/etc/echobase.properties**.
-Par défaut le répertoire de travail ce trouve dans /var/local/echobase. Le war du projet (pour créer une application embarquée) ce trouve dans le repertoire "war" du répertoire de travail. Voici contenu de celui-ci par défaut::
+Ce fichier permet de surcharger la configuration par défaut.
+*Nous préconisons* l'utilisation de la configuration par défaut.
+
+Par défaut le répertoire de travail ce trouve dans */var/local/echobase*.
+Le war du projet (pour créer une application embarquée) se trouve dans le
+repertoire "war" du répertoire de travail. Voici contenu de celui-ci par défaut::
+
data.directory=/var/local/echobase # Repertoire de l'application
war.directory=${data.directory}/war # Répertoire où est stoqué le war
war.location=${war.directory}/echobase-ui-${project.version}.war # Chemin complêt d'accès au war
-Vous pouvez surcharger toutes les propriétés ci-dessus, dans la plupart des cas, seul la modification de data.directory est normalement nécessaire.
-Il suffit de créer le fichier /etc/echobase.properties et d'y ajouter la/les ligne(s) ci-dessus modifiée(s).
+Vous pouvez surcharger toutes les propriétés ci-dessus, dans la plupart des
+cas, seul la modification de data.directory est normalement nécessaire.
-Une base de donnée h2 est crée dans le répertoire de travail (data.directory) mais il est possible de configurer une base Postgres.
+Il suffit de créer le fichier */etc/echobase.properties* et d'y ajouter
+la/les ligne(s) ci-dessus modifiée(s).
-Installation Postgres
----------------------
+Une base de donnée h2 est crée dans le répertoire de travail (data.directory)
+mais il est possible de configurer une base Postgres.
+Installation de la base de données
+----------------------------------
+
Pré-requis :
- - postgres doit être installé sur la machine (exemple pour un système Debian : apt-get install postgresql)
+ - **postgres** doit être installé sur la machine (exemple pour un système Debian : apt-get install postgresql)
- être connecté avec l'utilisateur (postgres par défaut) qui a les droits d'administrer cette base de donnée.
1. Création de l'utilisateur Postgres
::
- createuser -P echobase
+ createuser -U postgres -sdRP echobase
2. Création de la base de donnée "echobase"
::
- createdb -E utf8 echobase -O echobase
+ createdb -U postgres -E UTF-8 -O echobase echobase
-3. Il faut positionner le fichier de configuration echobase.properties_ dans /etc et remplacer le mot de passe (hibernate.connection.password) par celui rentré lors de la création de l'utilisateur Postgres.
+3. Il faut positionner le fichier de configuration echobase.properties_ dans
+ /etc et remplacer le mot de passe (hibernate.connection.password) par celui
+ rentré lors de la création de l'utilisateur Postgres.
.. _echobase.properties: echobase.properties
+Installation de l'application
+-----------------------------
+
+L'application qui est fournit sous forme le war doit être placée dans le
+répertoire dédié dans le serveur web.
+
+Il faut aussi placer ce war dans le répertoire défini dans la configuration par
+la propriété *war.location* qui par défaut est situé dans */var/local/echobase/war*
+
+Gestion des logs de l'application
+---------------------------------
+
+Avant de lancer l'application, il faut avoir positionner une variable
+**echobase.log.dir** de jvm qui définit le répertoire où positionner les logs
+de l'application.::
+
+ JAVA_OPTS="$JAVA_OPTS -Dechobase.log.dir=/var/local/echobase/logs"
+
+ou::
+
+ CATALINA_OPTS="$CATALINA_OPTS -Dechobase.log.dir=/var/local/echobase/logs"
+
Première utilisation
--------------------
@@ -81,4 +116,5 @@
login : admin
mot de passe : admin
-Pour des raisons de sécurité, il est conseillé de modifier le mot de passe via l'interface de gestion des utilisateurs.
\ No newline at end of file
+Pour des raisons de sécurité, il est conseillé de modifier le mot de passe via
+l'interface de gestion des utilisateurs.
\ No newline at end of file
1
0
r247 - in trunk: echobase-ui/src/main/env/dev/resources echobase-ui/src/main/env/prod/resources echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user echobase-ui/src/main/webapp/WEB-INF/jsp/user src/site/resources/model
by tchemit@users.forge.codelutin.com 06 Jan '12
by tchemit@users.forge.codelutin.com 06 Jan '12
06 Jan '12
Author: tchemit
Date: 2012-01-06 19:15:34 +0100 (Fri, 06 Jan 2012)
New Revision: 247
Url: http://forge.codelutin.com/repositories/revision/echobase/247
Log:
svn properties + headers
Modified:
trunk/echobase-ui/src/main/env/dev/resources/log4j.xml
trunk/echobase-ui/src/main/env/prod/resources/log4j.xml
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/Update.java
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Create.jsp
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/src/site/resources/model/referenceLengthWeightKey.png
trunk/src/site/resources/model/referenceSample.png
Modified: trunk/echobase-ui/src/main/env/dev/resources/log4j.xml
===================================================================
--- trunk/echobase-ui/src/main/env/dev/resources/log4j.xml 2012-01-06 18:14:38 UTC (rev 246)
+++ trunk/echobase-ui/src/main/env/dev/resources/log4j.xml 2012-01-06 18:15:34 UTC (rev 247)
@@ -1,4 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ #%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%
+ -->
+
<!DOCTYPE log4j:configuration SYSTEM
"http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/…">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
Property changes on: trunk/echobase-ui/src/main/env/dev/resources/log4j.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-ui/src/main/env/prod/resources/log4j.xml
===================================================================
--- trunk/echobase-ui/src/main/env/prod/resources/log4j.xml 2012-01-06 18:14:38 UTC (rev 246)
+++ trunk/echobase-ui/src/main/env/prod/resources/log4j.xml 2012-01-06 18:15:34 UTC (rev 247)
@@ -1,4 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ #%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%
+ -->
+
<!DOCTYPE log4j:configuration SYSTEM
"http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/…">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'
Property changes on: trunk/echobase-ui/src/main/env/prod/resources/log4j.xml
___________________________________________________________________
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/user/Create.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java 2012-01-06 18:14:38 UTC (rev 246)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java 2012-01-06 18:15:34 UTC (rev 247)
@@ -1,3 +1,26 @@
+/*
+ * #%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.user;
import fr.ifremer.echobase.entities.EchoBaseUser;
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.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/user/Delete.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2012-01-06 18:14:38 UTC (rev 246)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2012-01-06 18:15:34 UTC (rev 247)
@@ -1,3 +1,26 @@
+/*
+ * #%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.user;
import com.opensymphony.xwork2.Preparable;
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.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/user/Update.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2012-01-06 18:14:38 UTC (rev 246)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2012-01-06 18:15:34 UTC (rev 247)
@@ -1,3 +1,26 @@
+/*
+ * #%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.user;
import com.opensymphony.xwork2.Preparable;
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Create.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Create.jsp 2012-01-06 18:14:38 UTC (rev 246)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Create.jsp 2012-01-06 18:15:34 UTC (rev 247)
@@ -2,8 +2,8 @@
#%L
EchoBase :: UI
- $Id: userForm.jsp 75 2011-11-14 09:15:15Z sletellier $
- $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/weba… $
+ $Id$
+ $HeadURL$
%%
Copyright (C) 2011 Ifremer, Codelutin
%%
Property changes on: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Create.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
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-06 18:14:38 UTC (rev 246)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp 2012-01-06 18:15:34 UTC (rev 247)
@@ -2,8 +2,8 @@
#%L
EchoBase :: UI
- $Id: userForm.jsp 75 2011-11-14 09:15:15Z sletellier $
- $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/weba… $
+ $Id$
+ $HeadURL$
%%
Copyright (C) 2011 Ifremer, Codelutin
%%
Property changes on: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
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-06 18:14:38 UTC (rev 246)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp 2012-01-06 18:15:34 UTC (rev 247)
@@ -2,8 +2,8 @@
#%L
EchoBase :: UI
- $Id: userForm.jsp 75 2011-11-14 09:15:15Z sletellier $
- $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/weba… $
+ $Id$
+ $HeadURL$
%%
Copyright (C) 2011 Ifremer, Codelutin
%%
Property changes on: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/src/site/resources/model/referenceLengthWeightKey.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/resources/model/referenceSample.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
r246 - in trunk/echobase-ui/src/main: env/dev/resources env/prod/resources java/fr/ifremer/echobase/ui/actions/user resources/config resources/fr/ifremer/echobase/ui/actions/user resources/i18n webapp/WEB-INF/jsp/embeddedApplication webapp/WEB-INF/jsp/user
by tchemit@users.forge.codelutin.com 06 Jan '12
by tchemit@users.forge.codelutin.com 06 Jan '12
06 Jan '12
Author: tchemit
Date: 2012-01-06 19:14:38 +0100 (Fri, 06 Jan 2012)
New Revision: 246
Url: http://forge.codelutin.com/repositories/revision/echobase/246
Log:
- review User CRUD (make it simple!)
- improve log config
- i18n
Added:
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/Update.java
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Create.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp
Removed:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ManageUser.java
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/user/ManageUser-validation.xml
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userForm.jsp
Modified:
trunk/echobase-ui/src/main/env/dev/resources/log4j.xml
trunk/echobase-ui/src/main/env/prod/resources/log4j.xml
trunk/echobase-ui/src/main/resources/config/struts-user.xml
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/result.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp
Modified: trunk/echobase-ui/src/main/env/dev/resources/log4j.xml
===================================================================
--- trunk/echobase-ui/src/main/env/dev/resources/log4j.xml 2012-01-06 18:13:48 UTC (rev 245)
+++ trunk/echobase-ui/src/main/env/dev/resources/log4j.xml 2012-01-06 18:14:38 UTC (rev 246)
@@ -27,8 +27,7 @@
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern"
- value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] %m%n"/>
</layout>
</appender>
Modified: trunk/echobase-ui/src/main/env/prod/resources/log4j.xml
===================================================================
--- trunk/echobase-ui/src/main/env/prod/resources/log4j.xml 2012-01-06 18:13:48 UTC (rev 245)
+++ trunk/echobase-ui/src/main/env/prod/resources/log4j.xml 2012-01-06 18:14:38 UTC (rev 246)
@@ -29,8 +29,7 @@
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern"
- value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] %m%n"/>
</layout>
</appender>
Added: 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 (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java 2012-01-06 18:14:38 UTC (rev 246)
@@ -0,0 +1,98 @@
+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;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * To create a user.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class Create extends EchoBaseActionSupport {
+
+ protected static final Log log = LogFactory.getLog(Create.class);
+
+ private static final long serialVersionUID = 1L;
+
+ protected transient UserService userService;
+
+ protected EchoBaseUserDTO user;
+
+ public UserService getUserService() {
+ if (userService == null) {
+ userService = newService(UserService.class);
+ }
+ return userService;
+ }
+
+ public String execute() throws Exception {
+ EchoBaseUserDTO user = getUser();
+ String userEmail = user.getEmail();
+
+ if (log.isInfoEnabled()) {
+ log.info("will create user " + userEmail);
+ }
+
+ // create user
+ getUserService().createOrUpdate(user);
+
+ // add info message
+ addActionMessage(_("echobase.info.user.create", userEmail));
+ return SUCCESS;
+ }
+
+ @Override
+ public void validate() {
+
+ EchoBaseUserDTO user = getUser();
+ String userEmail = user.getEmail();
+
+ // login + password required
+ if (StringUtils.isEmpty(userEmail)) {
+
+ // empty user login
+ addFieldError("user.email",
+ _("echobase.error.required.email"));
+ } else {
+
+ // check login not already used
+ EchoBaseUser login;
+ try {
+ login = getUserService().getUserByEmail(userEmail);
+ } catch (Exception e) {
+
+ // could not get user
+ throw new IllegalStateException(
+ "Could not obtain user " + userEmail, e);
+ }
+ if (login != null) {
+ addFieldError("user.email",
+ _("echobase.error.email.already.used"));
+ }
+ }
+
+ String userPassword = user.getPassword();
+ if (StringUtils.isEmpty(userPassword)) {
+
+ // empty user password
+ addFieldError("user.password",
+ _("echobase.error.required.password"));
+ }
+
+ }
+
+ public EchoBaseUserDTO getUser() {
+ if (user == null) {
+ user = new EchoBaseUserDTOImpl();
+ }
+ return user;
+ }
+
+}
\ No newline at end of file
Added: 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 (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2012-01-06 18:14:38 UTC (rev 246)
@@ -0,0 +1,74 @@
+package fr.ifremer.echobase.ui.actions.user;
+
+import com.opensymphony.xwork2.Preparable;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.EchoBaseUserDTO;
+import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl;
+import fr.ifremer.echobase.services.UserService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * To delete a user.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class Delete extends EchoBaseActionSupport implements Preparable {
+
+ protected static final Log log = LogFactory.getLog(Delete.class);
+
+ private static final long serialVersionUID = 1L;
+
+ protected transient UserService userService;
+
+ protected EchoBaseUserDTO user;
+
+ public UserService getUserService() {
+ if (userService == null) {
+ userService = newService(UserService.class);
+ }
+ return userService;
+ }
+
+ public String execute() throws Exception {
+
+ EchoBaseUserDTO user = getUser();
+ String userEmail = user.getEmail();
+
+ if (log.isInfoEnabled()) {
+ log.info("will delete user " + userEmail);
+ }
+
+ // delete user
+ getUserService().delete(user);
+
+ // add info message
+ addActionMessage(_("echobase.info.user.delete", userEmail));
+ return SUCCESS;
+ }
+
+ public EchoBaseUserDTO getUser() {
+ if (user == null) {
+ user = new EchoBaseUserDTOImpl();
+ }
+ return user;
+ }
+
+ @Override
+ public void prepare() throws Exception {
+ String userId = getUser().getId();
+ if (!StringUtils.isEmpty(userId)) {
+
+ // load user
+ user = getUserService().getEntityById(EchoBaseUser.class, userId).toDTO();
+
+ if (log.isInfoEnabled()) {
+ log.info("Selected user " + user.getEmail());
+ }
+ }
+
+ }
+}
\ No newline at end of file
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ManageUser.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ManageUser.java 2012-01-06 18:13:48 UTC (rev 245)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ManageUser.java 2012-01-06 18:14:38 UTC (rev 246)
@@ -1,187 +0,0 @@
-/*
- * #%L
- * EchoBase :: UI
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.ui.actions.user;
-
-import com.opensymphony.xwork2.Preparable;
-import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.entities.EchoBaseUserDTO;
-import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl;
-import fr.ifremer.echobase.services.UserService;
-import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-import fr.ifremer.echobase.ui.actions.EditActionEnum;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- * Action to manage user (create - update - change password,...)
- *
- * @author sletellier <letellier(a)codelutin.com>
- * @since 0.1
- */
-public class ManageUser extends EchoBaseActionSupport implements Preparable {
-
- protected static final Log log = LogFactory.getLog(ManageUser.class);
-
- private static final long serialVersionUID = 1L;
-
- public static final String BACK_TO_LIST = "backToList";
-
- protected transient UserService userService;
-
- protected EchoBaseUserDTO user;
-
- protected String userEditAction;
-
- public String getUserEditAction() {
- return userEditAction;
- }
-
- public void setUserEditAction(String userEditAction) {
- this.userEditAction = userEditAction;
- }
-
- protected UserService getUserService() {
- if (userService == null) {
- userService = newService(UserService.class);
- }
- return userService;
- }
-
- @Override
- public void prepare() throws Exception {
-
- String userId = getUser().getId();
- if (!StringUtils.isEmpty(userId)) {
-
- // load user
- user = getUserService().getEntityById(EchoBaseUser.class, userId).toDTO();
-
- log.info("Selected user " + user.getEmail());
- }
- }
-
- public String doCreateOrUpdate() throws Exception {
- EchoBaseUserDTO user = getUser();
- String userEmail = user.getEmail();
-
- if (log.isInfoEnabled()) {
- log.info("will create user " + userEmail);
- }
-
- // create user
- getUserService().createOrUpdate(user);
- return BACK_TO_LIST;
- }
-
- public String doDelete() throws Exception {
- EchoBaseUserDTO user = getUser();
- String userEmail = user.getEmail();
-
- if (log.isInfoEnabled()) {
- log.info("will delete user " + userEmail);
- }
- getUserService().delete(user);
- return BACK_TO_LIST;
- }
-
- @Override
- public void validate() {
-
- EditActionEnum action = getEditActionEnum();
-
- log.info("Edit action : " + action);
-
- if (action == null) {
-
- // no validation (no edit action)
- return;
- }
-
- EchoBaseUserDTO user = getUser();
- String userEmail = user.getEmail();
-
- switch (action) {
-
- case CREATE:
-
- // login + password required
- if (StringUtils.isEmpty(userEmail)) {
-
- // empty user login
- addFieldError("user.email",
- _("echobase.error.required.email"));
- } else {
-
- // check login not already used
- EchoBaseUser login;
- try {
- login = getUserService().getUserByEmail(userEmail);
- } catch (Exception e) {
-
- // could not get user
- throw new IllegalStateException(
- "Could not obtain user " + userEmail, e);
- }
- if (login != null) {
- addFieldError("user.email",
- _("echobase.error.email.already.used"));
- }
- }
-
- String userPassword = user.getPassword();
- if (StringUtils.isEmpty(userPassword)) {
-
- // empty user password
- addFieldError("user.password",
- _("echobase.error.required.password"));
- }
-
- break;
- case EDIT:
-
- // at the moment nothing to validate
- break;
- case DELETE:
-
- // Do nothing
- default:
- // nothing to validate
- }
- }
-
- public EchoBaseUserDTO getUser() {
- if (user == null) {
- user = new EchoBaseUserDTOImpl();
- }
- return user;
- }
-
- protected EditActionEnum getEditActionEnum() {
- if (userEditAction == null) {
- return null;
- }
- return EditActionEnum.valueOf(userEditAction);
- }
-}
Added: 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 (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2012-01-06 18:14:38 UTC (rev 246)
@@ -0,0 +1,74 @@
+package fr.ifremer.echobase.ui.actions.user;
+
+import com.opensymphony.xwork2.Preparable;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.EchoBaseUserDTO;
+import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl;
+import fr.ifremer.echobase.services.UserService;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * To update a user.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class Update extends EchoBaseActionSupport implements Preparable {
+
+ protected static final Log log = LogFactory.getLog(Update.class);
+
+ private static final long serialVersionUID = 1L;
+
+ protected transient UserService userService;
+
+ protected EchoBaseUserDTO user;
+
+ public UserService getUserService() {
+ if (userService == null) {
+ userService = newService(UserService.class);
+ }
+ return userService;
+ }
+
+ @Override
+ public String execute() throws Exception {
+ EchoBaseUserDTO user = getUser();
+ String userEmail = user.getEmail();
+
+ if (log.isInfoEnabled()) {
+ log.info("will update user " + userEmail);
+ }
+
+ // update user
+ getUserService().createOrUpdate(user);
+
+ // add info message
+ addActionMessage(_("echobase.info.user.update", userEmail));
+ return SUCCESS;
+ }
+
+ @Override
+ public void prepare() throws Exception {
+ String userId = getUser().getId();
+ if (!StringUtils.isEmpty(userId)) {
+
+ // load user
+ user = getUserService().getEntityById(EchoBaseUser.class, userId).toDTO();
+
+ if (log.isInfoEnabled()) {
+ log.info("Selected user " + user.getEmail());
+ }
+ }
+ }
+
+ public EchoBaseUserDTO getUser() {
+ if (user == null) {
+ user = new EchoBaseUserDTOImpl();
+ }
+ return user;
+ }
+
+}
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/resources/config/struts-user.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-user.xml 2012-01-06 18:13:48 UTC (rev 245)
+++ trunk/echobase-ui/src/main/resources/config/struts-user.xml 2012-01-06 18:14:38 UTC (rev 246)
@@ -53,20 +53,19 @@
</action>
<!-- Display lists of users -->
- <action name="userList" class="fr.ifremer.echobase.ui.actions.user.ManageUser">
+ <action name="userList" class="fr.ifremer.echobase.ui.actions.EchoBaseActionSupport">
<interceptor-ref name="basicStackLoggued"/>
<interceptor-ref name="checkUserIsAdmin"/>
<result>/WEB-INF/jsp/user/userList.jsp</result>
</action>
- <!-- Get detail of a user -->
- <action name="userForm" class="fr.ifremer.echobase.ui.actions.user.ManageUser"
- method="input">
+ <!-- CRUD on user -->
+ <action name="user-*"
+ class="fr.ifremer.echobase.ui.actions.user.{1}">
<interceptor-ref name="paramsPrepareParamsStackLoggued"/>
<interceptor-ref name="checkUserIsAdmin"/>
- <result name="input">/WEB-INF/jsp/user/userForm.jsp</result>
- <result>/WEB-INF/jsp/user/userForm.jsp</result>
- <result name="backToList" type="redirectAction">userList</result>
+ <result name="input">/WEB-INF/jsp/user/{1}.jsp</result>
+ <result>/WEB-INF/jsp/user/userList.jsp</result>
</action>
<!-- Get db modifications -->
Deleted: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/user/ManageUser-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/user/ManageUser-validation.xml 2012-01-06 18:13:48 UTC (rev 245)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/user/ManageUser-validation.xml 2012-01-06 18:14:38 UTC (rev 246)
@@ -1,43 +0,0 @@
-<!--
- #%L
- EchoBase :: UI
-
- $Id$
- $HeadURL$
- %%
- Copyright (C) 2011 Ifremer, Codelutin
- %%
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- #L%
- -->
-<!DOCTYPE validators PUBLIC
- "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
- "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
-<validators>
-
- <field name="user.email">
-
- <field-validator type="login">
- <message key="echobase.error.login.wrongLogin"/>
- </field-validator>
- </field>
-
- <field name="user.password">
-
- <field-validator type="requiredstring">
- <message key="echobase.error.login.password.requiredstring"/>
- </field-validator>
- </field>
-
-</validators>
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-01-06 18:13:48 UTC (rev 245)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-01-06 18:14:38 UTC (rev 246)
@@ -36,7 +36,7 @@
echobase.common.password=Mot de passe
echobase.common.user=Utilisateur
echobase.error.bad.password=Mot de passe incorrrect
-echobase.error.email.already.used=
+echobase.error.email.already.used=Nom d'utilisateur déjà pris
echobase.error.export.description.requiredstring=La description de l'export est obligatoire
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
@@ -68,6 +68,12 @@
echobase.info.no.sqlQuery.selected=Aucune requête d'export sql sélectionnée
echobase.info.no.table.selected=Aucune table sélectionnée
echobase.info.no.voyagee.found=Aucune campagne à exporter
+echobase.info.user.create=L'utilisateur '%s' a été créée
+echobase.info.user.delete=L'utilisateur '%s' a été supprimé
+echobase.info.user.update=L'utilisateur '%s' a été mis à jour
+echobase.label.admin.user.create=Création d'un utilisateur
+echobase.label.admin.user.delete=Suppression d'un utilisateur
+echobase.label.admin.user.edit=Mise à jour d'un utilisateur
echobase.label.createIfNotFound=Créer les entités non trouvées en base
echobase.label.embeddedApplicationFileName=Nom de l'archive à télécharger
echobase.label.embeddedWarFileName=Nom du war à utiliser
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/result.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/result.jsp 2012-01-06 18:13:48 UTC (rev 245)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/result.jsp 2012-01-06 18:14:38 UTC (rev 246)
@@ -46,7 +46,7 @@
<div>
Si le téléchargement n'a pas démarré automatiquement, suivez ce lien :
- <a href="${downloadUrl}" target="download">
+ <a href="${downloadUrl}">
<s:text name="echobase.action.downloadEmbeddedApplicationFile"/>
</a>
</div>
Added: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Create.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Create.jsp (rev 0)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Create.jsp 2012-01-06 18:14:38 UTC (rev 246)
@@ -0,0 +1,52 @@
+<%--
+ #%L
+ EchoBase :: UI
+
+ $Id: userForm.jsp 75 2011-11-14 09:15:15Z sletellier $
+ $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/weba… $
+ %%
+ Copyright (C) 2011 Ifremer, Codelutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ --%>
+<%@page contentType="text/html" pageEncoding="UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
+
+<title><s:text name="echobase.label.admin.user.create"/></title>
+
+<h2><s:text name="echobase.label.admin.user.create"/></h2>
+
+<s:form method="post" validate="true" namespace="/user">
+ <fieldset>
+ <legend>
+ <s:text name="echobase.common.user"/>
+ </legend>
+ <s:textfield key="user.email" label="%{getText('echobase.common.email')}"
+ size="40" required="true"/>
+ <s:password key="user.password"
+ label="%{getText('echobase.common.password')}"
+ size="40" required="true"/>
+ <s:checkbox key="user.admin" label="%{getText('echobase.common.admin')}"/>
+ </fieldset>
+ <ul class="toolbar floatRight">
+ <li><s:submit action="user-Create" key="echobase.action.create"
+ theme="simple"/></li>
+ <li><s:submit action="userList" key="echobase.action.backToUserList"
+ theme="simple"/></li>
+ </ul>
+</s:form>
+
+
Added: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp (rev 0)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp 2012-01-06 18:14:38 UTC (rev 246)
@@ -0,0 +1,51 @@
+<%--
+ #%L
+ EchoBase :: UI
+
+ $Id: userForm.jsp 75 2011-11-14 09:15:15Z sletellier $
+ $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/weba… $
+ %%
+ Copyright (C) 2011 Ifremer, Codelutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ --%>
+<%@page contentType="text/html" pageEncoding="UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
+
+<title><s:text name="echobase.label.admin.user.delete"/></title>
+
+<h2><s:text name="echobase.label.admin.user.delete"/></h2>
+
+<s:form method="post" validate="true" namespace="/user">
+ <fieldset>
+ <legend>
+ <s:text name="echobase.common.user"/>
+ </legend>
+ <s:hidden name="user.id" label=""/>
+ <s:textfield key="user.email" label="%{getText('echobase.common.email')}"
+ size="40" disabled="true"/>
+ <s:checkbox value="%{user.admin}" key="echobase.common.admin"
+ disabled="true"/>
+ </fieldset>
+ <ul class="toolbar floatRight">
+ <li><s:submit action="user-Delete"
+ key="echobase.action.delete" theme="simple"/></li>
+ <li><s:submit action="userList" key="echobase.action.backToUserList"
+ theme="simple"/></li>
+ </ul>
+</s:form>
+
+
Added: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp (rev 0)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp 2012-01-06 18:14:38 UTC (rev 246)
@@ -0,0 +1,56 @@
+<%--
+ #%L
+ EchoBase :: UI
+
+ $Id: userForm.jsp 75 2011-11-14 09:15:15Z sletellier $
+ $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/weba… $
+ %%
+ Copyright (C) 2011 Ifremer, Codelutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ --%>
+<%@page contentType="text/html" pageEncoding="UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
+
+<title><s:text name="echobase.label.admin.user.edit"/></title>
+
+<h2><s:text name="echobase.label.admin.user.edit"/></h2>
+
+<s:form method="post" validate="true" namespace="/user">
+ <fieldset>
+ <legend>
+ <s:text name="echobase.common.user"/>
+ </legend>
+ <s:hidden key="user.id" label=""/>
+ <s:textfield key="user.email" label="%{getText('echobase.common.email')}"
+ size="40" readonly="true"/>
+ <s:password name="user.password" value="" label="%{getText('echobase.common.password')} (*)"
+ size="40"/>
+ <s:checkbox key="user.admin" label="%{getText('echobase.common.admin')}"/>
+ <br/>
+ <div class="cleanBoth">
+ (*) Pour ne pas modifier le mot de passe laisser ce champs vide
+ </div>
+ </fieldset>
+ <ul class="toolbar floatRight">
+ <li><s:submit action="user-Update"
+ key="echobase.action.save" theme="simple"/></li>
+ <li><s:submit action="userList" key="echobase.action.backToUserList"
+ theme="simple"/></li>
+ </ul>
+</s:form>
+
+
Deleted: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userForm.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userForm.jsp 2012-01-06 18:13:48 UTC (rev 245)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userForm.jsp 2012-01-06 18:14:38 UTC (rev 246)
@@ -1,128 +0,0 @@
-<%--
- #%L
- EchoBase :: UI
-
- $Id$
- $HeadURL$
- %%
- Copyright (C) 2011 Ifremer, Codelutin
- %%
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- #L%
- --%>
-<%@ page import="fr.ifremer.echobase.ui.actions.EditActionEnum" %>
-<%@page contentType="text/html" pageEncoding="UTF-8" %>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
-
-<script type="text/javascript"
- src="<s:url value='/js/gridHelper.js' />"></script>
-
-<%-- CRUD constants --%>
-<s:set name="create"><%=EditActionEnum.CREATE.toString()%>
-</s:set>
-<s:set name="edit"><%=EditActionEnum.EDIT.toString()%>
-</s:set>
-<s:set name="delete"><%=EditActionEnum.DELETE.toString()%>
-</s:set>
-
-<s:if test="userEditAction == #create">
- <s:set name="title"><s:text name="echobase.label.admin.user.create"/></s:set>
-</s:if>
-<s:elseif test="userEditAction == #edit">
- <s:set name="title"><s:text name="echobase.label.admin.user.edit"/></s:set>
-</s:elseif>
-<s:elseif test="userEditAction == #delete">
- <s:set name="title"><s:text name="echobase.label.admin.user.delete"/></s:set>
-</s:elseif>
-
-<title><s:property value="#title"/></title>
-
-<h2><s:property value="#title"/></h2>
-
-<s:if test="userEditAction == #create">
-
- <%--Create user--%>
-
- <s:form method="post" validate="true" namespace="/user">
- <fieldset>
- <legend>
- <s:text name="echobase.common.user"/>
- </legend>
- <s:hidden key="userEditAction" label=""/>
- <s:textfield key="user.email" label="%{getText('echobase.common.email')}"
- size="40" required="true"/>
- <s:password key="user.password"
- label="%{getText('echobase.common.password')}"
- size="40" required="true"/>
- <s:checkbox key="user.admin" label="%{getText('echobase.common.admin')}"/>
- </fieldset>
- <ul class="toolbar floatRight">
- <li><s:submit action="userForm" method="doCreateOrUpdate"
- key="echobase.action.create" theme="simple"/></li>
- <li><s:submit action="userList" key="echobase.action.backToUserList"
- theme="simple"/></li>
- </ul>
- </s:form>
-</s:if>
-<s:elseif test="userEditAction == #edit">
-
- <%--Update user--%>
-
- <s:form method="post" validate="true" namespace="/user">
- <fieldset>
- <legend>
- <s:text name="echobase.common.user"/>
- </legend>
- <s:hidden key="user.id" label=""/>
- <s:hidden key="userEditAction" label=""/>
- <s:textfield key="user.email" label="%{getText('echobase.common.email')}"
- size="40"/>
- <s:password name="user.password" value="" key="echobase.common.password"
- size="40"/>
- <s:checkbox value="%{user.admin}" key="echobase.common.admin"/>
- </fieldset>
- <ul class="toolbar floatRight">
- <li><s:submit action="userForm" method="doCreateOrUpdate"
- key="echobase.action.save" theme="simple"/></li>
- <li><s:submit action="userList" key="echobase.action.backToUserList"
- theme="simple"/></li>
- </ul>
- </s:form>
-</s:elseif>
-<s:elseif test="userEditAction == #delete">
-
- <%--Delete user--%>
-
- <s:form method="post" validate="true" namespace="/user">
- <fieldset>
- <legend>
- <s:text name="echobase.common.user"/>
- </legend>
- <s:hidden name="user.id" label=""/>
- <s:hidden name="userEditAction" label=""/>
- <s:textfield key="user.email" label="%{getText('echobase.common.email')}"
- size="40" disabled="true"/>
- <s:checkbox value="%{user.admin}" key="echobase.common.admin"
- disabled="true"/>
- </fieldset>
- <ul class="toolbar floatRight">
- <li><s:submit action="userForm" method="doDelete"
- key="echobase.action.delete" theme="simple"/></li>
- <li><s:submit action="userList" key="echobase.action.backToUserList"
- theme="simple"/></li>
- </ul>
- </s:form>
-</s:elseif>
-
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp 2012-01-06 18:13:48 UTC (rev 245)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp 2012-01-06 18:14:38 UTC (rev 246)
@@ -31,17 +31,11 @@
<s:url id="loadUrl" action="getUsers" namespace="/user" escapeAmp="false"/>
-<s:url id="addUrl" action="userForm" namespace="/user" escapeAmp="false" method="input">
- <s:param name="userEditAction"><%=EditActionEnum.CREATE%></s:param>
-</s:url>
+<s:url id="addUrl" action="user-Create" namespace="/user" escapeAmp="false" method="input"/>
-<s:url id="editUrl" action="userForm" namespace="/user" escapeAmp="false" method="input">
- <s:param name="userEditAction"><%=EditActionEnum.EDIT%></s:param>
-</s:url>
+<s:url id="editUrl" action="user-Update" namespace="/user" escapeAmp="false" method="input"/>
-<s:url id="delUrl" action="userForm" namespace="/user" escapeAmp="false" method="input">
- <s:param name="userEditAction"><%=EditActionEnum.DELETE%></s:param>
-</s:url>
+<s:url id="delUrl" action="user-Delete" namespace="/user" escapeAmp="false" method="input"/>
<script type="text/javascript">
1
0