From 16aeb496ec1dea66050821fcc4f8de241e9481cb Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Tue, 31 Jul 2012 08:43:48 +0200 Subject: [PATCH] OO-291: show/hide resources menu item --- src/main/java/org/olat/ControllerFactory.java | 2 +- ...essGroupContextEntryControllerCreator.java | 2 +- .../olat/group/ui/BGControllerFactory.java | 6 +- .../ui/edit/BusinessGroupEditController.java | 4 +- .../run/BusinessGroupMainRunController.java | 155 ++---------------- 5 files changed, 23 insertions(+), 146 deletions(-) diff --git a/src/main/java/org/olat/ControllerFactory.java b/src/main/java/org/olat/ControllerFactory.java index 19442ce8a60..63d45ab8a2c 100644 --- a/src/main/java/org/olat/ControllerFactory.java +++ b/src/main/java/org/olat/ControllerFactory.java @@ -96,7 +96,7 @@ public class ControllerFactory { if (ureq.getUserSession().getRoles().isOLATAdmin() || ureq.getUserSession().getRoles().isGroupManager() || bgs.isIdentityInBusinessGroup(ureq.getIdentity(), bg)) { // only olatadmins or admins of this group can administer this group - return BGControllerFactory.getInstance().createRunControllerFor(ureq, wControl, bg, initialViewIdentifier); + return BGControllerFactory.getInstance().createRunControllerFor(ureq, wControl, bg); } // else skip diff --git a/src/main/java/org/olat/group/BusinessGroupContextEntryControllerCreator.java b/src/main/java/org/olat/group/BusinessGroupContextEntryControllerCreator.java index 9dd854165f6..27da4258000 100644 --- a/src/main/java/org/olat/group/BusinessGroupContextEntryControllerCreator.java +++ b/src/main/java/org/olat/group/BusinessGroupContextEntryControllerCreator.java @@ -62,7 +62,7 @@ public class BusinessGroupContextEntryControllerCreator extends DefaultContextEn if (ureq.getUserSession().getRoles().isOLATAdmin() || ureq.getUserSession().getRoles().isGroupManager() || bgs.isIdentityInBusinessGroup(ureq.getIdentity(), bgroup) || isAccessControlled(bgroup)) { // only olatadmins or admins of this group can administer this group - ctrl = BGControllerFactory.getInstance().createRunControllerFor(ureq, wControl, bgroup, null); + ctrl = BGControllerFactory.getInstance().createRunControllerFor(ureq, wControl, bgroup); } } return ctrl; diff --git a/src/main/java/org/olat/group/ui/BGControllerFactory.java b/src/main/java/org/olat/group/ui/BGControllerFactory.java index 0815a9e3378..82b175b30ea 100644 --- a/src/main/java/org/olat/group/ui/BGControllerFactory.java +++ b/src/main/java/org/olat/group/ui/BGControllerFactory.java @@ -84,9 +84,7 @@ public class BGControllerFactory { * @param initialViewIdentifier * @return a run controller for this business group */ - public BusinessGroupMainRunController createRunControllerFor(UserRequest ureq, WindowControl wControl, BusinessGroup businessGroup, - String initialViewIdentifier) { - + public BusinessGroupMainRunController createRunControllerFor(UserRequest ureq, WindowControl wControl, BusinessGroup businessGroup) { // build up the context path WindowControl bwControl; OLATResourceable businessOres = businessGroup; @@ -97,7 +95,7 @@ public class BGControllerFactory { } else { bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ce, wControl); } - return new BusinessGroupMainRunController(ureq, bwControl, businessGroup, initialViewIdentifier); + return new BusinessGroupMainRunController(ureq, bwControl, businessGroup); } /** diff --git a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java index 2b9da4e526e..dbaf8572dbc 100644 --- a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java +++ b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java @@ -369,7 +369,7 @@ public class BusinessGroupEditController extends BasicController implements Cont fireEvent(ureq, Event.CHANGED_EVENT ); } //fxdiff VCRP-1,2: access control of resources - } else if (source == this.modifyBusinessGroupController || source == tabAccessCtrl) { + } else if (source == modifyBusinessGroupController || source == tabAccessCtrl) { if (event == Event.DONE_EVENT) { // update business group with the specified values // values are taken from the modifyBusinessGroupForm @@ -405,6 +405,8 @@ public class BusinessGroupEditController extends BasicController implements Cont vc_tab_bgDetails.put("businessGroupForm", this.modifyBusinessGroupController.getInitialComponent()); } + } else if (source == resourceController) { + fireEvent(ureq, event); } } 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 3539cf0c4f0..bffe6156a93 100644 --- a/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java +++ b/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java @@ -60,7 +60,6 @@ import org.olat.core.gui.control.generic.messages.MessageUIFactory; import org.olat.core.gui.translator.Translator; import org.olat.core.id.Identity; import org.olat.core.id.OLATResourceable; -import org.olat.core.id.context.BusinessControl; import org.olat.core.id.context.BusinessControlFactory; import org.olat.core.id.context.ContextEntry; import org.olat.core.id.context.StateEntry; @@ -196,17 +195,9 @@ public class BusinessGroupMainRunController extends MainLayoutBasicController im private String adminNodeId; // reference to admin menu item // not null indicates tool is enabled - private GenericTreeNode nodeFolder; - private GenericTreeNode nodeForum; - private GenericTreeNode nodeWiki; - private GenericTreeNode nodeCal; - private GenericTreeNode nodePortfolio; + private GenericTreeNode nodeFolder, nodeForum, nodeWiki, nodeCal, nodePortfolio; //fxdiff BAKS-7 Resume function - private GenericTreeNode nodeContact; - private GenericTreeNode nodeGroupOwners; - private GenericTreeNode nodeResources; - private GenericTreeNode nodeInformation; - private GenericTreeNode nodeAdmin; + private GenericTreeNode nodeContact, nodeGroupOwners, nodeResources, nodeInformation, nodeAdmin; private boolean groupRunDisabled; private OLATResourceable assessmentEventOres; //fxdiff VCRP-1,2: access control of resources @@ -223,8 +214,7 @@ public class BusinessGroupMainRunController extends MainLayoutBasicController im * @param flags * @param initialViewIdentifier supported are null, "toolforum", "toolfolder" */ - public BusinessGroupMainRunController(UserRequest ureq, WindowControl control, BusinessGroup bGroup, - String initialViewIdentifier) { + public BusinessGroupMainRunController(UserRequest ureq, WindowControl control, BusinessGroup bGroup) { super(ureq, control); /* @@ -316,118 +306,6 @@ public class BusinessGroupMainRunController extends MainLayoutBasicController im needActivation = true; return; } - - //REVIEW:PB:2009-05-31: consolidate ContextEntry <-> initialViewIdentifier Concept -> go for ContextEntry at the end. - // first step -> if initialViewIdentifier != null -> map initialViewIdentifier to ore with OresHelper - // how to remove initialViewIdentifier and replace by ContextEntry Path? - - - // jump to either the forum or the folder if the business-launch-path says so. - BusinessControl bc = getWindowControl().getBusinessControl(); - ContextEntry ce = bc.popLauncherContextEntry(); - if (ce != null) { // a context path is left for me - OLATResourceable ores = ce.getOLATResourceable(); - if (OresHelper.equals(ores, ORES_TOOLFORUM)) { - // start the forum - if (nodeForum != null) { - handleTreeActions(ureq, ACTIVITY_MENUSELECT_FORUM); - bgTree.setSelectedNode(nodeForum); - } else { // not enabled - String text = translate("warn.forumnotavailable"); - Controller mc = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), null, text); - listenTo(mc); // cleanup on dispose - mainPanel.setContent(mc.getInitialComponent()); - } - } else if (OresHelper.equals(ores, ORES_TOOLFOLDER)) { - if (nodeFolder != null) { - handleTreeActions(ureq, ACTIVITY_MENUSELECT_FOLDER); - bgTree.setSelectedNode(nodeFolder); - } else { // not enabled - String text = translate("warn.foldernotavailable"); - Controller mc = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), null, text); - listenTo(mc); // cleanup on dispose - mainPanel.setContent(mc.getInitialComponent()); - } - } else if (OresHelper.equals(ores, ORES_TOOLWIKI)) { - if (nodeWiki != null) { - handleTreeActions(ureq, ACTIVITY_MENUSELECT_WIKI); - bgTree.setSelectedNode(nodeWiki); - } else { // not enabled - String text = translate("warn.wikinotavailable"); - Controller mc = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), null, text); - listenTo(mc); // cleanup on dispose - mainPanel.setContent(mc.getInitialComponent()); - } - } else if (OresHelper.equals(ores, ORES_TOOLCAL)) { - if (nodeCal != null) { - handleTreeActions(ureq, ACTIVITY_MENUSELECT_CALENDAR); - bgTree.setSelectedNode(nodeCal); - } else { // not enabled - String text = translate("warn.calnotavailable"); - Controller mc = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), null, text); - listenTo(mc); // cleanup on dispose - mainPanel.setContent(mc.getInitialComponent()); - } - } else if (OresHelper.equals(ores, ORES_TOOLPORTFOLIO)) { - if (nodePortfolio != null) { - handleTreeActions(ureq, ACTIVITY_MENUSELECT_PORTFOLIO); - bgTree.setSelectedNode(nodePortfolio); - } else { // not enabled - String text = translate("warn.portfolionotavailable"); - Controller mc = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), null, text); - listenTo(mc); // cleanup on dispose - mainPanel.setContent(mc.getInitialComponent()); - } - } - } - - // jump to node if initialViewIdent says so. - if (initialViewIdentifier != null) { - if (initialViewIdentifier.equals(INITVIEW_TOOLFORUM)) { - if (nodeForum != null) { - handleTreeActions(ureq, ACTIVITY_MENUSELECT_FORUM); - bgTree.setSelectedNode(nodeForum); - } else { // not enabled - String text = translate("warn.forumnotavailable"); - Controller mc = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), null, text); - listenTo(mc); // cleanup on dispose - mainPanel.setContent(mc.getInitialComponent()); - } - } else if (initialViewIdentifier.equals(INITVIEW_TOOLFOLDER)) { - if (nodeFolder != null) { - handleTreeActions(ureq, ACTIVITY_MENUSELECT_FOLDER); - bgTree.setSelectedNode(nodeFolder); - } else { // not enabled - String text = translate("warn.foldernotavailable"); - Controller mc = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), null, text); - listenTo(mc); // cleanup on dispose - mainPanel.setContent(mc.getInitialComponent()); - } - } - else if (initialViewIdentifier.equals(INITVIEW_TOOLWIKI)) { - if (nodeWiki != null) { - handleTreeActions(ureq, ACTIVITY_MENUSELECT_WIKI); - bgTree.setSelectedNode(nodeWiki); - } else { // not enabled - String text = translate("warn.wikinotavailable"); - Controller mc = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), null, text); - listenTo(mc); // cleanup on dispose - mainPanel.setContent(mc.getInitialComponent()); - } - } - else if (initialViewIdentifier.equals(INITVIEW_TOOLCAL)) { - if (nodeCal != null) { - handleTreeActions(ureq, ACTIVITY_MENUSELECT_CALENDAR); - bgTree.setSelectedNode(nodeCal); - } else { // not enabled - String text = translate("warn.calnotavailable"); - Controller mc = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), null, text); - listenTo(mc); // cleanup on dispose - mainPanel.setContent(mc.getInitialComponent()); - } - } - else throw new AssertException("unknown initialViewIdentifier:'" + initialViewIdentifier + "'"); - } } private void exposeGroupDetailsToVC(BusinessGroup currBusinessGroup) { @@ -844,22 +722,18 @@ public class BusinessGroupMainRunController extends MainLayoutBasicController im * @see org.olat.core.gui.control.DefaultController#doDispose(boolean) */ protected void doDispose() { - ThreadLocalUserActivityLogger.log(GroupLoggingAction.GROUP_CLOSED, getClass()); if (chatCtr != null) { - InstantMessagingGroupChatController chat = (InstantMessagingGroupChatController) chatCtr; - if (chat.isChatWindowOpen()) { chat.close(); getWindowControl().getWindowBackOffice().sendCommandTo(chat.getCloseCommand()); } - removeAsListenerAndDispose(chatCtr); } - CoordinatorManager.getInstance().getCoordinator().getEventBus().deregisterFor(this, this.businessGroup); + CoordinatorManager.getInstance().getCoordinator().getEventBus().deregisterFor(this, businessGroup); userSession.getSingleUserEventCenter().deregisterFor(this, assessmentEventOres); } @@ -1074,15 +948,18 @@ public class BusinessGroupMainRunController extends MainLayoutBasicController im root.addChild(gtnChild); nodeCal = gtnChild; } - - gtnChild = new GenericTreeNode(); - gtnChild.setTitle(translate("menutree.resources")); - gtnChild.setUserObject(ACTIVITY_MENUSELECT_SHOW_RESOURCES); - gtnChild.setAltText(translate("menutree.resources.alt")); - gtnChild.setIconCssClass("o_course_icon"); - root.addChild(gtnChild); - //fxdiff BAKS-7 Resume function - nodeResources = gtnChild; + + boolean hasResources = businessGroupService.hasResources(businessGroup); + if(hasResources) { + gtnChild = new GenericTreeNode(); + gtnChild.setTitle(translate("menutree.resources")); + gtnChild.setUserObject(ACTIVITY_MENUSELECT_SHOW_RESOURCES); + gtnChild.setAltText(translate("menutree.resources.alt")); + gtnChild.setIconCssClass("o_course_icon"); + root.addChild(gtnChild); + //fxdiff BAKS-7 Resume function + nodeResources = gtnChild; + } DisplayMembers displayMembers = businessGroupService.getDisplayMembers(businessGroup); if (displayMembers.isShowOwners() || displayMembers.isShowParticipants()) { -- GitLab