Skip to content
Snippets Groups Projects
Commit df3730ee authored by uhensler's avatar uhensler
Browse files

OO-4207: Refactoring live stream course node to new edit controller structure

parent 9599cc36
No related branches found
No related tags found
No related merge requests found
......@@ -32,6 +32,7 @@ import org.olat.core.gui.translator.Translator;
import org.olat.core.util.Util;
import org.olat.course.ICourse;
import org.olat.course.condition.ConditionEditController;
import org.olat.course.editor.ConditionAccessEditConfig;
import org.olat.course.editor.CourseEditorEnv;
import org.olat.course.editor.NodeEditController;
import org.olat.course.editor.StatusDescription;
......@@ -75,11 +76,16 @@ public class LiveStreamCourseNode extends AbstractAccessableCourseNode {
public TabbableController createEditController(UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel,
ICourse course, UserCourseEnvironment euce) {
updateModuleConfigDefaults(false);
LiveStreamEditController editCtrl = new LiveStreamEditController(ureq, wControl, this, course, euce);
LiveStreamEditController editCtrl = new LiveStreamEditController(ureq, wControl, getModuleConfiguration());
CourseNode chosenNode = course.getEditorTreeModel().getCourseNode(euce.getCourseEditorEnv().getCurrentCourseNodeId());
return new NodeEditController(ureq, wControl, course, chosenNode, euce, editCtrl);
}
@Override
public ConditionAccessEditConfig getAccessEditConfig() {
return ConditionAccessEditConfig.regular(false);
}
@Override
public NodeRunConstructionResult createNodeRunConstructionResult(UserRequest ureq, WindowControl wControl,
UserCourseEnvironment userCourseEnv, CourseNodeSecurityCallback nodeSecCallback, String nodecmd) {
......
......@@ -27,13 +27,8 @@ import org.olat.core.gui.control.ControllerEventListener;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.generic.tabbable.ActivateableTabbableDefaultController;
import org.olat.course.ICourse;
import org.olat.course.assessment.AssessmentHelper;
import org.olat.course.condition.Condition;
import org.olat.course.condition.ConditionEditController;
import org.olat.course.editor.NodeEditController;
import org.olat.course.nodes.LiveStreamCourseNode;
import org.olat.course.run.userview.UserCourseEnvironment;
import org.olat.modules.ModuleConfiguration;
/**
*
......@@ -43,36 +38,22 @@ import org.olat.course.run.userview.UserCourseEnvironment;
*/
public class LiveStreamEditController extends ActivateableTabbableDefaultController implements ControllerEventListener {
private static final String PANE_TAB_ACCESSIBILITY = "pane.tab.accessibility";
private static final String PANE_TAB_CONFIG = "pane.tab.config";
private final static String[] paneKeys = { PANE_TAB_CONFIG, PANE_TAB_ACCESSIBILITY };
private final static String[] paneKeys = { PANE_TAB_CONFIG };
private TabbedPane tabPane;
private ConditionEditController accessibilityCondContr;
private LiveStreamConfigController liveStreamConfigController;
private final LiveStreamCourseNode courseNode;
public LiveStreamEditController(UserRequest ureq, WindowControl wControl, LiveStreamCourseNode liveStreamCourseNode,
ICourse course, UserCourseEnvironment userCourseEnv) {
public LiveStreamEditController(UserRequest ureq, WindowControl wControl, ModuleConfiguration moduleConfig) {
super(ureq, wControl);
this.courseNode = liveStreamCourseNode;
Condition accessCondition = liveStreamCourseNode.getPreConditionAccess();
accessibilityCondContr = new ConditionEditController(ureq, wControl, userCourseEnv, accessCondition,
AssessmentHelper.getAssessableNodes(course.getEditorTreeModel(), liveStreamCourseNode));
listenTo(accessibilityCondContr);
liveStreamConfigController = new LiveStreamConfigController(ureq, wControl,
liveStreamCourseNode.getModuleConfiguration());
liveStreamConfigController = new LiveStreamConfigController(ureq, wControl, moduleConfig);
listenTo(liveStreamConfigController);
}
@Override
public void addTabs(TabbedPane tabbedPane) {
tabPane = tabbedPane;
tabbedPane.addTab(translate(PANE_TAB_ACCESSIBILITY),
accessibilityCondContr.getWrappedDefaultAccessConditionVC(translate("condition.accessibility.title")));
tabbedPane.addTab(translate(PANE_TAB_CONFIG), liveStreamConfigController.getInitialComponent());
}
......@@ -88,13 +69,7 @@ public class LiveStreamEditController extends ActivateableTabbableDefaultControl
@Override
public void event(UserRequest ureq, Controller source, Event event) {
if (source == accessibilityCondContr) {
if (event == Event.CHANGED_EVENT) {
Condition cond = accessibilityCondContr.getCondition();
courseNode.setPreConditionAccess(cond);
fireEvent(ureq, NodeEditController.NODECONFIG_CHANGED_EVENT);
}
} else if (source == liveStreamConfigController && event.equals(Event.DONE_EVENT)) {
if (source == liveStreamConfigController && event.equals(Event.DONE_EVENT)) {
liveStreamConfigController.getUpdatedConfig();
fireEvent(ureq, NodeEditController.NODECONFIG_CHANGED_EVENT);
}
......
......@@ -7,14 +7,12 @@ admin.general.title=$:\admin.menu.title
admin.menu.title=Livestream
admin.menu.title.alt=$:\admin.menu.title
admin.module.enabled=Kursbaustein
condition.accessibility.title=Zugang
config.buffer.before.min=Vorlaufzeit (in Minuten)
config.buffer.after.min=Nachlaufzeit (in Minuten)
config.coach.edit=Betreuer darf Termine bearbeiten
form.error.wrong.int=Falsches Zahlenformat. Beispiele\: 2, 10, 144
link.text=Video Livestream
list.title=Anstehende Livestreams
pane.tab.accessibility=Zugang
pane.tab.config=Konfiguration
peekview.no.streams=Es sind keine Livestreams geplant.
peekview.open.live=Livestream anzeigen
......
......@@ -7,14 +7,12 @@ admin.general.title=$:\admin.menu.title
admin.menu.title=Live stream
admin.menu.title.alt=$:\admin.menu.title
admin.module.enabled=Course element
condition.accessibility.title=Access
config.buffer.before.min=Buffer time before start (in minutes)
config.buffer.after.min=Buffer time after end (in minutes)
config.coach.edit=Coach is allowed to edit
form.error.wrong.int=Wrong numeral format. Examples\: 2, 10, 144
link.text=Video live stream
list.title=Upcoming live streams
pane.tab.accessibility=Access
pane.tab.config=Configuration
peekview.no.streams=No live streams are planned.
peekview.open.live=Show live stream
......
......@@ -8,14 +8,12 @@ admin.general.title=$\:admin.menu.title
admin.menu.title=Live stream
admin.menu.title.alt=$\:admin.menu.title
admin.module.enabled=El\u00E9ment de cours
condition.accessibility.title=Acc\u00E8s
config.buffer.after.min=P\u00E9riode de pr\u00E9paration (en minutes)
config.buffer.before.min=P\u00E9riode de temporisation (en minutes)
config.coach.edit=Les coaches peuvent \u00E9diter les rendez-vous.
form.error.wrong.int=Format de nombre invalide. Exemples\: 2, 10, 144
link.text=Diffusion vid\u00E9o en direct
list.title=Futures diffusions
pane.tab.accessibility=Acc\u00E8s
pane.tab.config=Configuration
peekview.no.streams=Aucune diffusion n'est pr\u00E9vue.
peekview.open.live=Afficher la diffusion en direct
......
......@@ -8,14 +8,12 @@ admin.general.title=$\:admin.menu.title
admin.menu.title=Transmiss\u00E3o ao vivo
admin.menu.title.alt=$\:admin.menu.title
admin.module.enabled=Elemento de curso
condition.accessibility.title=Acesso
config.buffer.after.min=Tempo de buffer ap\u00F3s o final (em minutos)
config.buffer.before.min=Tempo de buffer antes do in\u00EDcio (em minutos)
config.coach.edit=O treinador tem permiss\u00E3o para editar
form.error.wrong.int=Formato numeral incorreto. Exemplos\: 2, 10, 144
link.text=V\u00EDdeo ao vivo
list.title=Pr\u00F3ximas transmiss\u00F5es ao vivo
pane.tab.accessibility=Acesso
pane.tab.config=Configura\u00E7\u00E3o
peekview.no.streams=N\u00E3o h\u00E1 transmiss\u00F5es ao vivo planejadas.
peekview.open.live=Mostrar transmiss\u00E3o ao vivo
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment