This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository echobase. See http://git.codelutin.com/echobase.git commit 624bb54ae0ea87cec78c2d60c681b86fa7126c14 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Dec 8 15:26:05 2014 +0100 fixes #4874: Comment supprimer une ligne dans une table dans "modifier les données"? --- .../echobase/services/service/DbEditorService.java | 15 ++++++ .../echobase/ui/actions/dbeditor/DeleteEntity.java | 63 ++++++++++++++++++++++ .../src/main/resources/config/struts-dbeditor.xml | 6 +++ .../resources/i18n/echobase-ui_en_GB.properties | 2 + .../resources/i18n/echobase-ui_fr_FR.properties | 4 ++ .../main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp | 4 ++ 6 files changed, 94 insertions(+) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java index 4d40bee..56bd3c3 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java @@ -203,6 +203,21 @@ public class DbEditorService extends EchoBaseServiceSupport { } } + public <E extends TopiaEntity> void deleteEntity(EchoBaseUserEntityEnum entityEnum, String topiaId, EchoBaseUser user) { + + TopiaDao<E> dao = (TopiaDao<E>) persistenceContext.getDao(entityEnum.getContract()); + + E entity = dao.findByTopiaId(topiaId); + if (entity == null) { + throw new EchoBaseTechnicalException("Could not find entity of type " + entityEnum + " with id: " + topiaId); + } + + dao.delete(entity); + + persistenceContext.commit(); + + } + public void saveEntity(TableMeta<EchoBaseUserEntityEnum> meta, Map<String, String> properties, EchoBaseUser user) { diff --git a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/DeleteEntity.java b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/DeleteEntity.java new file mode 100644 index 0000000..2d80957 --- /dev/null +++ b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/DeleteEntity.java @@ -0,0 +1,63 @@ +package fr.ifremer.echobase.ui.actions.dbeditor; + +import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.services.service.DbEditorService; +import fr.ifremer.echobase.services.service.spatial.SpatialService; +import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; + +import javax.inject.Inject; + +/** + * Created on 12/8/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 2.6.1 + */ +public class DeleteEntity extends EchoBaseActionSupport { + + private static final long serialVersionUID = 1L; + + /** Type of entity to delete. */ + protected EchoBaseUserEntityEnum entityType; + + public void setEntityType(EchoBaseUserEntityEnum entityType) { + this.entityType = entityType; + } + + public EchoBaseUserEntityEnum getEntityType() { + return entityType; + } + + /** id of entity to delete. */ + protected String topiaId; + + public void setTopiaId(String topiaId) { + this.topiaId = topiaId; + } + + @Override + public String execute() throws Exception { + + try { + dbEditorService.deleteEntity(entityType, topiaId, getEchoBaseSession().getUser()); + addFlashMessage(t("echobase.info.delete.entity", entityType)); + } catch (EchoBaseTechnicalException e) { + throw e; + } catch (Exception e) { + addFlashError(t("echobase.error.delete.entity", entityType, topiaId)); + } + + return SUCCESS; + } + + //------------------------------------------------------------------------// + //-- Injected objects // + //------------------------------------------------------------------------// + + @Inject + protected transient DbEditorService dbEditorService; + + @Inject + protected transient SpatialService spatialService; +} diff --git a/echobase-ui/src/main/resources/config/struts-dbeditor.xml b/echobase-ui/src/main/resources/config/struts-dbeditor.xml index dbe59e9..c571650 100644 --- a/echobase-ui/src/main/resources/config/struts-dbeditor.xml +++ b/echobase-ui/src/main/resources/config/struts-dbeditor.xml @@ -69,6 +69,12 @@ <result name="success" type="redirectToDbEditor"/> </action> + <!-- Delete the modified entity (no result as a grid json edit action)--> + <action name="deleteTableData" + class="fr.ifremer.echobase.ui.actions.dbeditor.DeleteEntity"> + <result name="success" type="redirectToDbEditor"/> + </action> + <!-- Import some entities from a csv file --> <action name="doImport" class="fr.ifremer.echobase.ui.actions.dbeditor.ImportTable"> diff --git a/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties b/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties index c8f613e..955a24f 100644 --- a/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties +++ b/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties @@ -14,6 +14,7 @@ echobase.action.createWorkingDbConfiguration=Save echobase.action.delete=Delete echobase.action.delete.selectedImport=Delete selected imports echobase.action.deleteConfiguration=Delete +echobase.action.deleteEntity=Delete echobase.action.downloadEmbeddedApplicationFile=Download the portable database echobase.action.downloadExportCoserFile=Download Coser export file echobase.action.downloadExportDbFile=Download database export file @@ -67,6 +68,7 @@ echobase.common.cellRegionResultFile= echobase.common.cellRegionsFile= echobase.common.comment=Comment echobase.common.communityIndicator=Community indicators +echobase.common.confirmDelete=Confirm to delete selected data echobase.common.dataCentre=Data center echobase.common.dataCentreEmail=Data center email echobase.common.dataProcessing=DataProcessing diff --git a/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties b/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties index 505571e..a757f8c 100644 --- a/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties +++ b/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties @@ -14,6 +14,7 @@ echobase.action.createWorkingDbConfiguration=Enregistrer echobase.action.delete=Suppression echobase.action.delete.selectedImport=Supprimer les imports sélectionnés echobase.action.deleteConfiguration=Supprimer +echobase.action.deleteEntity=Supprimer echobase.action.downloadEmbeddedApplicationFile=Télécharger l'application embarquée echobase.action.downloadExportCoserFile=Télécharger le fichier d'export Coser echobase.action.downloadExportDbFile=Télécharger le fichier d'export de la base complète @@ -67,6 +68,7 @@ echobase.common.cellRegionResultFile= echobase.common.cellRegionsFile= echobase.common.comment=Commentaire echobase.common.communityIndicator=indicateurs de communauté +echobase.common.confirmDelete=Confirmer la suppression de la donnée echobase.common.dataCentre=Centre de données echobase.common.dataCentreEmail=Courriel du centre de données echobase.common.dataProcessing=DataProcessing @@ -172,6 +174,7 @@ echobase.common.zone=Zone (Coser) echobase.confirm.delete.query=Confirmer la suppression de la requête echobase.confirm.delete.selected.importData=Confirmer la suppression des imports sélectionnés echobase.confirm.delete.workingDbConfiguration=Confirmer la suppression de la configuration suivante +echobase.error.delete.entity=Impossible de supprimer la donnée de type '%s' et d'identifiant '%s' (elle est probablement utilisée ailleurs). echobase.error.email.already.used=Nom d'utilisateur déjà utilisé echobase.error.export.description.requiredstring=La description de l'export est obligatoire echobase.error.export.name.requiredstring=Le nom de l'export est obligatoire @@ -259,6 +262,7 @@ echobase.info.click.to.select=Vous pouvez sélectionner la valeur en un simple c echobase.info.createEmbedded.failed=Création de l'application embarqué réussi echobase.info.createEmbedded.succeded=Création de l'application embarqué a échoué echobase.info.dbeditor.propertyDiffsResult=Résultat d'import de données +echobase.info.delete.entity=La donnée de type '%s' a été supprimée echobase.info.documentation=Documentation en ligne d'EchoBase echobase.info.downloadFiles=Télécharger l'application ou des fichiers d'imports echobase.info.echoR=Projet EchoR diff --git a/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp b/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp index 409277b..0366ac1 100644 --- a/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp +++ b/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp @@ -378,6 +378,10 @@ <li><s:submit name="submitAction" key="echobase.action.save" action="editTableData" theme="simple"/> </li> + <li> + <s:submit name="deleteAction" key="echobase.action.deleteEntity" action="deleteTableData" theme="simple" + onclick="return confirm(\"%{getText('echobase.common.confirmDelete')}\");"/> + </li> </ul> </div> </s:if> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.