diff --git a/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java b/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java index 758c3fecd30b9eb644490b0cc496f94db9879084..9c896230fbda75213d6d29a3139ac777be68961a 100644 --- a/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java +++ b/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java @@ -208,7 +208,7 @@ public class CurriculumComposerController extends FormBasicController implements zoomColumn.setExportable(false); zoomColumn.setAlwaysVisible(true); columnsModel.addFlexiColumnModel(zoomColumn); - if(secCallback.canEditCurriculumElements()) { + if(secCallback.canEditCurriculumElements() || (!managed && secCallback.canManagerCurriculumElementsUsers())) { DefaultFlexiColumnModel toolsColumn = new DefaultFlexiColumnModel(ElementCols.tools); toolsColumn.setExportable(false); toolsColumn.setAlwaysVisible(true); @@ -565,9 +565,13 @@ public class CurriculumComposerController extends FormBasicController implements } private void doChooseMembers(UserRequest ureq) { + CurriculumElementRow focusedRow = tableModel.getFocusedCurriculumElementRow(); + doChooseMembers(ureq, focusedRow); + } + + private void doChooseMembers(UserRequest ureq, CurriculumElementRow focusedRow) { removeAsListenerAndDispose(importMembersWizard); - CurriculumElementRow focusedRow = tableModel.getFocusedCurriculumElementRow(); CurriculumElement focusedElement = focusedRow == null ? null : focusedRow.getCurriculumElement(); ImportMembersContext membersContext= ImportMembersContext.valueOf(curriculum, focusedElement, overrideManaged); Step start = new ImportMember_1b_ChooseMemberStep(ureq, membersContext); @@ -583,9 +587,13 @@ public class CurriculumComposerController extends FormBasicController implements } private void doImportMembers(UserRequest ureq) { - removeAsListenerAndDispose(importMembersWizard); - CurriculumElementRow focusedRow = tableModel.getFocusedCurriculumElementRow(); + doImportMembers(ureq, focusedRow); + } + + private void doImportMembers(UserRequest ureq, CurriculumElementRow focusedRow) { + removeAsListenerAndDispose(importMembersWizard); + CurriculumElement focusedElement = focusedRow == null ? null : focusedRow.getCurriculumElement(); ImportMembersContext membersContext= ImportMembersContext.valueOf(curriculum, focusedElement, overrideManaged); Step start = new ImportMember_1a_LoginListStep(ureq, membersContext); @@ -723,6 +731,8 @@ public class CurriculumComposerController extends FormBasicController implements private Link moveLink; private Link copyLink; private Link deleteLink; + private Link addMemberLink; + private Link importMemberLink; private CurriculumElementRow row; @@ -737,17 +747,27 @@ public class CurriculumComposerController extends FormBasicController implements if(secCallback.canEditCurriculumElement(element)) { editLink = addLink("edit", "o_icon_edit", links); if(!CurriculumElementManagedFlag.isManaged(element, CurriculumElementManagedFlag.move)) { - moveLink = addLink("move.element", "o_icon_move", links); + moveLink = addLink("move.element", "o_icon_move", links); } if(!CurriculumElementManagedFlag.isManaged(element, CurriculumElementManagedFlag.addChildren)) { - newLink = addLink("add.element.under", "o_icon_levels", links); + newLink = addLink("add.element.under", "o_icon_levels", links); } copyLink = addLink("copy.element", "o_icon_copy", links); - if(!CurriculumElementManagedFlag.isManaged(element, CurriculumElementManagedFlag.delete)) { + } + + if(!managed && secCallback.canManagerCurriculumElementUsers(element)) { + if(!links.isEmpty()) { links.add("-"); - deleteLink = addLink("delete", "o_icon_delete_item", links); } + addMemberLink = addLink("add.member", "o_icon_add_member", links); + importMemberLink = addLink("import.member", "o_icon_import", links); + } + + if(secCallback.canEditCurriculumElement(element) && !CurriculumElementManagedFlag.isManaged(element, CurriculumElementManagedFlag.delete)) { + links.add("-"); + deleteLink = addLink("delete", "o_icon_delete_item", links); } + mainVC.contextPut("links", links); putInitialPanel(mainVC); @@ -783,6 +803,12 @@ public class CurriculumComposerController extends FormBasicController implements } else if(copyLink == source) { close(); doCopyCurriculumElement(ureq, row); + } else if(addMemberLink == source) { + close(); + doChooseMembers(ureq, row); + } else if(importMemberLink == source) { + close(); + doImportMembers(ureq, row); } }