diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java index c6a6a75ee5e1bca48488e22ced509053f17e95f9..94a0e4fbe141bd6a45525a5e4d765e731150d8fe 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java @@ -68,7 +68,8 @@ public class ProjectBrokerDropboxScoringViewController extends DropboxScoringVie Translator fallbackTranslator = Util.createPackageTranslator(this.getClass(), ureq.getLocale()); Translator myTranslator = Util.createPackageTranslator(DropboxScoringViewController.class, ureq.getLocale(), fallbackTranslator); setTranslator(myTranslator); - init(ureq); + boolean hasNotification = ( userCourseEnv.getCourseEnvironment().getCourseGroupManager().isIdentityCourseAdministrator(ureq.getIdentity())) || userCourseEnv.getCourseEnvironment().getCourseGroupManager().isIdentityCourseCoach(ureq.getIdentity()); + init(ureq, hasNotification); } protected String getDropboxFilePath(String assesseeName) { diff --git a/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java b/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java index 16a41e2cbc9dd7a86f07a4cd476009a74acca019..758ca0c49f387202e85129bdb201568201e466e4 100644 --- a/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java +++ b/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java @@ -36,6 +36,7 @@ import org.olat.core.commons.modules.bc.FolderRunController; import org.olat.core.commons.modules.bc.vfs.OlatNamedContainerImpl; import org.olat.core.commons.modules.bc.vfs.OlatRootFolderImpl; 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; @@ -99,6 +100,9 @@ public class DropboxScoringViewController extends BasicController { private CloseableModalController cmc; private IFrameDisplayController iFrameCtr; private DialogBoxController dialogBoxController; + private boolean hasNotification = false; + private SubscriptionContext subsContext; + private ContextualSubscriptionController contextualSubscriptionCtr; /** * Scoring view of the dropbox. @@ -129,6 +133,11 @@ public class DropboxScoringViewController extends BasicController { init(ureq); } } + + protected void init(UserRequest ureq, boolean hasNotification){ + this.hasNotification = hasNotification; + init(ureq); + } protected void init(UserRequest ureq) { myContent = createVelocityContainer("dropboxscoring"); @@ -152,6 +161,19 @@ public class DropboxScoringViewController extends BasicController { UserManager userManager = CoreSpringFactory.getImpl(UserManager.class); String assesseeFullName = StringHelper.escapeHtml(userManager.getUserDisplayName(assessee)); + // notification + if (hasNotification) { + subsContext = DropboxFileUploadNotificationHandler.getSubscriptionContext(userCourseEnv.getCourseEnvironment(), node); + if (subsContext != null) { + String path = DropboxController.getDropboxPathRelToFolderRoot(userCourseEnv.getCourseEnvironment(), node); + contextualSubscriptionCtr = AbstractTaskNotificationHandler.createContextualSubscriptionController(ureq, this.getWindowControl(), path, subsContext, DropboxController.class); + myContent.put("subscription", contextualSubscriptionCtr.getInitialComponent()); + myContent.contextPut("hasNotification", Boolean.TRUE); + } + } else { + myContent.contextPut("hasNotification", Boolean.FALSE); + } + OlatRootFolderImpl rootDropbox = new OlatRootFolderImpl(getDropboxFilePath(assesseeName), null); rootDropbox.setLocalSecurityCallback( getDropboxVfsSecurityCallback()); OlatNamedContainerImpl namedDropbox = new OlatNamedContainerImpl(assesseeFullName, rootDropbox); diff --git a/src/main/java/org/olat/course/nodes/ta/_content/dropboxscoring.html b/src/main/java/org/olat/course/nodes/ta/_content/dropboxscoring.html index 5a1e155843a01711e16c09347ab2c74bbf232108..25005c6ddb35a27f55172696bd1132276c235f0c 100644 --- a/src/main/java/org/olat/course/nodes/ta/_content/dropboxscoring.html +++ b/src/main/java/org/olat/course/nodes/ta/_content/dropboxscoring.html @@ -28,6 +28,11 @@ <h4 class="panel-title">$r.translate("dropbox.title")</h4> </div> <div id="collapseDropbox" class="panel-collapse collapse in"> + <div class="panel-body"> + #if($hasNotification == true) + $r.render("subscription") + #end + </div> <div class="panel-body"> $r.render("dropbox") </div>