From e15d6638659aa3f35c9ff6563061733aafca84d9 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Fri, 9 Feb 2018 08:38:57 +0100 Subject: [PATCH] OO-3274: fix more issues with deleting taxonomy level, alone or concurrently --- .../ui/TaxonomyLevelOverviewController.java | 4 +-- .../ui/TaxonomyLevelTypesEditController.java | 2 +- .../ui/TaxonomyTreeTableController.java | 25 +++++++++++++------ .../ui/_i18n/LocalStrings_de.properties | 3 +++ .../ui/_i18n/LocalStrings_en.properties | 3 +++ .../ui/_i18n/LocalStrings_fr.properties | 4 ++- 6 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelOverviewController.java b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelOverviewController.java index 65b98b210d8..3b57a959d98 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelOverviewController.java +++ b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelOverviewController.java @@ -129,8 +129,6 @@ public class TaxonomyLevelOverviewController extends BasicController implements protected void doDispose() { // } - - @Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { @@ -159,7 +157,7 @@ public class TaxonomyLevelOverviewController extends BasicController implements fireEvent(ureq, Event.CANCELLED_EVENT); } } else if(confirmDeleteCtrl == source) { - if(event == Event.DONE_EVENT) { + if(event == Event.DONE_EVENT || event == Event.CHANGED_EVENT || event instanceof DeleteTaxonomyLevelEvent) { fireEvent(ureq, new DeleteTaxonomyLevelEvent()); } cmc.deactivate(); diff --git a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelTypesEditController.java b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelTypesEditController.java index f4f50e20e4d..7579dbaeb50 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelTypesEditController.java +++ b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelTypesEditController.java @@ -212,7 +212,7 @@ public class TaxonomyLevelTypesEditController extends FormBasicController implem TaxonomyLevelType type = taxonomyService.getTaxonomyLevelType(row); if(type == null) { tableEl.reloadData(); - showWarning("repositoryentry.not.existing"); + showWarning("warning.taxonomy.level.type.deleted"); } else { toolsCtrl = new ToolsController(ureq, getWindowControl(), row, type); listenTo(toolsCtrl); diff --git a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java index 90a431570c4..773385b2476 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java +++ b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java @@ -221,7 +221,10 @@ public class TaxonomyTreeTableController extends FormBasicController implements for(TaxonomyLevelRow row:rows) { if(levelKey.equals(row.getKey())) { List<ContextEntry> subEntries = entries.subList(1, entries.size()); - doSelectTaxonomyLevel(ureq, row).activate(ureq, subEntries, entries.get(0).getTransientState()); + TaxonomyLevelOverviewController ctrl = doSelectTaxonomyLevel(ureq, row); + if(ctrl != null) { + ctrl.activate(ureq, subEntries, entries.get(0).getTransientState()); + } break; } } @@ -380,12 +383,18 @@ public class TaxonomyTreeTableController extends FormBasicController implements } private TaxonomyLevelOverviewController doSelectTaxonomyLevel(UserRequest ureq, TaxonomyLevel taxonomyLevel) { - OLATResourceable ores = OresHelper.createOLATResourceableInstance("TaxonomyLevel", taxonomyLevel.getKey()); - WindowControl bwControl = addToHistory(ureq, ores, null); - TaxonomyLevelOverviewController detailsLevelCtrl = new TaxonomyLevelOverviewController(ureq, bwControl, taxonomyLevel); - listenTo(detailsLevelCtrl); - stackPanel.pushController(taxonomyLevel.getDisplayName(), detailsLevelCtrl); - return detailsLevelCtrl; + if(taxonomyLevel == null) { + showWarning("warning.taxonomy.level.deleted"); + loadModel(false, false); + return null; + } else { + OLATResourceable ores = OresHelper.createOLATResourceableInstance("TaxonomyLevel", taxonomyLevel.getKey()); + WindowControl bwControl = addToHistory(ureq, ores, null); + TaxonomyLevelOverviewController detailsLevelCtrl = new TaxonomyLevelOverviewController(ureq, bwControl, taxonomyLevel); + listenTo(detailsLevelCtrl); + stackPanel.pushController(taxonomyLevel.getDisplayName(), detailsLevelCtrl); + return detailsLevelCtrl; + } } private void doNewLevel(UserRequest ureq) { @@ -410,7 +419,7 @@ public class TaxonomyTreeTableController extends FormBasicController implements TaxonomyLevel level = taxonomyService.getTaxonomyLevel(row); if(level == null) { tableEl.reloadData(); - showWarning("repositoryentry.not.existing"); + showWarning("warning.taxonomy.level.deleted"); } else { toolsCtrl = new ToolsController(ureq, getWindowControl(), row, level); listenTo(toolsCtrl); 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 99f760944e6..4ec9b8b6561 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 @@ -133,3 +133,6 @@ warning.atleastone.level=Sie m\u00FCssen mindestens eine Ebene w\u00E4hlen dass 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.taxonomy.level.deleted=Diese Taxonomieebene ist nicht mehr verf\u00FCgbar. +warning.taxonomy.level.type.deleted=Dieser Ebenentype ist nicht mehr verf\u00FCgbar. + 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 deb3aa8c706..689de6e984c 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 @@ -133,3 +133,6 @@ 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.type=The level type "{0}" was not deleted because it is still in use. +warning.taxonomy.level.deleted=This taxonomy level is no longer available. +warning.taxonomy.level.type.deleted=This level type is no longer available. + diff --git a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_fr.properties index c6034489631..6674ac7042b 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_fr.properties @@ -132,4 +132,6 @@ type.taxonomy.level=Attribuer un type de niveau warning.atleastone.level=Vous devez s\u00E9lectionner au moins un niveau que vous pouvez \u00E9diter. warning.atleastone.level.competence=Vous devez s\u00E9lectionner au moins un niveau. warning.delete.level=Ce niveau de la taxonomie ne peut pas \u00EAtre effac\u00E9 car il est encore utilis\u00E9. -warning.delete.level.type=Le niveau de la taxonomie n'a pas \u00E9t\u00E9 effac\u00E9 car il est encore utilis\u00E9. +warning.delete.level.type=Le type de niveau de la taxonomie n'a pas \u00E9t\u00E9 effac\u00E9 car il est encore utilis\u00E9. +warning.taxonomy.level.deleted=La niveau de la taxonomie n'est plus disponible. +warning.taxonomy.level.type.deleted=Le type de niveau n'est plus disponible. -- GitLab