From 8bcf4cb97e89cd56fb964bb891f5b7a71311e1b5 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Fri, 26 Aug 2016 10:04:16 +0200 Subject: [PATCH] OO-2141: better handle of urls of already open tabs --- .../fullWebApp/BaseFullWebappController.java | 2 +- .../olat/course/run/CourseRuntimeController.java | 13 +++++++++++++ .../java/org/olat/course/run/RunMainController.java | 5 +++++ .../group/ui/homepage/GroupInfoMainController.java | 5 ++++- .../ui/run/BusinessGroupMainRunController.java | 8 +++++++- 5 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java index af90cd37ce2..e642f100c7c 100644 --- a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java +++ b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java @@ -1173,7 +1173,7 @@ public class BaseFullWebappController extends BasicController implements DTabs, } doActivateDTab(dtabi); - if(entries != null && !entries.isEmpty() && c instanceof Activateable2) { + if(c instanceof Activateable2) { final Activateable2 activateable = ((Activateable2) c); activateable.activate(ureq, entries, null); } diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java index 044ec3fd6db..236d46b19f1 100644 --- a/src/main/java/org/olat/course/run/CourseRuntimeController.java +++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java @@ -886,6 +886,19 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im @Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { + if(entries == null || entries.isEmpty()) { + if(currentToolCtr != null) { + addToHistory(ureq, currentToolCtr); + } else { + Controller runtimeCtrl = getRuntimeController(); + if(runtimeCtrl instanceof Activateable2) { + ((Activateable2)runtimeCtrl).activate(ureq, entries, state); + } else { + addToHistory(ureq, runtimeCtrl); + } + } + return; + } entries = removeRepositoryEntry(entries); if(entries != null && entries.size() > 0) { diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java index 75842b3245c..d2b680a66d3 100644 --- a/src/main/java/org/olat/course/run/RunMainController.java +++ b/src/main/java/org/olat/course/run/RunMainController.java @@ -820,6 +820,11 @@ public class RunMainController extends MainLayoutBasicController implements Gene @Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { if(entries == null || entries.isEmpty()) { + if(currentNodeController != null) { + addToHistory(ureq, currentNodeController); + } else { + addToHistory(ureq, this); + } return; } diff --git a/src/main/java/org/olat/group/ui/homepage/GroupInfoMainController.java b/src/main/java/org/olat/group/ui/homepage/GroupInfoMainController.java index 43fb231e392..280d59c4934 100644 --- a/src/main/java/org/olat/group/ui/homepage/GroupInfoMainController.java +++ b/src/main/java/org/olat/group/ui/homepage/GroupInfoMainController.java @@ -117,7 +117,10 @@ public class GroupInfoMainController extends MainLayoutBasicController implement @Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { - if(entries == null || entries.isEmpty()) return; + if(entries == null || entries.isEmpty()) { + addToHistory(ureq); + return; + } ContextEntry entry = entries.get(0); String menuItem = entry.getOLATResourceable().getResourceableTypeName(); diff --git a/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java b/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java index 6c1b80b8c4c..d622a6b8426 100644 --- a/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java +++ b/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java @@ -902,7 +902,13 @@ public class BusinessGroupMainRunController extends MainLayoutBasicController im @Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { - if(entries == null || entries.isEmpty() || needActivation) return; + if(needActivation) { + return; + } + if(entries == null || entries.isEmpty()) { + addToHistory(ureq); + return; + } // release edit lock if available removeAsListenerAndDispose(bgEditCntrllr); -- GitLab