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 fe23b8bd602129c9cda811f6ae4b9bf79ecef2a0..2d54269f507c4a90df60b178895eb11572594db5 100644 --- a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java +++ b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java @@ -918,7 +918,7 @@ public class BaseFullWebappController extends BasicController implements DTabs, sb.append(Formatter.escapeDoubleQuotes(repoentryid)); sb.append("');"); } - sb.append("}catch(e){}"); + sb.append("oobody=null;}catch(e){}"); JSCommand jsc = new JSCommand(sb.toString()); WindowControl wControl = getWindowControl(); if (wControl != null && wControl.getWindowBackOffice() != null) { diff --git a/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java b/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java index fd134273a19b2c93aa5450cde145f10018e61e66..35f430aff60b1953cbf94bf3e25c9802e1ea4ecf 100644 --- a/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java +++ b/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java @@ -168,7 +168,8 @@ public class MenuTreeRenderer extends DefaultComponentRenderer { target.append(" active_parent"); } String ident = curRoot.getIdent(); - target.append("'><div id='dd").append(ident).append("' class='o_tree_l").append(level); + target.append("' data-nodeid='").append(ident).append("'>"); + target.append("<div id='dd").append(ident).append("' class='o_tree_l").append(level); if(tree.isDragEnabled() || tree.isDropEnabled()) { target.append(" o_dnd_item"); } diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java index 23077fa46c787a8d9661c705b837eda84d74fc38..f587518fdfcd11fc654683b99906b60908571055 100644 --- a/src/main/java/org/olat/course/run/RunMainController.java +++ b/src/main/java/org/olat/course/run/RunMainController.java @@ -55,12 +55,14 @@ import org.olat.core.gui.control.generic.messages.MessageController; import org.olat.core.gui.control.generic.messages.MessageUIFactory; import org.olat.core.gui.control.generic.textmarker.GlossaryMarkupItemController; import org.olat.core.gui.control.generic.title.TitledWrapperController; +import org.olat.core.gui.control.winmgr.JSCommand; import org.olat.core.id.Identity; import org.olat.core.id.OLATResourceable; import org.olat.core.id.context.ContextEntry; import org.olat.core.id.context.StateEntry; import org.olat.core.logging.activity.CourseLoggingAction; import org.olat.core.logging.activity.ThreadLocalUserActivityLogger; +import org.olat.core.util.Formatter; import org.olat.core.util.Util; import org.olat.core.util.coordinate.CoordinatorManager; import org.olat.core.util.event.GenericEventListener; @@ -446,6 +448,7 @@ public class RunMainController extends MainLayoutBasicController implements Gene } updateNextPrevious(); + updateCourseDataAttributes(nclr.getCalledCourseNode()); updateLastUsage(nclr.getCalledCourseNode()); return true; } @@ -458,6 +461,24 @@ public class RunMainController extends MainLayoutBasicController implements Gene } } } + + private void updateCourseDataAttributes(CourseNode calledCourseNode) { + StringBuilder sb = new StringBuilder(); + sb.append("try {var oocourse = jQuery('.o_course_run');"); + if (calledCourseNode == null) { + sb.append("oocourse.removeAttr('data-nodeid');"); + } else { + sb.append("oocourse.attr('data-nodeid','"); + sb.append(Formatter.escapeDoubleQuotes(calledCourseNode.getIdent())); + sb.append("');"); + } + sb.append("oocourse=null;}catch(e){}"); + JSCommand jsc = new JSCommand(sb.toString()); + WindowControl wControl = getWindowControl(); + if (wControl != null && wControl.getWindowBackOffice() != null) { + wControl.getWindowBackOffice().sendCommandTo(jsc); + } + } /** * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, @@ -627,7 +648,8 @@ public class RunMainController extends MainLayoutBasicController implements Gene getWindowControl().setWarning(translate("msg.nodenotavailableanymore")); // go to root since the current node is no more visible updateTreeAndContent(ureq, null, null); - updateNextPrevious(); + updateNextPrevious(); + updateCourseDataAttributes(nclr.getCalledCourseNode()); return; } // a click to a subtree's node @@ -648,6 +670,7 @@ public class RunMainController extends MainLayoutBasicController implements Gene luTree.setOpenNodeIds(nclr.getOpenNodeIds()); } updateNextPrevious(); + updateCourseDataAttributes(nclr.getCalledCourseNode()); return; } @@ -678,6 +701,7 @@ public class RunMainController extends MainLayoutBasicController implements Gene } updateNextPrevious(); + updateCourseDataAttributes(nclr.getCalledCourseNode()); }