From ca86d7409346aa8518f0c67ce3a1e15305faa280 Mon Sep 17 00:00:00 2001
From: aboeckle <alexander.boeckle@frentix.com>
Date: Fri, 4 Sep 2020 10:17:17 +0200
Subject: [PATCH] OO-4678: Reload catalog on config change and i18n change

---
 .../ui/admin/CatalogAdminController.java      | 22 +++++++++----------
 .../ui/admin/_i18n/LocalStrings_de.properties |  6 ++---
 .../ui/admin/_i18n/LocalStrings_en.properties |  6 ++---
 .../catalog/CatalogNodeManagerController.java | 13 ++++++++---
 4 files changed, 27 insertions(+), 20 deletions(-)

diff --git a/src/main/java/org/olat/repository/ui/admin/CatalogAdminController.java b/src/main/java/org/olat/repository/ui/admin/CatalogAdminController.java
index e4874d5c362..2e220017c90 100644
--- a/src/main/java/org/olat/repository/ui/admin/CatalogAdminController.java
+++ b/src/main/java/org/olat/repository/ui/admin/CatalogAdminController.java
@@ -88,17 +88,6 @@ public class CatalogAdminController extends FormBasicController {
 		String[] addEntryKeys = {AddEntryPosition.alphabetical.name(), AddEntryPosition.top.name(), AddEntryPosition.bottom.name()};
 		String[] addEntryValues = {translate("catalog.add.position." + AddEntryPosition.alphabetical.name()), translate("catalog.add.position." + AddEntryPosition.top.name()), translate("catalog.add.position." + AddEntryPosition.bottom.name())};
 
-		addEntryPosEl = uifactory.addDropdownSingleselect("catalog.add.entry.position", "catalog.add.entry.position", formLayout, addEntryKeys, addEntryValues);
-		if (repositoryModule.getCatalogAddEntryPosition() == 2) {
-			addEntryPosEl.select(AddEntryPosition.bottom.name(), true);
-		} else if (repositoryModule.getCatalogAddEntryPosition() == 1) {
-			addEntryPosEl.select(AddEntryPosition.top.name(), true);
-		} else {
-			addEntryPosEl.select(AddEntryPosition.alphabetical.name(), true);
-		}
-		addEntryPosEl.setEnabled(enabled);
-		addEntryPosEl.addActionListener(FormEvent.ONCHANGE);
-
 		addCategoryPosEl = uifactory.addDropdownSingleselect("catalog.add.category.position", "catalog.add.category.position", formLayout, addEntryKeys, addEntryValues);
 		if (repositoryModule.getCatalogAddCategoryPosition() == 2) {
 			addCategoryPosEl.select(AddEntryPosition.bottom.name(), true);
@@ -110,6 +99,17 @@ public class CatalogAdminController extends FormBasicController {
 
 		addCategoryPosEl.setEnabled(enabled);
 		addCategoryPosEl.addActionListener(FormEvent.ONCHANGE);
+
+		addEntryPosEl = uifactory.addDropdownSingleselect("catalog.add.entry.position", "catalog.add.entry.position", formLayout, addEntryKeys, addEntryValues);
+		if (repositoryModule.getCatalogAddEntryPosition() == 2) {
+			addEntryPosEl.select(AddEntryPosition.bottom.name(), true);
+		} else if (repositoryModule.getCatalogAddEntryPosition() == 1) {
+			addEntryPosEl.select(AddEntryPosition.top.name(), true);
+		} else {
+			addEntryPosEl.select(AddEntryPosition.alphabetical.name(), true);
+		}
+		addEntryPosEl.setEnabled(enabled);
+		addEntryPosEl.addActionListener(FormEvent.ONCHANGE);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_de.properties
index 1f57933508b..1b23fc08ebe 100644
--- a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_de.properties
@@ -5,9 +5,9 @@ admin.menu.title.alt=Katalog
 catalog.add.entry.position=Neue Eintr\u00e4ge hinzuf\u00fcgen
 catalog.add.category.position=Neue Kategorien hinzuf\u00fcgen
 catalog.add.multiple.entries=Mehrere Eintr\u00e4ge zusammen hinzuf\u00fcgen
-catalog.add.position.alphabetical=Alphabtisch
-catalog.add.position.bottom=Am Ende
-catalog.add.position.top=Am Anfang
+catalog.add.position.alphabetical=Automatische Sortierung - Alphabtisch
+catalog.add.position.bottom=Manuelle Sortierung - Am Ende
+catalog.add.position.top=Manuelle Sortierung - Am Anfang
 catalog.browsing=Katalog in "Kurse"
 catalog.enable=Katalog einschalten
 catalog.site=Katalog in eigener Site
diff --git a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_en.properties
index f64f464baaa..6bf50da8587 100644
--- a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_en.properties
@@ -5,9 +5,9 @@ admin.menu.title.alt=Catalog
 catalog.add.entry.position=Add new entries
 catalog.add.category.position=Add new categories
 catalog.add.multiple.entries=Add multiple entries at once
-catalog.add.position.alphabetical=Alphabetical
-catalog.add.position.bottom=At the end
-catalog.add.position.top=At the beginning
+catalog.add.position.alphabetical=Automatic sorting - Alphabetical
+catalog.add.position.bottom=Manual sorting - At the end
+catalog.add.position.top=Manual sorting - At the beginning
 catalog.enable=Enable catalog
 catalog.browsing=Catalog in "Courses"
 catalog.site=Catalog in its own site
diff --git a/src/main/java/org/olat/repository/ui/catalog/CatalogNodeManagerController.java b/src/main/java/org/olat/repository/ui/catalog/CatalogNodeManagerController.java
index 42f0196bcc3..d717d95e8ad 100644
--- a/src/main/java/org/olat/repository/ui/catalog/CatalogNodeManagerController.java
+++ b/src/main/java/org/olat/repository/ui/catalog/CatalogNodeManagerController.java
@@ -906,6 +906,8 @@ public class CatalogNodeManagerController extends FormBasicController implements
 	protected void event(UserRequest ureq, Controller source, Event event) {
 		if(addEntryCtrl == source) {
 			if(event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
+				loadEntryInfos();
+				loadResources(ureq);
 				loadNodesChildren();
 			}
 			cmc.deactivate();
@@ -914,8 +916,9 @@ public class CatalogNodeManagerController extends FormBasicController implements
 		} else if(editEntryCtrl == source) {
 			if(event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
 				catalogEntry = editEntryCtrl.getEditedCatalogEntry();
-				loadNodesChildren();
 				loadEntryInfos();
+				loadResources(ureq);
+				loadNodesChildren();
 			}
 			cmc.deactivate();
 			cleanUp();
@@ -929,8 +932,10 @@ public class CatalogNodeManagerController extends FormBasicController implements
 				moveMe = categoryMoveCtrl.getMoveMe();
 			} else if(event.equals(Event.FAILED_EVENT)){
 				showError("tools.move.catalog.entry.failed");
-				loadNodesChildren();
 			}
+			loadEntryInfos();
+			loadResources(ureq);
+			loadNodesChildren();
 			cleanUp();
 			
 			// in any case, remove the lock
@@ -959,7 +964,9 @@ public class CatalogNodeManagerController extends FormBasicController implements
 				toolbarPanel.popUpToController(this);
 				removeAsListenerAndDispose(childNodeCtrl);
 				childNodeCtrl = null;
-				
+
+				loadEntryInfos();
+				loadResources(ureq);
 				loadNodesChildren();
 			}
 		} else if(entrySearchCtrl == source) {
-- 
GitLab