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 934ba043d7067e9ec7b8dc8467c6233d95197d44..980857bb3bbdb2c5ffdc335552da0d605d2c1609 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java @@ -50,6 +50,7 @@ import org.olat.core.gui.control.generic.closablewrapper.CloseableModalControlle import org.olat.core.gui.control.winmgr.JSCommand; import org.olat.core.util.StringHelper; import org.olat.modules.video.VideoManager; +import org.olat.modules.video.VideoMeta; import org.olat.modules.video.ui.VideoChapterTableModel.ChapterTableCols; import org.olat.repository.RepositoryEntry; import org.springframework.beans.factory.annotation.Autowired; @@ -85,7 +86,6 @@ public class VideoChapterEditController extends BasicController { displayDateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); VelocityContainer mainVC = createVelocityContainer("video_chapter_editor"); - //video preview videoDisplayCtr = new VideoDisplayController(ureq, getWindowControl(), entry, false, false, false, false, null, false, false, null, false); videoDisplayCtr.setTimeUpdateListener(true); @@ -98,9 +98,31 @@ public class VideoChapterEditController extends BasicController { chaptersEditCtrl = new VideoChaptersController(ureq, getWindowControl()); listenTo(chaptersEditCtrl); mainVC.put("chapters", chaptersEditCtrl.getInitialComponent()); - + + initDurationInSeconds(); putInitialPanel(mainVC); } + + private void initDurationInSeconds() { + String duration = entry.getExpenditureOfWork(); + if (!StringHelper.containsNonWhitespace(duration)) { + VideoMeta metadata = videoDisplayCtr.getVideoMetadata(); + if(metadata != null) { + duration = metadata.getLength(); + } + } + + if(StringHelper.containsNonWhitespace(duration)) { + try { + if(duration.indexOf(':') == duration.lastIndexOf(':')) { + duration = "00:" + duration; + } + durationInSeconds = displayDateFormat.parse(duration).getTime() / 1000; + } catch (Exception e) { + logWarn("Cannot parse expenditure of work: " + duration, e); + } + } + } @Override protected void doDispose() { @@ -270,7 +292,7 @@ public class VideoChapterEditController extends BasicController { private void doEditChapter(UserRequest ureq, VideoChapterTableRow videoChapterTableRow, boolean chapterExists) { if(chapterEditCtr != null) return; - + chapterEditCtr = new ChapterEditController(ureq, getWindowControl(), videoChapterTableRow, chapterExists, tableModel.getObjects(), durationInSeconds); listenTo(chapterEditCtr); diff --git a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java index 9d888c0f2d5ac83f1b5230d4ba0b1082aef38dd8..1271840f730581ce90904fb1b37263721af1e2d5 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java @@ -79,7 +79,7 @@ public class VideoDisplayController extends BasicController { private RepositoryEntry entry; private String descriptionText; private String mediaRepoBaseUrl; - + private VideoMeta videoMetadata; public VideoDisplayController(UserRequest ureq, WindowControl wControl, RepositoryEntry entry, boolean autoWidth) { this(ureq, wControl, entry, false, false, false, true, null, false, autoWidth, null, false); @@ -108,7 +108,7 @@ public class VideoDisplayController extends BasicController { VFSLeaf video = videoManager.getMasterVideoFile(entry.getOlatResource()); if(video != null) { - VideoMeta videoMetadata = videoManager.getVideoMetadata(entry.getOlatResource()); + videoMetadata = videoManager.getVideoMetadata(entry.getOlatResource()); if(autoWidth){ mainVC.contextPut("height", 480); mainVC.contextPut("width", "100%"); @@ -145,6 +145,10 @@ public class VideoDisplayController extends BasicController { } } + public VideoMeta getVideoMetadata() { + return videoMetadata; + } + public void setTimeUpdateListener(boolean enable) { mainVC.contextPut("listenTimeUpdate", enable); }