/** * <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.admin.site.ui; import org.olat.core.CoreSpringFactory; 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.gui.control.navigation.SiteDefinitions; import org.olat.course.site.model.CourseSiteConfiguration; import org.olat.course.site.ui.CourseSiteAdminController; /** * Administration of the sites: * <ul> * <li>Tab with the order, security callbacks and alternative controller for all sites * <li>Configuration of the first info page * <li>Configuration of the second info page * </ul> * Initial date: 20.09.2013<br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * */ public class SitesAdminController extends BasicController { private final SiteDefinitions sitesModule; private final Link orderLink, courseSite1Link, courseSite2Link, courseSite3Link, courseSite4Link; private final SegmentViewComponent segmentView; private final VelocityContainer mainVC; private SitesConfigurationController orderCtrl; private CourseSiteAdminController courseSite1Ctrl; private CourseSiteAdminController courseSite2Ctrl; private CourseSiteAdminController courseSite3Ctrl; private CourseSiteAdminController courseSite4Ctrl; public SitesAdminController(UserRequest ureq, WindowControl wControl) { super(ureq, wControl); sitesModule = CoreSpringFactory.getImpl(SiteDefinitions.class); mainVC = createVelocityContainer("sites_admin"); segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this); orderLink = LinkFactory.createLink("sites.order", mainVC, this); segmentView.addSegment(orderLink, true); courseSite1Link = LinkFactory.createLink("site.courseSite1", mainVC, this); segmentView.addSegment(courseSite1Link, false); courseSite2Link = LinkFactory.createLink("site.courseSite2", mainVC, this); segmentView.addSegment(courseSite2Link, false); courseSite3Link = LinkFactory.createLink("site.courseSite3", mainVC, this); segmentView.addSegment(courseSite3Link, false); courseSite4Link = LinkFactory.createLink("site.courseSite4", mainVC, this); segmentView.addSegment(courseSite4Link, false); doOpenAccountSettings(ureq); putInitialPanel(mainVC); } @Override protected void doDispose() { //auto-disposed } @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 == orderLink) { doOpenAccountSettings(ureq); } else if (clickedLink == courseSite1Link){ doCourseSite1Settings(ureq); } else if (clickedLink == courseSite2Link){ doCourseSite2Settings(ureq); } else if (clickedLink == courseSite3Link){ doCourseSite3Settings(ureq); } else if (clickedLink == courseSite4Link){ doCourseSite4Settings(ureq); } } } } @Override protected void event(UserRequest ureq, Controller source, Event event) { if(source == courseSite1Ctrl) { if(event == Event.CHANGED_EVENT || event == Event.DONE_EVENT) { sitesModule.setConfigurationCourseSite1(courseSite1Ctrl.saveConfiguration()); } } else if(source == courseSite2Ctrl) { if(event == Event.CHANGED_EVENT || event == Event.DONE_EVENT) { sitesModule.setConfigurationCourseSite2(courseSite2Ctrl.saveConfiguration()); } } else if(source == courseSite3Ctrl) { if(event == Event.CHANGED_EVENT || event == Event.DONE_EVENT) { sitesModule.setConfigurationCourseSite3(courseSite3Ctrl.saveConfiguration()); } } else if(source == courseSite4Ctrl) { if(event == Event.CHANGED_EVENT || event == Event.DONE_EVENT) { sitesModule.setConfigurationCourseSite4(courseSite4Ctrl.saveConfiguration()); } } super.event(ureq, source, event); } private void doOpenAccountSettings(UserRequest ureq) { if(orderCtrl == null) { orderCtrl = new SitesConfigurationController(ureq, getWindowControl()); listenTo(orderCtrl); } else { orderCtrl.reload(); } mainVC.put("segmentCmp", orderCtrl.getInitialComponent()); } private void doCourseSite1Settings(UserRequest ureq) { if(courseSite1Ctrl == null) { CourseSiteConfiguration siteConfiguration = sitesModule.getConfigurationCourseSite1(); if(siteConfiguration == null) { siteConfiguration = new CourseSiteConfiguration(); } courseSite1Ctrl = new CourseSiteAdminController(ureq, getWindowControl(), siteConfiguration); listenTo(courseSite1Ctrl); } mainVC.put("segmentCmp", courseSite1Ctrl.getInitialComponent()); } private void doCourseSite2Settings(UserRequest ureq) { if(courseSite2Ctrl == null) { CourseSiteConfiguration siteConfiguration = sitesModule.getConfigurationCourseSite2(); if(siteConfiguration == null) { siteConfiguration = new CourseSiteConfiguration(); } courseSite2Ctrl = new CourseSiteAdminController(ureq, getWindowControl(), siteConfiguration); listenTo(courseSite2Ctrl); } mainVC.put("segmentCmp", courseSite2Ctrl.getInitialComponent()); } private void doCourseSite3Settings(UserRequest ureq) { if(courseSite3Ctrl == null) { CourseSiteConfiguration siteConfiguration = sitesModule.getConfigurationCourseSite3(); if(siteConfiguration == null) { siteConfiguration = new CourseSiteConfiguration(); } courseSite3Ctrl = new CourseSiteAdminController(ureq, getWindowControl(), siteConfiguration); listenTo(courseSite3Ctrl); } mainVC.put("segmentCmp", courseSite3Ctrl.getInitialComponent()); } private void doCourseSite4Settings(UserRequest ureq) { if(courseSite4Ctrl == null) { CourseSiteConfiguration siteConfiguration = sitesModule.getConfigurationCourseSite4(); if(siteConfiguration == null) { siteConfiguration = new CourseSiteConfiguration(); } courseSite4Ctrl = new CourseSiteAdminController(ureq, getWindowControl(), siteConfiguration); listenTo(courseSite4Ctrl); } mainVC.put("segmentCmp", courseSite4Ctrl.getInitialComponent()); } }