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