From e3c9a89a24437835e661efe63ea0453256b1111c Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Fri, 2 Jun 2017 15:14:48 +0200
Subject: [PATCH] OO-2798: add business path to the video runtime

---
 .../video/ui/ChapterEditController.java       | 24 ++----
 .../video/ui/VideoAdminErrorController.java   | 15 ++--
 .../video/ui/VideoChapterEditController.java  | 25 +++---
 .../ui/VideoQualityTableFormController.java   | 20 ++---
 .../video/ui/VideoRuntimeController.java      | 35 ++++++--
 .../video/ui/VideoSettingsController.java     | 81 ++++++++++++++-----
 .../video/ui/_content/video_preview.html      |  2 +-
 .../modules/video/ui/_content/video_run.html  |  3 +-
 .../repository/ui/_content/web_content.html   |  2 +-
 9 files changed, 123 insertions(+), 84 deletions(-)

diff --git a/src/main/java/org/olat/modules/video/ui/ChapterEditController.java b/src/main/java/org/olat/modules/video/ui/ChapterEditController.java
index e9a0f5e56ba..6b960a8bf8d 100644
--- a/src/main/java/org/olat/modules/video/ui/ChapterEditController.java
+++ b/src/main/java/org/olat/modules/video/ui/ChapterEditController.java
@@ -33,8 +33,6 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
 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.logging.OLog;
