From 58f229b79575e15f0a5e86711590cadb9bd9975c Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Tue, 17 Nov 2015 13:44:12 +0100 Subject: [PATCH] OO-1786 : show the subscription on the list of groups/participants, clearfix the subscription in the individual/group view, wording --- .../_i18n/LocalStrings_de.properties | 2 +- .../_i18n/LocalStrings_en.properties | 2 +- .../_i18n/LocalStrings_fr.properties | 2 +- .../_i18n/LocalStrings_pt_BR.properties | 2 +- .../ui/ContextualSubscriptionController.java | 15 +++++---------- .../notifications/ui/_content/consubs.html | 6 +----- .../nodes/gta/manager/GTAManagerImpl.java | 2 -- .../nodes/gta/ui/GTAAbstractController.java | 14 ++++++++------ .../gta/ui/GTAAssessmentDetailsController.java | 4 ++-- .../nodes/gta/ui/GTACoachController.java | 12 ++++++------ .../gta/ui/GTACoachSelectionController.java | 18 ++++++++++++++++-- .../nodes/gta/ui/GTAParticipantController.java | 2 +- .../course/nodes/gta/ui/_content/coach.html | 4 +++- .../nodes/gta/ui/_content/coach_selection.html | 6 ++++++ 14 files changed, 52 insertions(+), 39 deletions(-) diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_de.properties index 86dd5f8053f..1c800dff242 100644 --- a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_de.properties @@ -32,7 +32,7 @@ FileResource.WIKI=Wiki FileResource.XLS=Excel FolderModule=Ordner Forum=Forum -GroupTask=Gruppenaufgabe +GroupTask=Aufgabe Inbox=Inbox EPStructuredMap=ePortfolio InfoMessage=Mitteilungen diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_en.properties index ba20f8d7fbb..76b679bc8ef 100644 --- a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_en.properties @@ -33,7 +33,7 @@ FileResource.WIKI=Wiki FileResource.XLS=Excel FolderModule=Folder Forum=Forum -GroupTask=Group task +GroupTask=Task Inbox=Inbox InfoMessage=Messages LibrarySite=Library diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_fr.properties index 2f393eb6f6e..4f6b69da65b 100644 --- a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_fr.properties @@ -33,7 +33,7 @@ FileResource.WIKI=Wiki FileResource.XLS=Excel FolderModule=Dossier Forum=Forum -GroupTask=Devoir de groupe +GroupTask=Devoir Inbox=Bo\u00EEte de r\u00E9ception InfoMessage=Communications LibrarySite=Biblioth\u00E8que diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_pt_BR.properties index f38d36215b8..a9df84e511e 100644 --- a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_pt_BR.properties @@ -33,7 +33,7 @@ FileResource.WIKI=Wiki FileResource.XLS=Excel FolderModule=Pasta Forum=F\u00F3rum -GroupTask=Tarefa de grupo +GroupTask=Tarefa Inbox=Caixa de entrada InfoMessage=Mensagens LibrarySite=Biblioteca diff --git a/src/main/java/org/olat/core/commons/services/notifications/ui/ContextualSubscriptionController.java b/src/main/java/org/olat/core/commons/services/notifications/ui/ContextualSubscriptionController.java index bca737cf89f..208bfd4c09a 100644 --- a/src/main/java/org/olat/core/commons/services/notifications/ui/ContextualSubscriptionController.java +++ b/src/main/java/org/olat/core/commons/services/notifications/ui/ContextualSubscriptionController.java @@ -38,6 +38,7 @@ import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; +import org.springframework.beans.factory.annotation.Autowired; /** * Description: <br> @@ -50,13 +51,13 @@ public class ContextualSubscriptionController extends BasicController { private VelocityContainer myContent; private Link subscribeButton; private Link unsubscribeButton; - private Panel allPanel; - private Panel detailsPanel; - private NotificationsManager notifManager; private SubscriptionContext subscriptionContext; private boolean isSubscribed; private final PublisherData publisherData; + @Autowired + private NotificationsManager notifManager; + /** * @param ureq * @param subscriptionContext @@ -73,9 +74,6 @@ public class ContextualSubscriptionController extends BasicController { putInitialPanel(new Panel("empty:nosubscription")); return; } - - detailsPanel = new Panel("subscription_detail"); - allPanel = new Panel("subscription_all"); subscribeButton = LinkFactory.createCustomLink("command.subscribe", "command.subscribe", "off", Link.LINK, myContent, this); subscribeButton.setCustomEnabledLinkCSS("o_noti_subscribe_link o_button_toggle"); @@ -87,14 +85,11 @@ public class ContextualSubscriptionController extends BasicController { unsubscribeButton.setIconRightCSS("o_icon o_icon_toggle"); unsubscribeButton.setTitle("command.unsubscribe"); - notifManager = NotificationsManager.getInstance(); // if subscribed, offer a unsubscribe button and vica versa. isSubscribed = notifManager.isSubscribed(ureq.getIdentity(), subscriptionContext); updateUI(); - myContent.put("detailsPanel", detailsPanel); - allPanel.setContent(myContent); - putInitialPanel(allPanel); + putInitialPanel(myContent); } public boolean isSubscribed() { diff --git a/src/main/java/org/olat/core/commons/services/notifications/ui/_content/consubs.html b/src/main/java/org/olat/core/commons/services/notifications/ui/_content/consubs.html index ece81067f41..39bd05d05eb 100644 --- a/src/main/java/org/olat/core/commons/services/notifications/ui/_content/consubs.html +++ b/src/main/java/org/olat/core/commons/services/notifications/ui/_content/consubs.html @@ -1,10 +1,6 @@ <div id="$r.getCId()" class="o_noti"> <a href="javascript:$r.contextHelpJSCommand("org.olat.core.commons.services.notifications.ui","home-notifications.html")" title="$r.translateInAttribute("help.hover.notif")" class="o_label"> - <i class="o_icon o_icon_notification"></i> - <span> - $r.translate("actions.title") - </span> - </a> + <i class="o_icon o_icon_notification"></i> <span>$r.translate("actions.title")</span></a> #if ($subscribed) $r.render("command.unsubscribe") #else diff --git a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java index 4bb494e9369..4785f238a7a 100644 --- a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java +++ b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java @@ -296,8 +296,6 @@ public class GTAManagerImpl implements GTAManager, DeletableGroupData { SubscriptionContext sc = new SubscriptionContext("CourseModule", courseEnv.getCourseResourceableId(), cNode.getIdent()); return sc; } - - @Override public List<BusinessGroup> filterBusinessGroups(List<BusinessGroup> groups, GTACourseNode cNode) { diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java index 0e27b90083d..66fc4eddf14 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java @@ -71,6 +71,7 @@ public abstract class GTAAbstractController extends BasicController { protected final ModuleConfiguration config; protected final RepositoryEntry courseEntry; + protected final boolean withSubscription; protected final PublisherData publisherData; protected final SubscriptionContext subsContext; @@ -95,22 +96,23 @@ public abstract class GTAAbstractController extends BasicController { protected UserCourseInformationsManager userCourseInformationsManager; public GTAAbstractController(UserRequest ureq, WindowControl wControl, - GTACourseNode gtaNode, CourseEnvironment courseEnv, boolean withTitle, boolean withGrading) { - this(ureq, wControl, gtaNode, courseEnv, null, null, null, withTitle, withGrading); + GTACourseNode gtaNode, CourseEnvironment courseEnv, boolean withTitle, boolean withGrading, boolean withSubscription) { + this(ureq, wControl, gtaNode, courseEnv, null, null, null, withTitle, withGrading, withSubscription); } public GTAAbstractController(UserRequest ureq, WindowControl wControl, - GTACourseNode gtaNode, CourseEnvironment courseEnv, UserCourseEnvironment userCourseEnv, boolean withTitle, boolean withGrading) { - this(ureq, wControl, gtaNode, courseEnv, userCourseEnv, null, null, withTitle, withGrading); + GTACourseNode gtaNode, CourseEnvironment courseEnv, UserCourseEnvironment userCourseEnv, boolean withTitle, boolean withGrading, boolean withSubscription) { + this(ureq, wControl, gtaNode, courseEnv, userCourseEnv, null, null, withTitle, withGrading, withSubscription); } public GTAAbstractController(UserRequest ureq, WindowControl wControl, GTACourseNode gtaNode, CourseEnvironment courseEnv, UserCourseEnvironment userCourseEnv, - BusinessGroup assessedGroup, Identity assessedIdentity, boolean withTitle, boolean withGrading) { + BusinessGroup assessedGroup, Identity assessedIdentity, boolean withTitle, boolean withGrading, boolean withSubscription) { super(ureq, wControl); this.withTitle = withTitle; this.withGrading = withGrading; + this.withSubscription = withSubscription; this.gtaNode = gtaNode; this.config = gtaNode.getModuleConfiguration(); @@ -154,7 +156,7 @@ public abstract class GTAAbstractController extends BasicController { task = gtaManager.getTask(assessedIdentity, taskList); } - if (subsContext != null) { + if (withSubscription && subsContext != null) { contextualSubscriptionCtr = new ContextualSubscriptionController(ureq, getWindowControl(), subsContext, publisherData); listenTo(contextualSubscriptionCtr); mainVC.put("contextualSubscription", contextualSubscriptionCtr.getInitialComponent()); diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAAssessmentDetailsController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAAssessmentDetailsController.java index 23c089108ba..d609ff76cf3 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAAssessmentDetailsController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAAssessmentDetailsController.java @@ -160,14 +160,14 @@ public class GTAAssessmentDetailsController extends BasicController { private void doSelectBusinessGroup(UserRequest ureq, BusinessGroup group) { removeAsListenerAndDispose(coachingCtrl); - coachingCtrl = new GTACoachController(ureq, getWindowControl(), courseEnv, gtaNode, group, true, true); + coachingCtrl = new GTACoachController(ureq, getWindowControl(), courseEnv, gtaNode, group, true, true, true); listenTo(coachingCtrl); mainVC.put("selection", coachingCtrl.getInitialComponent()); } private void doSelectParticipant(UserRequest ureq, Identity identity) { removeAsListenerAndDispose(coachingCtrl); - coachingCtrl = new GTACoachController(ureq, getWindowControl(), courseEnv, gtaNode, identity, false, false); + coachingCtrl = new GTACoachController(ureq, getWindowControl(), courseEnv, gtaNode, identity, false, false, true); listenTo(coachingCtrl); mainVC.put("selection", coachingCtrl.getInitialComponent()); } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java index e8edd9d04a8..01eb1b62a1a 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java @@ -83,13 +83,13 @@ public class GTACoachController extends GTAAbstractController { private BusinessGroupService groupService; public GTACoachController(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, GTACourseNode gtaNode, - BusinessGroup assessedGroup, boolean withTitle, boolean withGrading) { - this(ureq, wControl, courseEnv, gtaNode, assessedGroup, null, withTitle, withGrading); + BusinessGroup assessedGroup, boolean withTitle, boolean withGrading, boolean withSubscription) { + this(ureq, wControl, courseEnv, gtaNode, assessedGroup, null, withTitle, withGrading, withSubscription); } public GTACoachController(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, GTACourseNode gtaNode, - Identity assessedIdentity, boolean withTitle, boolean withGrading) { - this(ureq, wControl, courseEnv, gtaNode, null, assessedIdentity, withTitle, withGrading); + Identity assessedIdentity, boolean withTitle, boolean withGrading, boolean withSubscription) { + this(ureq, wControl, courseEnv, gtaNode, null, assessedIdentity, withTitle, withGrading, withSubscription); } /** @@ -104,8 +104,8 @@ public class GTACoachController extends GTAAbstractController { * @param withGrading Allow to remove the grading panel in assessment tool */ private GTACoachController(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, GTACourseNode gtaNode, - BusinessGroup assessedGroup, Identity assessedIdentity, boolean withTitle, boolean withGrading) { - super(ureq, wControl, gtaNode, courseEnv, null, assessedGroup, assessedIdentity, withTitle, withGrading); + BusinessGroup assessedGroup, Identity assessedIdentity, boolean withTitle, boolean withGrading, boolean withSubscription) { + super(ureq, wControl, gtaNode, courseEnv, null, assessedGroup, assessedIdentity, withTitle, withGrading, withSubscription); } @Override diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachSelectionController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachSelectionController.java index a2340806216..ee787002bfa 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachSelectionController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachSelectionController.java @@ -23,6 +23,9 @@ import java.util.Collections; import java.util.List; import org.olat.basesecurity.BaseSecurity; +import org.olat.core.commons.services.notifications.PublisherData; +import org.olat.core.commons.services.notifications.SubscriptionContext; +import org.olat.core.commons.services.notifications.ui.ContextualSubscriptionController; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; @@ -62,6 +65,9 @@ public class GTACoachSelectionController extends BasicController { private final GTACourseNode gtaNode; private final CourseEnvironment courseEnv; + protected final PublisherData publisherData; + protected final SubscriptionContext subsContext; + @Autowired private GTAManager gtaManager; @Autowired @@ -76,6 +82,14 @@ public class GTACoachSelectionController extends BasicController { mainVC = createVelocityContainer("coach_selection"); backLink = LinkFactory.createLinkBack(mainVC, this); + publisherData = gtaManager.getPublisherData(courseEnv, gtaNode); + subsContext = gtaManager.getSubscriptionContext(courseEnv, gtaNode); + if (subsContext != null) { + ContextualSubscriptionController contextualSubscriptionCtr = new ContextualSubscriptionController(ureq, getWindowControl(), subsContext, publisherData); + listenTo(contextualSubscriptionCtr); + mainVC.put("contextualSubscription", contextualSubscriptionCtr.getInitialComponent()); + } + ModuleConfiguration config = gtaNode.getModuleConfiguration(); if(GTAType.group.name().equals(config.getStringValue(GTACourseNode.GTASK_TYPE))) { List<BusinessGroup> groups; @@ -157,14 +171,14 @@ public class GTACoachSelectionController extends BasicController { private void doSelectBusinessGroup(UserRequest ureq, BusinessGroup group) { removeAsListenerAndDispose(coachingCtrl); - coachingCtrl = new GTACoachController(ureq, getWindowControl(), courseEnv, gtaNode, group, true, true); + coachingCtrl = new GTACoachController(ureq, getWindowControl(), courseEnv, gtaNode, group, true, true, false); listenTo(coachingCtrl); mainVC.put("selection", coachingCtrl.getInitialComponent()); } private void doSelectParticipant(UserRequest ureq, Identity identity) { removeAsListenerAndDispose(coachingCtrl); - coachingCtrl = new GTACoachController(ureq, getWindowControl(), courseEnv, gtaNode, identity, true, true); + coachingCtrl = new GTACoachController(ureq, getWindowControl(), courseEnv, gtaNode, identity, true, true, false); listenTo(coachingCtrl); mainVC.put("selection", coachingCtrl.getInitialComponent()); } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java index c13ae7f194b..69260d16b39 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java @@ -98,7 +98,7 @@ public class GTAParticipantController extends GTAAbstractController { public GTAParticipantController(UserRequest ureq, WindowControl wControl, GTACourseNode gtaNode, UserCourseEnvironment userCourseEnv) { - super(ureq, wControl, gtaNode, userCourseEnv.getCourseEnvironment(), userCourseEnv, true, true); + super(ureq, wControl, gtaNode, userCourseEnv.getCourseEnvironment(), userCourseEnv, true, true, true); } @Override diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_content/coach.html b/src/main/java/org/olat/course/nodes/gta/ui/_content/coach.html index d12f8e71f01..2af1807bfb9 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/_content/coach.html +++ b/src/main/java/org/olat/course/nodes/gta/ui/_content/coach.html @@ -1,4 +1,6 @@ -$r.render("contextualSubscription") +#if($r.available("contextualSubscription")) + <div class="clearfix">$r.render("contextualSubscription")</div> +#end #if($groupName && !$groupName.isEmpty()) <h4> diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_content/coach_selection.html b/src/main/java/org/olat/course/nodes/gta/ui/_content/coach_selection.html index a3b9ab8852e..b77a68ce456 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/_content/coach_selection.html +++ b/src/main/java/org/olat/course/nodes/gta/ui/_content/coach_selection.html @@ -5,7 +5,13 @@ #if($r.available("list")) $r.render("backLink") #end + #if($r.available("contextualSubscription")) + $r.render("contextualSubscription") + #end $r.render("selection") #elseif($r.available("list")) + #if($r.available("contextualSubscription")) + <div class="clearfix">$r.render("contextualSubscription")</div> + #end $r.render("list") #end \ No newline at end of file -- GitLab