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 86dd5f8053f1d5d6025ede5559f3d61cd533adb2..1c800dff2429a503448a48b7e7e9b5292b533a8d 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 ba20f8d7fbb33024e1712704a96db91ee66e5b51..76b679bc8efce957219a6c5ef5b042ffdab2021f 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 2f393eb6f6e03b6e4a8244661c92d7688ee7e392..4f6b69da65b44181d51badf31defe46132d62783 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 f38d36215b83462963b341f0103e027b8fd90940..a9df84e511ecd76f9189d46971bdda4a965c50bd 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 bca737cf89f91feb534be23824d5fa57ea96a2b2..208bfd4c09addf4a51bee75e0ed886bfbfe1b2f0 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 ece81067f418acf3fb20f0999c44115b0f110abd..39bd05d05ebdd2e39cb807e879f95b28b6096e4d 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 4bb494e93694baaec8e1ff57cd278a47d3372219..4785f238a7aa7b42fd1ef051ad0293eea2d703fa 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 0e27b90083d1187ec9d6da65723baf0b97bb493a..66fc4eddf141ac5d8b99fabf09c7e395a09c217e 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 23c089108ba6caf903beebc0f264394d95cc9ac2..d609ff76cf3a372d5dae1b0b138d7aaf1ac38b9b 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 e8edd9d04a85258e21d02b8ab64c7a4877fb76f7..01eb1b62a1a5e691d769e91ba8063e35a9e275f3 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 a2340806216e18d8a5d87b3f167f3f7a141815c1..ee787002bfa3ba50b52e4492c98dd4d78c85611a 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 c13ae7f194b5d386ffedb0d9dd035017dc1c0b69..69260d16b39bfe596a6acd6125102bd72516ef5d 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 d12f8e71f013960064403f84bfdc9d93bc6a90d2..2af1807bfb96bec544717d571991f8f4a4f105b9 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 a3b9ab8852ef1b095b69151f7fb670857082f625..b77a68ce4564dab9a1a91d39d3a4bc6f0cd0a9ac 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