Author: bleny Date: 2014-04-01 16:13:54 +0200 (Tue, 01 Apr 2014) New Revision: 1789 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1789 Log: display explanation when IllegalDeletionException is raised Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalDeletionException.java trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/DeleteCompanyAction.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/DeleteWaoUserAction.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/DeleteSampleRowAction.java Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalDeletionException.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalDeletionException.java 2014-04-01 13:34:10 UTC (rev 1788) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalDeletionException.java 2014-04-01 14:13:54 UTC (rev 1789) @@ -21,10 +21,17 @@ * #L% */ +import com.google.common.collect.ImmutableMap; import fr.ifremer.wao.WaoException; +import fr.ifremer.wao.entity.Contact; +import fr.ifremer.wao.entity.News; +import fr.ifremer.wao.entity.SampleRow; +import fr.ifremer.wao.entity.WaoUser; +import org.nuiton.i18n.I18n; import org.nuiton.topia.persistence.TopiaEntity; import java.util.List; +import java.util.Locale; import java.util.Map; /** @@ -33,6 +40,14 @@ */ public class IllegalDeletionException extends WaoException { + protected static final ImmutableMap<Class<? extends TopiaEntity>, String> ENTITIES_I18N_KEYS = + ImmutableMap.of( + Contact.class, I18n.n("wao.action.delete.failure.attachedContacts"), + SampleRow.class, I18n.n("wao.action.delete.failure.attachedSampleRows"), + News.class, I18n.n("wao.action.delete.failure.attachedNews"), + WaoUser.class, I18n.n("wao.action.delete.failure.attachedWaoUsers") + ); + /** Les types d'entités qui utilisent l'entité qu'on ne peut pas supprimer. */ private Map<Class<? extends TopiaEntity>, List<? extends TopiaEntity>> allUsages; @@ -44,4 +59,12 @@ return allUsages; } + public String getExplanation(Locale locale) { + StringBuilder explanationBuilder = new StringBuilder(); + for (Class<? extends TopiaEntity> aClass : allUsages.keySet()) { + explanationBuilder.append(I18n.l(locale, ENTITIES_I18N_KEYS.get(aClass))); + } + return explanationBuilder.toString(); + } + } Modified: trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties =================================================================== --- trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-04-01 13:34:10 UTC (rev 1788) +++ trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-04-01 14:13:54 UTC (rev 1789) @@ -9,6 +9,10 @@ csv.import.error.unrecognizedHeaders=Fields %s are not recognized. Accepted fields are %s. csv.import.logComment=Edited through import fr.ifremer.wao.services.service.mail.UserCredentialsEmail.subject=Your Wao credentials +wao.action.delete.failure.attachedContacts=Object is attached to some contacts. +wao.action.delete.failure.attachedNews=Object is attached to some news. +wao.action.delete.failure.attachedSampleRows=Object is attached to some sample rows. +wao.action.delete.failure.attachedWaoUsers=Object is attached to some users. wao.business.boat.validation.immatriculation.wrongFormat=The boat registry number must be composed of 6 digits wao.business.contact.validation.commentAdminNecessaryForDataReliability=You must precise in admin comment why data reliability is '%s' wao.business.contact.validation.commentMissingForState=You must give a comment for state '%s' Modified: trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties =================================================================== --- trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-04-01 13:34:10 UTC (rev 1788) +++ trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-04-01 14:13:54 UTC (rev 1789) @@ -9,6 +9,10 @@ csv.import.error.unrecognizedHeaders=Les champs %s ne sont pas reconnus. Les champs possibles sont %s. csv.import.logComment=Modification depuis import fr.ifremer.wao.services.service.mail.UserCredentialsEmail.subject=Informations de connexion Wao +wao.action.delete.failure.attachedContacts=L'objet est lié à des contacts. +wao.action.delete.failure.attachedNews=L'objet est lié à des actualités. +wao.action.delete.failure.attachedSampleRows=L'objet est lié à des lignes du plan. +wao.action.delete.failure.attachedWaoUsers=L'objet est lié à des utilisateurs. wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit être formée de 6 chiffres wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut préciser dans le commentaire administrateur pourquoi la donnée est '%s' wao.business.contact.validation.commentMissingForState=Il faut préciser un commentaire pour l'état '%s' Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/DeleteCompanyAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/DeleteCompanyAction.java 2014-04-01 13:34:10 UTC (rev 1788) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/DeleteCompanyAction.java 2014-04-01 14:13:54 UTC (rev 1789) @@ -60,8 +60,8 @@ } catch (IllegalDeletionException e) { - // TODO brendan 04/03/14 préciser le problème session.addErrorMessages(t("wao.ui.action.deleteCompany.failure")); + session.addErrorMessages(e.getExplanation(getLocale())); return ERROR; Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/DeleteWaoUserAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/DeleteWaoUserAction.java 2014-04-01 13:34:10 UTC (rev 1788) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/DeleteWaoUserAction.java 2014-04-01 14:13:54 UTC (rev 1789) @@ -60,8 +60,8 @@ } catch (IllegalDeletionException e) { - // TODO brendan 04/03/14 préciser le problème session.addErrorMessages(t("wao.ui.action.deleteWaoUser.failure")); + session.addErrorMessages(e.getExplanation(getLocale())); return ERROR; Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/DeleteSampleRowAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/DeleteSampleRowAction.java 2014-04-01 13:34:10 UTC (rev 1788) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/DeleteSampleRowAction.java 2014-04-01 14:13:54 UTC (rev 1789) @@ -8,7 +8,7 @@ @Results({ @Result(name="error", type="redirectAction", params = { "actionName", "edit-sample-row!input", "sampleRowId", "%{sampleRowId}" }), - @Result(name="success", type="redirectAction", params = { "actionName", "edit-sample-row!input", "sampleRowId", "%{sampleRowId}" }) + @Result(name="success", type="redirectAction", params = { "actionName", "sampling-plan" }) }) public class DeleteSampleRowAction extends WaoJspActionSupport { @@ -41,8 +41,8 @@ } catch (IllegalDeletionException e) { - // TODO brendan 04/03/14 préciser le problème session.addErrorMessages(t("wao.ui.action.deleteSampleRow.failure", sampleRowCode)); + session.addErrorMessages(e.getExplanation(getLocale())); return ERROR;