diff --git a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java index e8f13d3c50b26f9c1b1d844244f0f7e39ced3fc5..40c018737ff713a3733ea5131a9c44b02b09aba0 100644 --- a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java +++ b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java @@ -503,7 +503,7 @@ public class BusinessControlFactory { } } } catch (ParseException e) { - log.warn("Error parsing the date after activate: " + dateEntry, e); + log.warn("Error parsing the date after activate: {}", dateEntry, e); } } return date; diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java index 5d7651349ef7a48813002712494e5708d6f4a55d..3e149c758b58c9a252ea5f45906abe674d9052cd 100644 --- a/src/main/java/org/olat/course/run/CourseRuntimeController.java +++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java @@ -1347,8 +1347,6 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im } } else if("LecturesAdmin".equalsIgnoreCase(type)) { activateSubEntries(ureq, doLecturesAdmin(ureq), entries); - } else if("CourseFolder".equalsIgnoreCase(type)) { - doCourseFolder(ureq); } else if("AssessmentMode".equalsIgnoreCase(type)) { doAssessmentMode(ureq); } else if("CourseAreas".equalsIgnoreCase(type)) { @@ -1394,18 +1392,22 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im } else { subEntries = entries.subList(1, entries.size()); } - assessmentCtrl.activate(ureq, subEntries, entries.get(0).getTransientState()); + if(assessmentCtrl != null) { + assessmentCtrl.activate(ureq, subEntries, entries.get(0).getTransientState()); + } } catch (OLATSecurityException e) { //the wrong link to the wrong person } } + } else if("CourseFolder".equalsIgnoreCase(type)) { + FolderRunController folderCtrl = doCourseFolder(ureq); + if(folderCtrl != null && entries.size() > 1) { + folderCtrl.activatePath(ureq, BusinessControlFactory.getInstance().getPath(entries.get(1))); + } } else if(type != null && type.startsWith("path=")) { - if (reSecurity.isEntryAdmin() || hasCourseRight(CourseRights.RIGHT_COURSEEDITOR)) { - String path = BusinessControlFactory.getInstance().getPath(entries.get(0)); - FolderRunController folderCtrl = doCourseFolder(ureq); - if(folderCtrl != null) { - folderCtrl.activatePath(ureq, path); - } + FolderRunController folderCtrl = doCourseFolder(ureq); + if(folderCtrl != null) { + folderCtrl.activatePath(ureq, BusinessControlFactory.getInstance().getPath(entries.get(0))); } } } @@ -1726,24 +1728,26 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im private FolderRunController doCourseFolder(UserRequest ureq) { if(delayedClose == Delayed.courseFolder || requestForClose(ureq)) { - removeCustomCSS(); - // Folder for course with custom link model to jump to course nodes - ICourse course = CourseFactory.loadCourse(getRepositoryEntry()); - VFSContainer courseContainer; - if(overrideReadOnly) { - courseContainer = course.getCourseFolderContainer(overrideReadOnly); - } else { - courseContainer = course.getCourseFolderContainer(); + if (reSecurity.isEntryAdmin() || hasCourseRight(CourseRights.RIGHT_COURSEEDITOR)) { + removeCustomCSS(); + // Folder for course with custom link model to jump to course nodes + ICourse course = CourseFactory.loadCourse(getRepositoryEntry()); + VFSContainer courseContainer; + if(overrideReadOnly) { + courseContainer = course.getCourseFolderContainer(overrideReadOnly); + } else { + courseContainer = course.getCourseFolderContainer(); + } + VFSContainer namedCourseFolder = new NamedContainerImpl(translate("command.coursefolder"), courseContainer); + CustomLinkTreeModel customLinkTreeModel = new CourseInternalLinkTreeModel(course.getEditorTreeModel()); + + WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableInstance("CourseFolder", 0l), null); + FolderRunController ctrl = new FolderRunController(namedCourseFolder, true, true, true, true, ureq, swControl, null, customLinkTreeModel, null); + ctrl.addLoggingResourceable(LoggingResourceable.wrap(course)); + courseFolderCtrl = pushController(ureq, translate("command.coursefolder"), ctrl); + setActiveTool(folderLink); + currentToolCtr = courseFolderCtrl; } - VFSContainer namedCourseFolder = new NamedContainerImpl(translate("command.coursefolder"), courseContainer); - CustomLinkTreeModel customLinkTreeModel = new CourseInternalLinkTreeModel(course.getEditorTreeModel()); - - WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableInstance("CourseFolder", 0l), null); - FolderRunController ctrl = new FolderRunController(namedCourseFolder, true, true, true, true, ureq, swControl, null, customLinkTreeModel, null); - ctrl.addLoggingResourceable(LoggingResourceable.wrap(course)); - courseFolderCtrl = pushController(ureq, translate("command.coursefolder"), ctrl); - setActiveTool(folderLink); - currentToolCtr = courseFolderCtrl; } else { delayedClose = Delayed.courseFolder; } @@ -1752,15 +1756,17 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im private void doCourseAreas(UserRequest ureq) { if(delayedClose == Delayed.courseAreas || requestForClose(ureq)) { - removeCustomCSS(); - ICourse course = CourseFactory.loadCourse(getRepositoryEntry()); - WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableInstance("CourseAreas", 0l), null); - CourseAreasController ctrl = new CourseAreasController(ureq, swControl, - getRepositoryEntry().getOlatResource(), getUserCourseEnvironment().isCourseReadOnly()); - ctrl.addLoggingResourceable(LoggingResourceable.wrap(course)); - areasCtrl = pushController(ureq, translate("command.courseareas"), ctrl); - setActiveTool(areaLink); - currentToolCtr = areasCtrl; + if (reSecurity.isEntryAdmin() || hasCourseRight(CourseRights.RIGHT_COURSEEDITOR)) { + removeCustomCSS(); + ICourse course = CourseFactory.loadCourse(getRepositoryEntry()); + WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableInstance("CourseAreas", 0l), null); + CourseAreasController ctrl = new CourseAreasController(ureq, swControl, + getRepositoryEntry().getOlatResource(), getUserCourseEnvironment().isCourseReadOnly()); + ctrl.addLoggingResourceable(LoggingResourceable.wrap(course)); + areasCtrl = pushController(ureq, translate("command.courseareas"), ctrl); + setActiveTool(areaLink); + currentToolCtr = areasCtrl; + } } else { delayedClose = Delayed.courseAreas; } @@ -1902,7 +1908,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im Preferences prefs = ureq.getUserSession().getGuiPreferences(); String guiPrefsKey = CourseGlossaryFactory.createGuiPrefsKey(getOlatResourceable()); Boolean state = (Boolean) prefs.get(CourseGlossaryToolLinkController.class, guiPrefsKey); - Boolean newState = state == null ? Boolean.TRUE : new Boolean(!state.booleanValue()); + Boolean newState = state == null ? Boolean.TRUE : Boolean.valueOf(!state.booleanValue()); setGlossaryLinkTitle(ureq, newState); prefs.putAndSave(CourseGlossaryToolLinkController.class, guiPrefsKey, newState); } @@ -2122,7 +2128,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im currentToolCtr = forumCtrl; } else { delayedClose = Delayed.forum; - }; + } } private CourseDocumentsController doDocuments(UserRequest ureq) {