From 41124a12cf949b9f61d00e60b60619b3234dccf1 Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Mon, 7 Oct 2019 14:42:46 +0200 Subject: [PATCH] OO-4285: Restrict rights to selected role in the participant folder course node --- .../org/olat/course/nodes/PFCourseNode.java | 18 ++- .../nodes/pf/manager/FileSystemExport.java | 6 +- .../course/nodes/pf/manager/PFManager.java | 10 +- .../nodes/pf/manager/PFNotifications.java | 6 +- .../pf/manager/PFNotificationsHandler.java | 8 +- .../course/nodes/pf/ui/PFCoachController.java | 17 +- .../nodes/pf/ui/PFParticipantController.java | 4 +- .../nodes/pf/ui/PFPreviewController.java | 2 +- .../course/nodes/pf/ui/PFRunController.java | 148 ------------------ .../olat/course/nodes/pf/ui/_content/run.html | 11 -- .../pf/ui/_i18n/LocalStrings_de.properties | 2 - .../pf/ui/_i18n/LocalStrings_en.properties | 2 - .../pf/ui/_i18n/LocalStrings_fr.properties | 2 - .../pf/ui/_i18n/LocalStrings_it.properties | 2 - .../pf/ui/_i18n/LocalStrings_pt_BR.properties | 2 - 15 files changed, 39 insertions(+), 201 deletions(-) delete mode 100644 src/main/java/org/olat/course/nodes/pf/ui/PFRunController.java delete mode 100644 src/main/java/org/olat/course/nodes/pf/ui/_content/run.html diff --git a/src/main/java/org/olat/course/nodes/PFCourseNode.java b/src/main/java/org/olat/course/nodes/PFCourseNode.java index 6d5d2e5f2f7..70ca41f22ba 100644 --- a/src/main/java/org/olat/course/nodes/PFCourseNode.java +++ b/src/main/java/org/olat/course/nodes/PFCourseNode.java @@ -48,10 +48,11 @@ import org.olat.course.editor.NodeEditController; import org.olat.course.editor.StatusDescription; import org.olat.course.nodes.pf.manager.FileSystemExport; import org.olat.course.nodes.pf.manager.PFManager; +import org.olat.course.nodes.pf.ui.PFCoachController; import org.olat.course.nodes.pf.ui.PFEditController; +import org.olat.course.nodes.pf.ui.PFParticipantController; import org.olat.course.nodes.pf.ui.PFPeekviewController; import org.olat.course.nodes.pf.ui.PFPreviewController; -import org.olat.course.nodes.pf.ui.PFRunController; import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.course.run.userview.CourseNodeSecurityCallback; @@ -221,8 +222,15 @@ public class PFCourseNode extends AbstractAccessableCourseNode { @Override public NodeRunConstructionResult createNodeRunConstructionResult(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv, CourseNodeSecurityCallback nodeSecCallback, String nodecmd) { - PFRunController runController = new PFRunController(ureq, wControl, this, userCourseEnv); - return runController.createNodeRunConstructionResult(ureq); + Controller runCtrl; + if (userCourseEnv.isCoach() || userCourseEnv.isAdmin()) { + runCtrl = new PFCoachController(ureq, wControl, this, userCourseEnv); + } else { + runCtrl = new PFParticipantController(ureq, wControl, this, userCourseEnv, + userCourseEnv.getIdentityEnvironment().getIdentity(), false, false); + } + Controller ctrl = TitledWrapperHelper.getWrapper(ureq, wControl, runCtrl, this, "o_pf_icon"); + return new NodeRunConstructionResult(ctrl); } @Override @@ -281,8 +289,8 @@ public class PFCourseNode extends AbstractAccessableCourseNode { CourseEnvironment courseEnv = course.getCourseEnvironment(); Path sourceFolder = Paths.get(courseEnv.getCourseBaseContainer().getBasefile().getAbsolutePath(), PFManager.FILENAME_PARTICIPANTFOLDER, getIdent()); - Translator translator = Util.createPackageTranslator(PFRunController.class, locale); - return FileSystemExport.fsToZip(exportStream, archivePath, sourceFolder, this, null, translator); + Translator translator = Util.createPackageTranslator(PFParticipantController.class, locale); + return FileSystemExport.fsToZip(exportStream, archivePath, sourceFolder, this, null, translator); } @Override diff --git a/src/main/java/org/olat/course/nodes/pf/manager/FileSystemExport.java b/src/main/java/org/olat/course/nodes/pf/manager/FileSystemExport.java index 0b930721e4b..16698cec761 100644 --- a/src/main/java/org/olat/course/nodes/pf/manager/FileSystemExport.java +++ b/src/main/java/org/olat/course/nodes/pf/manager/FileSystemExport.java @@ -37,18 +37,18 @@ import java.util.zip.ZipOutputStream; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.Logger; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.media.MediaResource; import org.olat.core.gui.media.ServletUtil; import org.olat.core.gui.translator.Translator; import org.olat.core.id.Identity; -import org.apache.logging.log4j.Logger; import org.olat.core.logging.Tracing; import org.olat.core.util.StringHelper; import org.olat.core.util.Util; import org.olat.core.util.io.SystemFileFilter; import org.olat.course.nodes.PFCourseNode; -import org.olat.course.nodes.pf.ui.PFRunController; +import org.olat.course.nodes.pf.ui.PFParticipantController; import org.olat.course.run.environment.CourseEnvironment; import org.olat.user.UserManager; /** @@ -71,7 +71,7 @@ public class FileSystemExport implements MediaResource { this.identities = identities; this.pfNode = pfNode; this.courseEnv = courseEnv; - this.translator = Util.createPackageTranslator(PFRunController.class, locale); + this.translator = Util.createPackageTranslator(PFParticipantController.class, locale); } diff --git a/src/main/java/org/olat/course/nodes/pf/manager/PFManager.java b/src/main/java/org/olat/course/nodes/pf/manager/PFManager.java index 7edf193d666..6bef576dabd 100644 --- a/src/main/java/org/olat/course/nodes/pf/manager/PFManager.java +++ b/src/main/java/org/olat/course/nodes/pf/manager/PFManager.java @@ -36,11 +36,11 @@ import java.util.Locale; import java.util.Set; import java.util.stream.Collectors; +import org.apache.logging.log4j.Logger; import org.olat.basesecurity.GroupRoles; import org.olat.core.commons.services.notifications.SubscriptionContext; import org.olat.core.gui.translator.Translator; import org.olat.core.id.Identity; -import org.apache.logging.log4j.Logger; import org.olat.core.logging.Tracing; import org.olat.core.util.Util; import org.olat.core.util.i18n.I18nManager; @@ -58,7 +58,7 @@ import org.olat.core.util.vfs.filters.VFSSystemItemFilter; import org.olat.course.CourseModule; import org.olat.course.nodes.PFCourseNode; import org.olat.course.nodes.pf.ui.DropBoxRow; -import org.olat.course.nodes.pf.ui.PFRunController; +import org.olat.course.nodes.pf.ui.PFParticipantController; import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroupRef; @@ -316,7 +316,7 @@ public class PFManager { private VFSContainer provideParticipantContainer (PFCourseNode pfNode, CourseEnvironment courseEnv, Identity identity, boolean courseReadOnly) { Locale locale = I18nManager.getInstance().getLocaleOrDefault(identity.getUser().getPreferences().getLanguage()); - Translator translator = Util.createPackageTranslator(PFRunController.class, locale); + Translator translator = Util.createPackageTranslator(PFParticipantController.class, locale); SubscriptionContext subsContext = CourseModule.createSubscriptionContext(courseEnv, pfNode); String path = courseEnv.getCourseBaseContainer().getRelPath() + "/" + FILENAME_PARTICIPANTFOLDER; String quotaPath = path + "/" + pfNode.getIdent(); @@ -355,7 +355,7 @@ public class PFManager { */ private VFSContainer provideCoachContainer (PFCourseNode pfNode, CourseEnvironment courseEnv, Identity identity, boolean admin) { Locale locale = I18nManager.getInstance().getLocaleOrDefault(identity.getUser().getPreferences().getLanguage()); - Translator translator = Util.createPackageTranslator(PFRunController.class, locale); + Translator translator = Util.createPackageTranslator(PFParticipantController.class, locale); SubscriptionContext nodefolderSubContext = CourseModule.createSubscriptionContext(courseEnv, pfNode); List<Identity> participants = getParticipants(identity, courseEnv, admin); String courseContainerRelPath = courseEnv.getCourseBaseContainer().getRelPath(); @@ -403,7 +403,7 @@ public class PFManager { * @return the VFS container */ public VFSContainer provideAdminContainer (PFCourseNode pfNode, CourseEnvironment courseEnv) { - Translator translator = Util.createPackageTranslator(PFRunController.class, I18nModule.getDefaultLocale()); + Translator translator = Util.createPackageTranslator(PFParticipantController.class, I18nModule.getDefaultLocale()); SubscriptionContext nodefolderSubContext = CourseModule.createSubscriptionContext(courseEnv, pfNode); RepositoryEntry re = courseEnv.getCourseGroupManager().getCourseEntry(); List<Identity> participants = repositoryEntryRelationDao.getMembers(re, diff --git a/src/main/java/org/olat/course/nodes/pf/manager/PFNotifications.java b/src/main/java/org/olat/course/nodes/pf/manager/PFNotifications.java index af103a48532..91b70578ede 100644 --- a/src/main/java/org/olat/course/nodes/pf/manager/PFNotifications.java +++ b/src/main/java/org/olat/course/nodes/pf/manager/PFNotifications.java @@ -31,6 +31,7 @@ import java.util.Iterator; import java.util.List; import java.util.Locale; +import org.apache.logging.log4j.Logger; import org.olat.core.commons.modules.bc.FileInfo; import org.olat.core.commons.modules.bc.FolderManager; import org.olat.core.commons.services.notifications.NotificationsManager; @@ -41,14 +42,13 @@ import org.olat.core.commons.services.vfs.VFSMetadata; import org.olat.core.gui.translator.Translator; import org.olat.core.id.Identity; import org.olat.core.id.context.BusinessControlFactory; -import org.apache.logging.log4j.Logger; import org.olat.core.logging.Tracing; import org.olat.core.util.Util; import org.olat.course.CourseFactory; import org.olat.course.ICourse; import org.olat.course.groupsandrights.CourseGroupManager; import org.olat.course.nodes.CourseNode; -import org.olat.course.nodes.pf.ui.PFRunController; +import org.olat.course.nodes.pf.ui.PFParticipantController; import org.olat.course.run.environment.CourseEnvironment; import org.olat.repository.RepositoryEntry; import org.olat.user.UserManager; @@ -81,7 +81,7 @@ public class PFNotifications { this.notificationsManager = notificationsManager; this.pfManager = pfManager; this.userManager = userManager; - translator = Util.createPackageTranslator(PFRunController.class, locale); + translator = Util.createPackageTranslator(PFParticipantController.class, locale); } public List<SubscriptionListItem> getItems() { diff --git a/src/main/java/org/olat/course/nodes/pf/manager/PFNotificationsHandler.java b/src/main/java/org/olat/course/nodes/pf/manager/PFNotificationsHandler.java index 9bc43b8da96..35ee73eb675 100644 --- a/src/main/java/org/olat/course/nodes/pf/manager/PFNotificationsHandler.java +++ b/src/main/java/org/olat/course/nodes/pf/manager/PFNotificationsHandler.java @@ -23,6 +23,7 @@ import java.util.Date; import java.util.List; import java.util.Locale; +import org.apache.logging.log4j.Logger; import org.olat.core.CoreSpringFactory; import org.olat.core.commons.services.notifications.NotificationsHandler; import org.olat.core.commons.services.notifications.NotificationsManager; @@ -35,12 +36,11 @@ import org.olat.core.commons.services.notifications.model.SubscriptionListItem; import org.olat.core.commons.services.notifications.model.TitleItem; import org.olat.core.gui.translator.Translator; import org.olat.core.gui.util.CSSHelper; -import org.apache.logging.log4j.Logger; import org.olat.core.logging.Tracing; import org.olat.core.util.Util; import org.olat.course.CourseModule; import org.olat.course.nodes.CourseNode; -import org.olat.course.nodes.pf.ui.PFRunController; +import org.olat.course.nodes.pf.ui.PFParticipantController; import org.olat.course.run.environment.CourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroupService; @@ -81,7 +81,7 @@ public class PFNotificationsHandler implements NotificationsHandler { Publisher p = subscriber.getPublisher(); try { - final Translator translator = Util.createPackageTranslator(PFRunController.class, locale); + final Translator translator = Util.createPackageTranslator(PFParticipantController.class, locale); PFNotifications notifications = new PFNotifications(subscriber, locale, compareDate, pfManager, notificationsManager, userManager); @@ -144,7 +144,7 @@ public class PFNotificationsHandler implements NotificationsHandler { @Override public String createTitleInfo(Subscriber subscriber, Locale locale) { - Translator translator = Util.createPackageTranslator(PFRunController.class, locale); + Translator translator = Util.createPackageTranslator(PFParticipantController.class, locale); TitleItem title = getTitleItem(subscriber.getPublisher(), translator); return title.getInfoContent("text/plain"); } diff --git a/src/main/java/org/olat/course/nodes/pf/ui/PFCoachController.java b/src/main/java/org/olat/course/nodes/pf/ui/PFCoachController.java index 541e46dc32e..964cd73a97a 100644 --- a/src/main/java/org/olat/course/nodes/pf/ui/PFCoachController.java +++ b/src/main/java/org/olat/course/nodes/pf/ui/PFCoachController.java @@ -64,7 +64,6 @@ import org.olat.core.util.resource.OresHelper; import org.olat.course.nodes.PFCourseNode; import org.olat.course.nodes.pf.manager.FileSystemExport; import org.olat.course.nodes.pf.manager.PFManager; -import org.olat.course.nodes.pf.manager.PFView; import org.olat.course.nodes.pf.ui.DropBoxTableModel.DropBoxCols; import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.run.userview.UserCourseEnvironment; @@ -113,7 +112,6 @@ public class PFCoachController extends FormBasicController implements Controller private UserCourseEnvironment userCourseEnv; private CourseEnvironment courseEnv; - private PFView pfView; @Autowired private PFManager pfManager; @Autowired @@ -124,13 +122,12 @@ public class PFCoachController extends FormBasicController implements Controller private BaseSecurityModule securityModule; public PFCoachController(UserRequest ureq, WindowControl wControl, PFCourseNode sfNode, - UserCourseEnvironment userCourseEnv, PFView pfView) { + UserCourseEnvironment userCourseEnv) { super(ureq, wControl, "coach"); this.userCourseEnv = userCourseEnv; this.courseEnv = userCourseEnv.getCourseEnvironment(); this.pfNode = sfNode; - this.pfView = pfView; Roles roles = ureq.getUserSession().getRoles(); isAdministrativeUser = securityModule.isUserAllowedAdminProps(roles); @@ -196,11 +193,11 @@ public class PFCoachController extends FormBasicController implements Controller SelectionEvent se = (SelectionEvent)event; DropBoxRow currentObject = tableModel.getObject(se.getIndex()); if ("drop.box".equals(se.getCommand())){ - doSelectParticipantFolder (ureq, currentObject.getIdentity(), PFView.displayDrop); + doSelectParticipantFolder (ureq, currentObject.getIdentity()); } else if ("return.box".equals(se.getCommand())){ - doSelectParticipantFolder (ureq, currentObject.getIdentity(), PFView.displayReturn); + doSelectParticipantFolder (ureq, currentObject.getIdentity()); } else if ("open.box".equals(se.getCommand())){ - doSelectParticipantFolder (ureq, currentObject.getIdentity(), PFView.dropAndReturn); + doSelectParticipantFolder (ureq, currentObject.getIdentity()); } else if ("firstName".equals(se.getCommand()) || "lastName".equals(se.getCommand())) { doOpenHomePage(ureq, currentObject.getIdentity()); } @@ -210,11 +207,11 @@ public class PFCoachController extends FormBasicController implements Controller } } - private void doSelectParticipantFolder (UserRequest ureq, UserPropertiesRow row, PFView view) { + private void doSelectParticipantFolder (UserRequest ureq, UserPropertiesRow row) { Identity assessedIdentity = securityManager.loadIdentityByKey(row.getIdentityKey()); removeAsListenerAndDispose(pfParticipantController); pfParticipantController = new PFParticipantController(ureq, getWindowControl(), pfNode, - userCourseEnv, assessedIdentity, view, true, false); + userCourseEnv, assessedIdentity, true, false); listenTo(pfParticipantController); flc.put("single", pfParticipantController.getInitialComponent()); } @@ -284,7 +281,7 @@ public class PFCoachController extends FormBasicController implements Controller dropboxTable.setExportEnabled(true); dropboxTable.setSortSettings(options); initFilters(); - dropboxTable.setAndLoadPersistedPreferences(ureq, "participant-folder_coach_" + pfView.name()); + dropboxTable.setAndLoadPersistedPreferences(ureq, "participant-folder_coach"); dropboxTable.setEmtpyTableMessageKey("table.empty"); diff --git a/src/main/java/org/olat/course/nodes/pf/ui/PFParticipantController.java b/src/main/java/org/olat/course/nodes/pf/ui/PFParticipantController.java index b94726c55f7..1927cc95b84 100644 --- a/src/main/java/org/olat/course/nodes/pf/ui/PFParticipantController.java +++ b/src/main/java/org/olat/course/nodes/pf/ui/PFParticipantController.java @@ -49,12 +49,13 @@ public class PFParticipantController extends BasicController { private VelocityContainer mainVC; private FolderRunController folderRunController; private ContextualSubscriptionController contextualSubscriptionCtr; + @Autowired private PFManager pfManager; @SuppressWarnings("incomplete-switch") public PFParticipantController(UserRequest ureq, WindowControl wControl, PFCourseNode pfNode, - UserCourseEnvironment userCourseEnv, Identity identity, PFView pfView, boolean isCoach, boolean readOnly) { + UserCourseEnvironment userCourseEnv, Identity identity, boolean isCoach, boolean readOnly) { super(ureq, wControl); mainVC = createVelocityContainer("participant"); @@ -78,6 +79,7 @@ public class PFParticipantController extends BasicController { //CourseFreeze readOnly = readOnly ? true : userCourseEnv.isCourseReadOnly(); + PFView pfView = pfManager.providePFView(pfNode); VFSContainer frc = pfManager.provideParticipantFolder(pfNode, pfView, getTranslator(),courseEnv, identity, isCoach, readOnly); folderRunController = new FolderRunController(frc, false, false, false, false, ureq, wControl, null, null, null); diff --git a/src/main/java/org/olat/course/nodes/pf/ui/PFPreviewController.java b/src/main/java/org/olat/course/nodes/pf/ui/PFPreviewController.java index 6636a4f7737..b29d627307f 100644 --- a/src/main/java/org/olat/course/nodes/pf/ui/PFPreviewController.java +++ b/src/main/java/org/olat/course/nodes/pf/ui/PFPreviewController.java @@ -57,7 +57,7 @@ public class PFPreviewController extends BasicController { previewVC.contextPut("timeframe", timeframe); PFParticipantController participantController = new PFParticipantController(ureq, getWindowControl(), - pfNode, userCourseEnv, ureq.getIdentity(), pfManager.providePFView(pfNode), true, true); + pfNode, userCourseEnv, ureq.getIdentity(), true, true); listenTo(participantController); participantController.disableSubscriptionController(); previewVC.put("folder", participantController.getInitialComponent()); diff --git a/src/main/java/org/olat/course/nodes/pf/ui/PFRunController.java b/src/main/java/org/olat/course/nodes/pf/ui/PFRunController.java deleted file mode 100644 index 601d15cce7b..00000000000 --- a/src/main/java/org/olat/course/nodes/pf/ui/PFRunController.java +++ /dev/null @@ -1,148 +0,0 @@ -/** - * <a href="http://www.openolat.org"> - * OpenOLAT - Online Learning and Training</a><br> - * <p> - * Licensed under the Apache License, Version 2.0 (the "License"); <br> - * you may not use this file except in compliance with the License.<br> - * You may obtain a copy of the License at the - * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> - * <p> - * Unless required by applicable law or agreed to in writing,<br> - * software distributed under the License is distributed on an "AS IS" BASIS, <br> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> - * See the License for the specific language governing permissions and <br> - * limitations under the License. - * <p> - * Initial code contributed and copyrighted by<br> - * frentix GmbH, http://www.frentix.com - * <p> - */ -package org.olat.course.nodes.pf.ui; - -import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.link.Link; -import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.segmentedview.SegmentViewComponent; -import org.olat.core.gui.components.segmentedview.SegmentViewEvent; -import org.olat.core.gui.components.segmentedview.SegmentViewFactory; -import org.olat.core.gui.components.velocity.VelocityContainer; -import org.olat.core.gui.control.Controller; -import org.olat.core.gui.control.Event; -import org.olat.core.gui.control.WindowControl; -import org.olat.core.gui.control.controller.BasicController; -import org.olat.core.id.Identity; -import org.olat.course.nodes.PFCourseNode; -import org.olat.course.nodes.TitledWrapperHelper; -import org.olat.course.nodes.pf.manager.PFEvent; -import org.olat.course.nodes.pf.manager.PFManager; -import org.olat.course.nodes.pf.manager.PFView; -import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.userview.UserCourseEnvironment; -import org.springframework.beans.factory.annotation.Autowired; -/** -* -* @author Fabian Kiefer, fabian.kiefer@frentix.com, http://www.frentix.com -* -*/ -public class PFRunController extends BasicController { - - private PFCourseNode pfNode; - private UserCourseEnvironment userCourseEnv; - private PFView pfView; - - private PFCoachController coachController; - private PFParticipantController participantController; - - private Link coachLink, participantLink; - - private VelocityContainer mainVC; - private SegmentViewComponent segmentView; - - - @Autowired - private PFManager pfManager; - - public PFRunController(UserRequest ureq, WindowControl wControl, PFCourseNode pfNode, UserCourseEnvironment userCourseEnv) { - super(ureq, wControl); - this.pfNode = pfNode; - this.userCourseEnv = userCourseEnv; - pfView = pfManager.providePFView(pfNode); - - mainVC = createVelocityContainer("run"); - - if (userCourseEnv.isCoach() || userCourseEnv.isAdmin()) { - if ((userCourseEnv.isCoach() || userCourseEnv.isAdmin()) && userCourseEnv.isParticipant()) { - segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this); - coachLink = LinkFactory.createLink("tab.coach", mainVC, this); - segmentView.addSegment(coachLink, true); - participantLink = LinkFactory.createLink("tab.participant", mainVC, this); - segmentView.addSegment(participantLink, false); - } - doOpenCoachView(ureq); - } else { - doOpenParticipantsView(ureq); - } - - putInitialPanel(mainVC); - } - - @Override - protected void event(UserRequest ureq, Component source, Event event) { - if(source == segmentView) { - if(event instanceof SegmentViewEvent) { - SegmentViewEvent sve = (SegmentViewEvent)event; - String segmentCName = sve.getComponentName(); - Component clickedLink = mainVC.getComponent(segmentCName); - if (clickedLink == coachLink) { - doOpenCoachView(ureq); - } else if (clickedLink == participantLink) { - doOpenParticipantsView(ureq); - } - } - } - } - - @Override - protected void event(UserRequest ureq, Controller source, Event event) { - if (source == coachController) { - if (event instanceof PFEvent) { - segmentView.select(participantLink); - PFEvent sfe = (PFEvent)event; - doOpenParticipantsView(ureq, sfe.getIdentity(), pfView); - } else if (event == Event.CHANGED_EVENT) { - doOpenCoachView(ureq); - } - } - super.event(ureq, source, event); - } - - @Override - protected void doDispose() { - - } - - private void doOpenCoachView(UserRequest ureq) { - coachController = new PFCoachController(ureq, getWindowControl(), pfNode, userCourseEnv, pfView); - listenTo(coachController); - mainVC.put("segmentCmp", coachController.getInitialComponent()); - } - - private void doOpenParticipantsView (UserRequest ureq) { - doOpenParticipantsView(ureq, ureq.getIdentity(), pfView); - } - - private void doOpenParticipantsView(UserRequest ureq, Identity identity, PFView view) { - participantController = new PFParticipantController(ureq, getWindowControl(), pfNode, - userCourseEnv, identity, view, false, false); - listenTo(participantController); - mainVC.put("segmentCmp", participantController.getInitialComponent()); - } - - public NodeRunConstructionResult createNodeRunConstructionResult(UserRequest ureq) { - // integrate it into the olat menu - Controller ctrl = TitledWrapperHelper.getWrapper(ureq, getWindowControl(), this, pfNode, "o_pf_icon"); - return new NodeRunConstructionResult(ctrl); - } - -} diff --git a/src/main/java/org/olat/course/nodes/pf/ui/_content/run.html b/src/main/java/org/olat/course/nodes/pf/ui/_content/run.html deleted file mode 100644 index 5aad1fca2df..00000000000 --- a/src/main/java/org/olat/course/nodes/pf/ui/_content/run.html +++ /dev/null @@ -1,11 +0,0 @@ -<div class="clearfix"> - #if($r.available("segments")) - <div class="o_block_bottom"> - $r.render("segments") - </div> - #end - - #if($r.available("segmentCmp")) - $r.render("segmentCmp") - #end -</div> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_de.properties index 39c34119494..93c10ac0e2e 100644 --- a/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_de.properties @@ -32,8 +32,6 @@ open.box=Ordner \u00F6ffnen table.no.selection=Es wurde kein Benutzer ausgew\u00E4hlt! upload.link=Dokument an mehrere verteilen download.link=Mehrere Ordner herunterladen -tab.coach=Betreuer Ansicht -tab.participant=Teilnehmer Ansicht notifications.header.course=Ordner in Kurs "{0}" notifications.entry.upload=Das Dokument "{0}" wurde eingestellt {1} {2}. notifications.entry.modify=Das Dokument "{0}" wurde ge\u00E4ndert {1} {2}. diff --git a/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_en.properties index aeae8643186..bbefd8f25d3 100644 --- a/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_en.properties @@ -32,8 +32,6 @@ open.box=Open folder table.no.selection=No User has been selected! upload.link=Bulk upload download.link=Bulk download -tab.coach=Coach view -tab.participant=Participant view notifications.header.course=Folder in course "{0}" notifications.entry.upload=A new file "{0}" has been uploaded {1} {2}. notifications.entry.modify=File "{0}" has been modified {1} {2}. diff --git a/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_fr.properties index d25057a7db9..dfa94c53a44 100644 --- a/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_fr.properties @@ -37,8 +37,6 @@ preview.timeframe=Intervalle de temps return.box=Dossier de restitution return.info=Ci-dessous vous trouverez tous les fichiers retourn\u00E9s par votre coach. show.all=Tout montrer -tab.coach=Coach -tab.participant=Participant table.cols.lastUpdate=Date derni\u00E8re modification table.cols.lastUpdateReturn=Derni\u00E8re modification table.cols.newFiles=Nouveau diff --git a/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_it.properties index b6d04abbb0b..9604cba93e2 100644 --- a/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_it.properties @@ -34,8 +34,6 @@ preview.return=Cartella di restituzione del docente abilitata preview.timeframe=Intervallo di tempo return.box=Cartella di restituzione del docente return.info=Nella lista sottostante sono presenti tutti i documenti che il docente ha restituito. -tab.coach=Visualizzazione del docente -tab.participant=Visualizzazione del partecipante table.cols.lastUpdate=Ultima modifica table.cols.lastUpdateReturn=Ultima modifica table.cols.newFiles=Nuovo diff --git a/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_pt_BR.properties index dddb9ec26f9..16ac84eaefb 100644 --- a/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/course/nodes/pf/ui/_i18n/LocalStrings_pt_BR.properties @@ -36,8 +36,6 @@ preview.timeframe=Intervalo de tempo return.box=Caixa de retorno do treinador return.info=Abaixo voc\u00EA encontrar\u00E1 todos os arquivos retornados pelo seu treinador. show.all=Mostrar tudo -tab.coach=Vis\u00E3o do Treinador (Coach) -tab.participant=Vis\u00E3o do participante table.cols.lastUpdate=\u00DAltima modifica\u00E7\u00E3o table.cols.lastUpdateReturn=\u00DAltima modifica\u00E7\u00E3o table.cols.newFiles=Novo -- GitLab