diff --git a/src/main/java/org/olat/admin/user/tools/UserTool.java b/src/main/java/org/olat/admin/user/tools/UserTool.java index b6dafd5902f5d58cd108df5212dc205c691b4af9..c3e883d7f9259b491b48bf28838d609dbc7c7699 100644 --- a/src/main/java/org/olat/admin/user/tools/UserTool.java +++ b/src/main/java/org/olat/admin/user/tools/UserTool.java @@ -34,7 +34,7 @@ public class UserTool { private final String label; public UserTool(GenericActionExtension gAe, Locale locale) { - key = gAe.getUniqueExtensionID(); + key = UserToolsModule.stripToolKey(gAe.getUniqueExtensionID()); label = gAe.getActionText(locale); } diff --git a/src/main/java/org/olat/admin/user/tools/UserToolsModule.java b/src/main/java/org/olat/admin/user/tools/UserToolsModule.java index e59a664da7e6455c9f4fc5364ff851abb5fdaca6..cec6b2f50c62007fb84c4a18456f9b00fa415ad8 100644 --- a/src/main/java/org/olat/admin/user/tools/UserToolsModule.java +++ b/src/main/java/org/olat/admin/user/tools/UserToolsModule.java @@ -112,11 +112,22 @@ public class UserToolsModule extends AbstractSpringModule { if(StringHelper.containsNonWhitespace(availableUserTools)) { String[] tools = availableUserTools.split(","); for(String tool:tools) { - toolSet.add(tool); + toolSet.add(stripToolKey(tool)); } } return toolSet; } + + public static String stripToolKey(String uniqueExtensionId) { + String toolKey = uniqueExtensionId; + if(toolKey.startsWith("org.olat.home.HomeMainController")) { + int nextIndex = toolKey.indexOf(":", "org.olat.home.HomeMainController".length() + 2); + if(nextIndex > 0) { + toolKey = toolKey.substring(0, nextIndex); + } + } + return toolKey; + } public void setAvailableUserTools(String tools) { availableUserTools = tools; @@ -132,7 +143,7 @@ public class UserToolsModule extends AbstractSpringModule { if(StringHelper.containsNonWhitespace(defaultPresetOfUserTools)) { String[] tools = defaultPresetOfUserTools.split(","); for(String tool:tools) { - toolSet.add(tool); + toolSet.add(stripToolKey(tool)); } } return toolSet; diff --git a/src/main/java/org/olat/gui/control/OlatTopNavController.java b/src/main/java/org/olat/gui/control/OlatTopNavController.java index 05fa7212c07f2fd95a700287ba10407a357aed95..9bb36601a95ef9334b0ac922e773015b7005ae45 100644 --- a/src/main/java/org/olat/gui/control/OlatTopNavController.java +++ b/src/main/java/org/olat/gui/control/OlatTopNavController.java @@ -229,7 +229,7 @@ public class OlatTopNavController extends BasicController implements GenericEven if(StringHelper.containsNonWhitespace(selectedTools)) { String[] selectedToolArr = selectedTools.split(","); for(String selectedTool:selectedToolArr) { - selectedToolSet.add(selectedTool); + selectedToolSet.add(UserToolsModule.stripToolKey(selectedTool)); } } @@ -240,7 +240,7 @@ public class OlatTopNavController extends BasicController implements GenericEven ExtensionElement ae = anExt.getExtensionFor(HomeMainController.class.getName(), ureq); if (anExt.isEnabled() && ae instanceof GenericActionExtension) { GenericActionExtension gAe = (GenericActionExtension) ae; - String extensionId = gAe.getUniqueExtensionID(); + String extensionId = UserToolsModule.stripToolKey(gAe.getUniqueExtensionID()); if(availableToolSet.isEmpty() || availableToolSet.contains(extensionId)) { GenericTreeNode node = gAe.createMenuNode(ureq); String linkName = "personal.tool." + node.getIdent(); diff --git a/src/main/java/org/olat/user/ToolsPrefsController.java b/src/main/java/org/olat/user/ToolsPrefsController.java index 3b2dbabb2a73ca387e250343ca82369556b58a09..07a2e627522a6089ae2c9e2cda3fafc00333e6f7 100644 --- a/src/main/java/org/olat/user/ToolsPrefsController.java +++ b/src/main/java/org/olat/user/ToolsPrefsController.java @@ -161,6 +161,7 @@ public class ToolsPrefsController extends FormBasicController { String[] selectedToolArr = selectedTools.split(","); keyloop: for (String toolKey:presetEl.getKeys()) { for(String selectedTool:selectedToolArr) { + selectedTool = UserToolsModule.stripToolKey(selectedTool); if(toolKey.equals(selectedTool)) { presetEl.select(toolKey, true); continue keyloop;