-import org.olat.core.logging.Tracing;
 
 /**
  * The Class ChapterEditController.
@@ -44,8 +42,6 @@ import org.olat.core.logging.Tracing;
  */
 public class ChapterEditController extends FormBasicController {
 
-	private static final OLog log = Tracing.createLoggerFor(ChapterEditController.class);
-
 	private String time;
 	private String chapter;
 	private boolean chapterExists;
@@ -100,8 +96,8 @@ public class ChapterEditController extends FormBasicController {
 		
 		FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
 		formLayout.add(buttonGroupLayout);
-		uifactory.addFormSubmitButton("submit", "video.chapter." + (chapterExists ? "edit" : "add"), buttonGroupLayout);
 		uifactory.addFormCancelButton("cancel", buttonGroupLayout, ureq, getWindowControl());
+		uifactory.addFormSubmitButton("submit", "video.chapter." + (chapterExists ? "edit" : "add"), buttonGroupLayout);
 	}
 
 	/**
@@ -164,7 +160,7 @@ public class ChapterEditController extends FormBasicController {
 		} else if (timeAlreadyExists()) {
 			beginEl.setErrorKey("chapter.error.already.exists", null);			
 		} else {
-			this.fireEvent(ureq, Event.DONE_EVENT);			
+			fireEvent(ureq, Event.DONE_EVENT);			
 		}
 	}
 
@@ -190,22 +186,16 @@ public class ChapterEditController extends FormBasicController {
 	 */
 	private boolean setTextElementValuesAndCheckFormat (){
 		boolean incorrectTimeFormat = false;
-		String time = beginEl.getValue();
+		String beginTime = beginEl.getValue();
 		String chapterTitle = chapterTitleEl.getValue();
 		try {
-			videoChapterTableRow.setBegin(displayDateFormat.parse(time));
+			videoChapterTableRow.setBegin(displayDateFormat.parse(beginTime));
 			videoChapterTableRow.setChapterName(chapterTitle);		
-			videoChapterTableRow.setIntervals(time);
+			videoChapterTableRow.setIntervals(beginTime);
 		} catch (ParseException e) {
-			log.error("The content of the TextElement cannot be parsed as a Date", e);
+			logError("The content of the TextElement cannot be parsed as a Date", e);
 			incorrectTimeFormat = true;
 		}
 		return incorrectTimeFormat;
 	}
-	
-	
-	
-	
-	
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/video/ui/VideoAdminErrorController.java b/src/main/java/org/olat/modules/video/ui/VideoAdminErrorController.java
index d0f69e2ea26..720981ca28e 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoAdminErrorController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoAdminErrorController.java
@@ -67,7 +67,6 @@ public class VideoAdminErrorController extends FormBasicController {
 	
 	private TranscodingQueueTableModel tableModel;
 	private FlexiTableElement tableEl;
-	private FormItemContainer formLayout;
 	private FormLink refreshButton;
 	private CloseableModalController closeableModalController;
 	private HomePageDisplayController homePageDisplayController;
@@ -107,11 +106,9 @@ public class VideoAdminErrorController extends FormBasicController {
 
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
-		this.formLayout = formLayout;
 		setFormTitle("number.transcodings");
 		setFormDescription("number.transcodings");
 		setFormContextHelp("Portfolio template: Administration and editing#configuration");
-		
 		initTable();
 	}
 	
@@ -162,18 +159,18 @@ public class VideoAdminErrorController extends FormBasicController {
 		}
 		tableModel.setObjects(rows);
 		
-		if (formLayout.hasFormComponent(tableEl)){
-			formLayout.remove(tableEl);
+		if (flc.hasFormComponent(tableEl)){
+			flc.remove(tableEl);
 		}
-		if (formLayout.hasFormComponent(refreshButton)){
-			formLayout.remove(refreshButton);
+		if (flc.hasFormComponent(refreshButton)){
+			flc.remove(refreshButton);
 		}
 		
-		tableEl = uifactory.addTableElement(getWindowControl(), "queue", tableModel, getTranslator(), formLayout);
+		tableEl = uifactory.addTableElement(getWindowControl(), "queue", tableModel, getTranslator(), flc);
 		tableEl.setCustomizeColumns(false);
 		tableEl.setNumOfRowsEnabled(false);
 		
-		refreshButton = uifactory.addFormLink("button.refresh", formLayout,Link.BUTTON);
+		refreshButton = uifactory.addFormLink("button.refresh", flc, Link.BUTTON);
 		refreshButton.setIconLeftCSS("o_icon o_icon_refresh o_icon-fw");
 	}
 
diff --git a/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java b/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java
index 779176cba78..2895768360f 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java
@@ -134,7 +134,6 @@ public class VideoChapterEditController extends FormBasicController {
 	
 	@Override
 	public void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
-
 		if(source == chapterTable) {
 			if(event instanceof SelectionEvent) {
 				SelectionEvent se = (SelectionEvent)event;
@@ -147,7 +146,6 @@ public class VideoChapterEditController extends FormBasicController {
 					doOpenCallout(ureq, vctr, true);
 				} 
 			}
-			
 		} else if (addChapterEl == source) {
 			long currentLong = currentTimeCode != null ? (long) Float.parseFloat(currentTimeCode) * 1000 : 0;
 			Date currentDate = new Date(currentLong);
@@ -155,7 +153,11 @@ public class VideoChapterEditController extends FormBasicController {
 					displayDateFormat.format(currentDate), currentDate, currentDate);
 			doOpenCallout(ureq, vctr, false);
 		}
-		
+	}
+	
+	@Override
+	protected void propagateDirtinessToContainer(FormItem fiSrc, FormEvent event) {
+		//avoid reload of html template, to prevent videoreload
 	}
 
 	@Override
@@ -172,14 +174,14 @@ public class VideoChapterEditController extends FormBasicController {
 				doAddOrUpdateChapter(ureq, chapterEditCtr.getVideoChapterTableRow());
 			} 
 			cmc.deactivate();
-			cleanUpCMC();
+			cleanUp();
 		} else if (source == cmc) {
-			cleanUpCMC();
+			cleanUp();
 		} 
 		super.event(ureq, source, event);
 	}
 	
-	private void cleanUpCMC(){
+	private void cleanUp(){
 		removeAsListenerAndDispose(cmc);
 		removeAsListenerAndDispose(chapterEditCtr);
 		cmc = null;
@@ -199,6 +201,7 @@ public class VideoChapterEditController extends FormBasicController {
 	}
 
 	private void doOpenCallout(UserRequest ureq, VideoChapterTableRow videoChapterTableRow, boolean chapterExists) {
+		if(chapterEditCtr != null) return;
 		
 		chapterEditCtr = new ChapterEditController(ureq, getWindowControl(), videoChapterTableRow, 
 				chapterExists, chapters, duration); 
@@ -207,15 +210,9 @@ public class VideoChapterEditController extends FormBasicController {
 		cmc = new CloseableModalController(getWindowControl(), translate("close"), chapterEditCtr.getInitialComponent(), 
 				true, translate("video.chapter." + (chapterExists ? "edit" : "new")));
 		listenTo(cmc);
-		
 		cmc.activate();
 	}
 	
-	@Override
-	protected void propagateDirtinessToContainer(FormItem fiSrc, FormEvent event) {
-		//avoid reload of html template, to prevent videoreload
-	}
-	
 	private void doAddOrUpdateChapter(UserRequest ureq, VideoChapterTableRow row){
 		//only add if object does not yet exist
 		if (!chapters.contains(row)){
@@ -231,6 +228,7 @@ public class VideoChapterEditController extends FormBasicController {
 		organizeChapters();
 		loadTableModel();
 		saveChapters(ureq, row.getBegin());
+		addToHistory(ureq, this);
 	}
 	
 	private void organizeChapters () {
@@ -254,5 +252,4 @@ public class VideoChapterEditController extends FormBasicController {
 			}
 		}
 	}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java b/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java
index fcfd220e18f..6c7f50e9594 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java
@@ -66,7 +66,6 @@ public class VideoQualityTableFormController extends FormBasicController {
 	private CloseableModalController cmc;
 	private VelocityContainer previewVC;
 	private OLATResource videoResource;
-	private FormItemContainer formLayout;
 	private FormLink refreshbtn;
 
 	private int count = 0;
@@ -86,8 +85,6 @@ public class VideoQualityTableFormController extends FormBasicController {
 
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
-		this.formLayout = formLayout;
-
 		FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(QualityTableCols.resolution));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(QualityTableCols.dimension));
@@ -97,8 +94,7 @@ public class VideoQualityTableFormController extends FormBasicController {
 
 		tableModel = new VideoQualityTableModel(columnsModel, getTranslator());
 		
-		initTable();
-			
+		initTable();	
 	}
 	
 	private void initTable(){
@@ -161,21 +157,19 @@ public class VideoQualityTableFormController extends FormBasicController {
 	 	rows.sort(new VideoComparator());
 		tableModel.setObjects(rows);
 		
-		if (formLayout.hasFormComponent(tableEl)){
-			formLayout.remove(tableEl);
+		if (flc.hasFormComponent(tableEl)){
+			flc.remove(tableEl);
 		}
-		if (formLayout.hasFormComponent(refreshbtn)){
-			formLayout.remove(refreshbtn);
+		if (flc.hasFormComponent(refreshbtn)){
+			flc.remove(refreshbtn);
 		}
 						
-		tableEl = uifactory.addTableElement(getWindowControl(), "qualityTable", tableModel, getTranslator(), formLayout);
+		tableEl = uifactory.addTableElement(getWindowControl(), "qualityTable", tableModel, getTranslator(), flc);
 		tableEl.setCustomizeColumns(false);
 		tableEl.setNumOfRowsEnabled(false);
-		
 				
-		refreshbtn = uifactory.addFormLink("button.refresh", formLayout, Link.BUTTON);
+		refreshbtn = uifactory.addFormLink("button.refresh", flc, Link.BUTTON);
 		refreshbtn.setIconLeftCSS("o_icon o_icon_refresh o_icon-fw");
-
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/modules/video/ui/VideoRuntimeController.java b/src/main/java/org/olat/modules/video/ui/VideoRuntimeController.java
index eba84a45b38..7c274b5d5c1 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoRuntimeController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoRuntimeController.java
@@ -19,6 +19,8 @@
  */
 package org.olat.modules.video.ui;
 
+import java.util.List;
+
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.dropdown.Dropdown;
@@ -29,6 +31,11 @@ import org.olat.core.gui.components.stack.PopEvent;
 import org.olat.core.gui.components.stack.RootEvent;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.generic.dtabs.Activateable2;
+import org.olat.core.id.OLATResourceable;
+import org.olat.core.id.context.ContextEntry;
+import org.olat.core.id.context.StateEntry;
+import org.olat.core.util.resource.OresHelper;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.model.RepositoryEntrySecurity;
 import org.olat.repository.ui.RepositoryEntryRuntimeController;
@@ -70,10 +77,23 @@ public class VideoRuntimeController extends RepositoryEntryRuntimeController {
 		}
 	}
 
+	@Override
+	public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
+		entries = removeRepositoryEntry(entries);
+		if(entries != null && entries.size() > 0) {
+			String type = entries.get(0).getOLATResourceable().getResourceableTypeName();
+			if("settings".equalsIgnoreCase(type)) {
+				entries = entries.subList(1, entries.size());
+				doSettings(ureq).activate(ureq, entries, null);
+			}
+		}
+		super.activate(ureq, entries, state);
+	}
+
 	@Override
 	protected void event(UserRequest ureq, Component source, Event event) {
 		if(settingsLink == source){
-			doSettingsconfig(ureq);
+			doSettings(ureq);
 		} else if (source == changeVideoLink) {
 			doReplaceVideo(ureq);
 		} else {
@@ -95,15 +115,17 @@ public class VideoRuntimeController extends RepositoryEntryRuntimeController {
 		setActiveTool(changeVideoLink);
 	}
 
-	private void doSettingsconfig(UserRequest ureq) {
-		if (settingsCtr != null) {
-			removeAsListenerAndDispose(settingsCtr);
-		}
+	private Activateable2 doSettings(UserRequest ureq) {
+		removeAsListenerAndDispose(settingsCtr);
+
 		RepositoryEntry entry = getRepositoryEntry();
-		VideoSettingsController configCtrl = new VideoSettingsController(ureq, getWindowControl(), entry);
+		OLATResourceable ores = OresHelper.createOLATResourceableType("settings");
+		WindowControl swControl = addToHistory(ureq, ores, null);
+		VideoSettingsController configCtrl = new VideoSettingsController(ureq, swControl, entry);
 		listenTo(configCtrl);
 		settingsCtr = pushController(ureq, translate("tab.video.settings"), configCtrl);
 		setActiveTool(settingsLink);
+		return settingsCtr;
 	}
 	
 	private void doRefreshVideoPosterIfEntryAdmin() {
@@ -112,5 +134,4 @@ public class VideoRuntimeController extends RepositoryEntryRuntimeController {
 			videoDisplayCtr.reloadVideoPoster();
 		}
 	}
-
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/video/ui/VideoSettingsController.java b/src/main/java/org/olat/modules/video/ui/VideoSettingsController.java
index b0c08c02fe9..6f0967e0693 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoSettingsController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoSettingsController.java
@@ -19,6 +19,8 @@
  */
 package org.olat.modules.video.ui;
 
+import java.util.List;
+
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.link.Link;
@@ -30,6 +32,11 @@ 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.gui.control.generic.dtabs.Activateable2;
+import org.olat.core.id.OLATResourceable;
+import org.olat.core.id.context.ContextEntry;
+import org.olat.core.id.context.StateEntry;
+import org.olat.core.util.resource.OresHelper;
 import org.olat.repository.RepositoryEntry;
 
 /**
@@ -37,7 +44,7 @@ import org.olat.repository.RepositoryEntry;
  * @author dfurrer, dirk.furrer@frentix.com, http://www.frentix.com
  *
  */
-public class VideoSettingsController extends BasicController {
+public class VideoSettingsController extends BasicController implements Activateable2 {
 
 	private RepositoryEntry entry;
 
@@ -52,8 +59,6 @@ public class VideoSettingsController extends BasicController {
 	private final VelocityContainer mainVC;
 	private final SegmentViewComponent segmentView;
 
-
-
 	public VideoSettingsController(UserRequest ureq, WindowControl wControl, RepositoryEntry entry ) {
 		super(ureq, wControl);
 
@@ -74,9 +79,35 @@ public class VideoSettingsController extends BasicController {
 		segmentView.addSegment(qualityConfig, false);
 
 		doOpenMetaDataConfig(ureq);
-
 		putInitialPanel(mainVC);
+	}
+	
+	@Override
+	protected void doDispose() {
+		//
+	}
 
+	@Override
+	public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
+		if(entries == null || entries.isEmpty()) return;
+		
+		String type = entries.get(0).getOLATResourceable().getResourceableTypeName();
+		if("metadata".equalsIgnoreCase(type)) {
+			doOpenMetaDataConfig(ureq);
+			segmentView.select(metaDataLink);
+		} else if("poster".equalsIgnoreCase(type)) {
+			doOpenPosterConfig(ureq);
+			segmentView.select(posterEditLink);
+		} else if("tracks".equalsIgnoreCase(type)) {
+			doOpenTrackConfig(ureq);
+			segmentView.select(trackEditLink);
+		} else if("quality".equalsIgnoreCase(type)) {
+			doOpenQualityConfig(ureq);
+			segmentView.select(qualityConfig);
+		} else if("chapters".equalsIgnoreCase(type)) {
+			doOpenChapterConfig(ureq);
+			segmentView.select(chapterEditLink);
+		}
 	}
 
 	@Override
@@ -101,51 +132,61 @@ public class VideoSettingsController extends BasicController {
 		}
 	}
 
-	@Override
-	protected void doDispose() {
-		// TODO Auto-generated method stub
-
-	}
-
 	private void doOpenMetaDataConfig(UserRequest ureq) {
 		if(metaDataController == null) {
-			metaDataController = new VideoMetaDataEditFormController(ureq, getWindowControl(), entry);
+			OLATResourceable ores = OresHelper.createOLATResourceableType("metadata");
+			WindowControl swControl = addToHistory(ureq, ores, null);
+			metaDataController = new VideoMetaDataEditFormController(ureq, swControl, entry);
 			listenTo(metaDataController);
+		} else {
+			addToHistory(ureq, metaDataController);
 		}
 		mainVC.put("segmentCmp", metaDataController.getInitialComponent());
 	}
 
 	private void doOpenPosterConfig(UserRequest ureq) {
 		if(posterEditController == null) {
-			posterEditController = new VideoPosterEditController(ureq, getWindowControl(), entry.getOlatResource());
+			OLATResourceable ores = OresHelper.createOLATResourceableType("poster");
+			WindowControl swControl = addToHistory(ureq, ores, null);
+			posterEditController = new VideoPosterEditController(ureq, swControl, entry.getOlatResource());
 			listenTo(posterEditController);
+		} else {
+			addToHistory(ureq, posterEditController);
 		}
 		mainVC.put("segmentCmp", posterEditController.getInitialComponent());
 	}
 
 	private void doOpenTrackConfig(UserRequest ureq) {
 		if(trackEditController == null) {
-			trackEditController = new VideoTrackEditController(ureq, getWindowControl(), entry.getOlatResource());
+			OLATResourceable ores = OresHelper.createOLATResourceableType("tracks");
+			WindowControl swControl = addToHistory(ureq, ores, null);
+			trackEditController = new VideoTrackEditController(ureq, swControl, entry.getOlatResource());
 			listenTo(trackEditController);
+		} else {
+			addToHistory(ureq, trackEditController);
 		}
 		mainVC.put("segmentCmp", trackEditController.getInitialComponent());
 	}
 
 	private void doOpenQualityConfig(UserRequest ureq) {
-		if(qualityEditController != null) {
-			removeAsListenerAndDispose(qualityEditController);
-		}
-		qualityEditController = new VideoQualityTableFormController(ureq, getWindowControl(), entry);
+		removeAsListenerAndDispose(qualityEditController);
+		
+		OLATResourceable ores = OresHelper.createOLATResourceableType("quality");
+		WindowControl swControl = addToHistory(ureq, ores, null);
+		qualityEditController = new VideoQualityTableFormController(ureq, swControl, entry);
 		listenTo(qualityEditController);
 		mainVC.put("segmentCmp", qualityEditController.getInitialComponent());
 	}
 	
 	private void doOpenChapterConfig(UserRequest ureq){
 		if (chapterEditController == null){
-			chapterEditController = new VideoChapterEditController(ureq, getWindowControl(), entry);
+			OLATResourceable ores = OresHelper.createOLATResourceableType("chapters");
+			WindowControl swControl = addToHistory(ureq, ores, null);
+			chapterEditController = new VideoChapterEditController(ureq, swControl, entry);
 			listenTo(chapterEditController);
+		} else {
+			addToHistory(ureq, chapterEditController);
 		}
 		mainVC.put("segmentCmp", chapterEditController.getInitialComponent());
 	} 
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/video/ui/_content/video_preview.html b/src/main/java/org/olat/modules/video/ui/_content/video_preview.html
index b8877c63640..81f73bfb20f 100644
--- a/src/main/java/org/olat/modules/video/ui/_content/video_preview.html
+++ b/src/main/java/org/olat/modules/video/ui/_content/video_preview.html
@@ -4,7 +4,7 @@
 	    	<source type="video/mp4" src="$mediaUrl/$filename" />
 		</video>
 
-		<script defer="defer" type="text/javascript">
+		<script type="text/javascript">
 		// <![CDATA[
 		## using jQuery
 		var mediaElementBaseUrl = BPlayer._mediaElementBaseUrl();
diff --git a/src/main/java/org/olat/modules/video/ui/_content/video_run.html b/src/main/java/org/olat/modules/video/ui/_content/video_run.html
index c8d0aa3e213..911a97f515d 100644
--- a/src/main/java/org/olat/modules/video/ui/_content/video_run.html
+++ b/src/main/java/org/olat/modules/video/ui/_content/video_run.html
@@ -22,7 +22,7 @@
 		</video>
 
 
-		<script defer="defer" type="text/javascript">
+		<script type="text/javascript">
 		// <![CDATA[
 		## using jQuery
 		var mediaElementBaseUrl = BPlayer._mediaElementBaseUrl();
@@ -75,7 +75,6 @@
 		        #if($r.isNotNull($currentTimeAt))
 			        player.play();
 		        	mediaElement.addEventListener('loadedmetadata', function(e) {
-				        console.log('Start time', ${currentTimeAt});
 			        	player.setCurrentTime(${currentTimeAt});
 						player.pause();
 			        }, false);
diff --git a/src/main/java/org/olat/repository/ui/_content/web_content.html b/src/main/java/org/olat/repository/ui/_content/web_content.html
index e32edcaece3..9fcc4168223 100644
--- a/src/main/java/org/olat/repository/ui/_content/web_content.html
+++ b/src/main/java/org/olat/repository/ui/_content/web_content.html
@@ -3,7 +3,7 @@
 	<img src="$mediaUrl/$filename" />
 #elseif($movie)
 	<p><span id="olatFlashMovieViewer1" class="olatFlashMovieViewer" style="display:block;border:solid 1px #000; width:${width}px; height:${height}px;">
-		<script defer="defer" type="text/javascript">
+		<script type="text/javascript">
 		// <![CDATA[
 		    BPlayer.insertPlayer('$mediaUrl/$filename','olatFlashMovieViewer1',$width,$height,0,0,'video',undefined,false,true,false);
 		// ]]>
-- 
GitLab