From 9f24aa35e87e9c4dd427aa5ff1904b1e113604bd Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 13 Oct 2011 12:27:44 +0200 Subject: [PATCH] FXOLAT-282: can edit the meetings in run view for author and admin --HG-- branch : FXOLAT-282-virtualclassroom --- .../olat/course/nodes/ViteroCourseNode.java | 6 +- .../nodes/vitero/ViteroRunController.java | 6 +- .../ui/ViteroAdminBookingInfosController.java | 1 - .../ui/ViteroBookingEditController.java | 2 +- .../ui/ViteroBookingsRunController.java | 124 ++++++++++++++++++ .../frentix/olat/vitero/ui/_content/edit.html | 2 +- .../olat/vitero/ui/_content/run_admin.html | 7 + .../ui/_i18n/LocalStrings_de.properties | 1 + 8 files changed, 140 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/frentix/olat/vitero/ui/ViteroBookingsRunController.java create mode 100644 src/main/java/com/frentix/olat/vitero/ui/_content/run_admin.html diff --git a/src/main/java/com/frentix/olat/course/nodes/ViteroCourseNode.java b/src/main/java/com/frentix/olat/course/nodes/ViteroCourseNode.java index 8807a4fda65..2c1f44cd25a 100644 --- a/src/main/java/com/frentix/olat/course/nodes/ViteroCourseNode.java +++ b/src/main/java/com/frentix/olat/course/nodes/ViteroCourseNode.java @@ -50,8 +50,8 @@ import org.olat.repository.RepositoryManager; import com.frentix.olat.course.nodes.vitero.ViteroEditController; import com.frentix.olat.course.nodes.vitero.ViteroPeekViewController; -import com.frentix.olat.course.nodes.vitero.ViteroRunController; import com.frentix.olat.vitero.manager.ViteroManager; +import com.frentix.olat.vitero.ui.ViteroBookingsRunController; /** * @@ -119,8 +119,8 @@ public class ViteroCourseNode extends AbstractAccessableCourseNode { Long resourceId = userCourseEnv.getCourseEnvironment().getCourseResourceableId(); OLATResourceable ores = OresHelper.createOLATResourceableInstance(CourseModule.class, resourceId); - - Controller runCtr = new ViteroRunController(ureq, wControl, ores); + String courseTitle = userCourseEnv.getCourseEnvironment().getCourseTitle(); + Controller runCtr = new ViteroBookingsRunController(ureq, wControl, null, ores, courseTitle, moderator); Controller controller = TitledWrapperHelper.getWrapper(ureq, wControl, runCtr, this, "o_vc_icon"); return new NodeRunConstructionResult(controller); } diff --git a/src/main/java/com/frentix/olat/course/nodes/vitero/ViteroRunController.java b/src/main/java/com/frentix/olat/course/nodes/vitero/ViteroRunController.java index 209dc18bc34..24b7970866c 100644 --- a/src/main/java/com/frentix/olat/course/nodes/vitero/ViteroRunController.java +++ b/src/main/java/com/frentix/olat/course/nodes/vitero/ViteroRunController.java @@ -27,7 +27,7 @@ import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; import org.olat.core.id.OLATResourceable; -import com.frentix.olat.vitero.ui.ViteroBookingsController; +import com.frentix.olat.vitero.ui.ViteroBookingsRunController; /** * @@ -40,12 +40,12 @@ import com.frentix.olat.vitero.ui.ViteroBookingsController; */ public class ViteroRunController extends BasicController { - private final ViteroBookingsController bookingsController; + private final ViteroBookingsRunController bookingsController; public ViteroRunController(UserRequest ureq, WindowControl wControl, OLATResourceable ores) { super(ureq, wControl); - bookingsController = new ViteroBookingsController(ureq, wControl, null, ores); + bookingsController = new ViteroBookingsRunController(ureq, wControl, null, ores, "Test", false); listenTo(bookingsController); putInitialPanel(bookingsController.getInitialComponent()); diff --git a/src/main/java/com/frentix/olat/vitero/ui/ViteroAdminBookingInfosController.java b/src/main/java/com/frentix/olat/vitero/ui/ViteroAdminBookingInfosController.java index db705a12074..8f887595067 100644 --- a/src/main/java/com/frentix/olat/vitero/ui/ViteroAdminBookingInfosController.java +++ b/src/main/java/com/frentix/olat/vitero/ui/ViteroAdminBookingInfosController.java @@ -32,7 +32,6 @@ import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; -import com.frentix.olat.vitero.ViteroModule; import com.frentix.olat.vitero.model.ViteroBooking; import com.frentix.olat.vitero.model.ViteroGroup; diff --git a/src/main/java/com/frentix/olat/vitero/ui/ViteroBookingEditController.java b/src/main/java/com/frentix/olat/vitero/ui/ViteroBookingEditController.java index 602ad1051dd..1f7039821da 100644 --- a/src/main/java/com/frentix/olat/vitero/ui/ViteroBookingEditController.java +++ b/src/main/java/com/frentix/olat/vitero/ui/ViteroBookingEditController.java @@ -101,7 +101,7 @@ public class ViteroBookingEditController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - setFormTitle("booking.title"); + setFormTitle("booking.admin.title"); boolean editable = booking.getBookingId() <= 0; if(editable) { setFormWarning("new.booking.warning"); diff --git a/src/main/java/com/frentix/olat/vitero/ui/ViteroBookingsRunController.java b/src/main/java/com/frentix/olat/vitero/ui/ViteroBookingsRunController.java new file mode 100644 index 00000000000..2b782647984 --- /dev/null +++ b/src/main/java/com/frentix/olat/vitero/ui/ViteroBookingsRunController.java @@ -0,0 +1,124 @@ +/** + * OLAT - Online Learning and Training<br> + * http://www.olat.org + * <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 + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <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> + * Copyright (c) frentix GmbH<br> + * http://www.frentix.com<br> + * <p> + */ +package com.frentix.olat.vitero.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.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.controller.BasicController; +import org.olat.core.id.OLATResourceable; +import org.olat.group.BusinessGroup; + +/** + * + * Description:<br> + * + * <P> + * Initial Date: 13 oct. 2011 <br> + * + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + */ +public class ViteroBookingsRunController extends BasicController { + + private Link bookingsLink; + private Link adminLink; + private SegmentViewComponent segmentView; + private VelocityContainer mainVC; + + private ViteroBookingsController bookingsController; + private ViteroBookingsEditController adminController; + + private final BusinessGroup group; + private final OLATResourceable ores; + private final String resourceName; + + public ViteroBookingsRunController(UserRequest ureq, WindowControl wControl, BusinessGroup group, OLATResourceable ores, + String resourceName, boolean admin) { + super(ureq, wControl); + + this.group = group; + this.ores = ores; + this.resourceName = resourceName; + + if(admin) { + mainVC = createVelocityContainer("run_admin"); + + segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this); + bookingsLink = LinkFactory.createLink("booking.title", mainVC, this); + segmentView.addSegment(bookingsLink, true); + + adminLink = LinkFactory.createLink("booking.admin.title", mainVC, this); + segmentView.addSegment(adminLink, false); + + doOpenBookings(ureq); + + putInitialPanel(mainVC); + } else { + bookingsController = new ViteroBookingsController(ureq, wControl,group, ores); + listenTo(bookingsController); + putInitialPanel(bookingsController.getInitialComponent()); + } + } + + @Override + protected void doDispose() { + // + } + + @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 == bookingsLink) { + doOpenBookings(ureq); + } else if (clickedLink == adminLink){ + doOpenAdmin(ureq); + } + } + } + } + + private void doOpenBookings(UserRequest ureq) { + if(bookingsController == null) { + bookingsController = new ViteroBookingsController(ureq, getWindowControl(), group, ores); + listenTo(bookingsController); + } + mainVC.put("segmentCmp", bookingsController.getInitialComponent()); + } + + private void doOpenAdmin(UserRequest ureq) { + if(adminController == null) { + adminController = new ViteroBookingsEditController(ureq, getWindowControl(), group, ores, resourceName); + listenTo(adminController); + } + mainVC.put("segmentCmp", adminController.getInitialComponent()); + } +} \ No newline at end of file diff --git a/src/main/java/com/frentix/olat/vitero/ui/_content/edit.html b/src/main/java/com/frentix/olat/vitero/ui/_content/edit.html index a0739f37a62..68003bdee91 100644 --- a/src/main/java/com/frentix/olat/vitero/ui/_content/edit.html +++ b/src/main/java/com/frentix/olat/vitero/ui/_content/edit.html @@ -1,5 +1,5 @@ <fieldset> - <legend>$r.translate("booking.title")</legend> + <legend>$r.translate("booking.admin.title")</legend> $r.contextHelpWithWrapper("com.frentix.olat.vitero.ui","ced-vitero-config.html","help.hover.vitero") <table> <tr> diff --git a/src/main/java/com/frentix/olat/vitero/ui/_content/run_admin.html b/src/main/java/com/frentix/olat/vitero/ui/_content/run_admin.html new file mode 100644 index 00000000000..3d776f93825 --- /dev/null +++ b/src/main/java/com/frentix/olat/vitero/ui/_content/run_admin.html @@ -0,0 +1,7 @@ +<div class="b_clearfix"> + $r.render("segments") <br/> + + #if($r.available("segmentCmp")) + $r.render("segmentCmp") + #end +</div> \ No newline at end of file diff --git a/src/main/java/com/frentix/olat/vitero/ui/_i18n/LocalStrings_de.properties b/src/main/java/com/frentix/olat/vitero/ui/_i18n/LocalStrings_de.properties index 622b06cf9b6..b1656510f8a 100644 --- a/src/main/java/com/frentix/olat/vitero/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/com/frentix/olat/vitero/ui/_i18n/LocalStrings_de.properties @@ -33,6 +33,7 @@ booking.end=End booking.endBuffer=Ende buffer booking.resource=Resource booking.title=Termin f\u00fcr Meeting +booking.admin.title=Configure Termine booking.autoSignIn=Auto sign-in booking.roomSize=Room size booking.raw.title=Room -- GitLab