diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java index 0252410e8e83f97a0f12d7b55382f54b5e49f8a3..09bab68ec3a58bf982286a9d4fc6bee5ec06e769 100644 --- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java +++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java @@ -286,14 +286,14 @@ public class RepositoryEntryListController extends FormBasicController row.setMarked(marked); } else if ("start".equals(cmd)){ RepositoryEntryRow row = (RepositoryEntryRow)link.getUserObject(); - doOpen(ureq, row); + doOpen(ureq, row, null); } else if ("details".equals(cmd)){ RepositoryEntryRow row = (RepositoryEntryRow)link.getUserObject(); doOpenDetails(ureq, row); } else if ("select".equals(cmd)) { RepositoryEntryRow row = (RepositoryEntryRow)link.getUserObject(); if (row.isMember()) { - doOpen(ureq, row); + doOpen(ureq, row, null); } else { doOpenDetails(ureq, row); } @@ -308,7 +308,7 @@ public class RepositoryEntryListController extends FormBasicController RepositoryEntryRow row = model.getObject(se.getIndex()); if("select".equals(cmd)) { if (row.isMember()) { - doOpen(ureq, row); + doOpen(ureq, row, null); } else { doOpenDetails(ureq, row); } @@ -357,7 +357,7 @@ public class RepositoryEntryListController extends FormBasicController for(RepositoryEntryRow row:rows) { if(row.getKey().equals(rowKey)) { if (row.isMember()) { - doOpen(ureq, row); + doOpen(ureq, row, null); } else { doOpenDetails(ureq, row); } @@ -461,9 +461,12 @@ public class RepositoryEntryListController extends FormBasicController userRatingsDao.updateRating(getIdentity(), ores, null, Math.round(rating)); } - protected void doOpen(UserRequest ureq, RepositoryEntryRow row) { + protected void doOpen(UserRequest ureq, RepositoryEntryRow row, String subPath) { try { String businessPath = "[RepositoryEntry:" + row.getKey() + "]"; + if (subPath != null) { + businessPath += subPath; + } NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl()); } catch (CorruptedCourseException e) { logError("Course corrupted: " + row.getKey() + " (" + row.getOLATResourceable().getResourceableId() + ")", e); @@ -472,13 +475,18 @@ public class RepositoryEntryListController extends FormBasicController } protected void doOpenDetails(UserRequest ureq, RepositoryEntryRow row) { - removeAsListenerAndDispose(detailsCtrl); - - detailsCtrl = new RepositoryEntryDetailsController(ureq, getWindowControl(), row); - listenTo(detailsCtrl); - - String displayName = row.getDisplayName(); - stackPanel.pushController(displayName, detailsCtrl); + // to be more consistent: course members see info page within the course, non-course members see it outside the course + if (row.isMember()) { + doOpen(ureq, row, "[Infos:0]"); + } else { + removeAsListenerAndDispose(detailsCtrl); + + detailsCtrl = new RepositoryEntryDetailsController(ureq, getWindowControl(), row); + listenTo(detailsCtrl); + + String displayName = row.getDisplayName(); + stackPanel.pushController(displayName, detailsCtrl); + } } protected void doOpenComments(UserRequest ureq, RepositoryEntryRow row) {