From 0921798d9f471beb900da9cb48c85facadd6b448 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Thu, 16 Apr 2020 16:09:25 +0200 Subject: [PATCH] OO-4641: explain delete operations in taxonomy administration --- .../ui/DeleteTaxonomyLevelController.java | 26 +++++++++++++++---- .../ui/_i18n/LocalStrings_de.properties | 7 +++-- .../ui/_i18n/LocalStrings_en.properties | 5 +++- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/olat/modules/taxonomy/ui/DeleteTaxonomyLevelController.java b/src/main/java/org/olat/modules/taxonomy/ui/DeleteTaxonomyLevelController.java index d3b74310c55..0aa5e2f2fee 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/DeleteTaxonomyLevelController.java +++ b/src/main/java/org/olat/modules/taxonomy/ui/DeleteTaxonomyLevelController.java @@ -194,7 +194,8 @@ public class DeleteTaxonomyLevelController extends FormBasicController { @Override protected void formOK(UserRequest ureq) { - StringBuilder sb = new StringBuilder(); + StringBuilder deletedLevels = new StringBuilder(); + StringBuilder notDeletedLevels = new StringBuilder(); if(levels.size() > 1) { Collections.sort(levels, new TaxonomyLevelDepthComparator()); @@ -210,14 +211,29 @@ public class DeleteTaxonomyLevelController extends FormBasicController { for(TaxonomyLevel level:levels) { TaxonomyLevel taxonomyLevel = taxonomyService.getTaxonomyLevel(level); if(taxonomyService.deleteTaxonomyLevel(taxonomyLevel, mergeTo)) { - if(sb.length() > 0) sb.append(", "); - sb.append(StringHelper.escapeHtml(taxonomyLevel.getDisplayName())); + if(deletedLevels.length() > 0) deletedLevels.append(", "); + deletedLevels.append(StringHelper.escapeHtml(taxonomyLevel.getDisplayName())); + } else { + if(notDeletedLevels.length() > 0) notDeletedLevels.append(", "); + notDeletedLevels.append(StringHelper.escapeHtml(taxonomyLevel.getDisplayName())); } } dbInstance.commit();//commit before sending event fireEvent(ureq, new DeleteTaxonomyLevelEvent()); - showInfo("confirm.deleted.level", new String[] { sb.toString() }); - + + if(notDeletedLevels.length() == 0) { + showInfo("confirm.deleted.level", new String[] { deletedLevels.toString() }); + } else if(deletedLevels.length() == 0) { + if(levels.size() == 1) { + showWarning("warning.delete.level"); + } else { + showWarning("warning.deleted.level.nothing"); + } + } else { + showWarning("warning.deleted.level.partial", new String[] { + deletedLevels.toString(), notDeletedLevels.toString() }); + } + fireEvent(ureq, Event.DONE_EVENT); } diff --git a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties index e6c2fcf1c12..c52673d887b 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties @@ -138,8 +138,11 @@ tools=$\:table.header.actions type.taxonomy.level=Ebenentyp zuweisen warning.atleastone.level=Sie m\u00fcssen mindestens eine Ebene w\u00e4hlen dass Sie editieren d\u00fcrfen. warning.atleastone.level.competence=Sie m\u00fcssen mindestens eine Ebene w\u00e4hlen. -warning.delete.level=Die Ebene darf nicht gel\u00f6scht werden. Sie wird noch benutzt. -warning.delete.level.type=Der Ebenentype wurde nicht gel\u00f6scht. Er ist noch benutzt. +warning.delete.level.explain=(in Kompentenz, in einem Lernressource oder hat noch Unterebene). +warning.delete.level=Die Ebene darf nicht gel\u00f6scht werden. Sie wird noch benutzt $\:warning.delete.level.explain +warning.delete.level.type=Der Ebenentype wurde nicht gel\u00F6scht. Er ist noch benutzt. +warning.deleted.level.nothing=Die Ebenen konnten nicht gel\u00F6scht werden. Sie sind noch benutzt $\:warning.delete.level.explain +warning.deleted.level.partial=Nicht alle Ebene konnte gel\u00F6scht werden. "{0}" wurde(n) erfolgreich gel\u00F6scht aber "{1}" konnte(n) nicht gel\u00F6scht werden weil sie noch benutzt sind $\:warning.delete.level.explain warning.taxonomy.level.deleted=Diese Taxonomieebene ist nicht mehr verf\u00fcgbar. warning.taxonomy.level.type.deleted=Dieser Ebenentype ist nicht mehr verf\u00fcgbar. zoom=<i class='o_icon o_icon-fw o_icon_enlarge'> </i> diff --git a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties index 02f794d965b..4d55e7ce9da 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties @@ -138,8 +138,11 @@ tools=$\:table.header.actions type.taxonomy.level=Assign level type warning.atleastone.level=You must at least one taxonomy level you can edit. warning.atleastone.level.competence=You must at least one taxonomy level. -warning.delete.level=The level cannot be deleted because it is still in use. +warning.delete.level.explain=(in competence, in a learn resource or has a child level). +warning.delete.level=The level cannot be deleted because it is still in use $\:warning.delete.level.explain warning.delete.level.type=The level type "{0}" was not deleted because it is still in use. +warning.deleted.level.nothing=The levels cannot be deleted because they are still in use $\:warning.delete.level.explain +warning.deleted.level.partial=Not all levels was successfully deleted. "{0}" was successfully deleted but "{1}" cannot be deleted because they are still in use $\:warning.delete.level.explain warning.taxonomy.level.deleted=This taxonomy level is no longer available. warning.taxonomy.level.type.deleted=This level type is no longer available. zoom=<i class='o_icon o_icon-fw o_icon_enlarge'> </i> -- GitLab