diff --git a/static/js/item.js b/static/js/item.js index 8de8740f..f828427d 100644 --- a/static/js/item.js +++ b/static/js/item.js @@ -31,6 +31,17 @@ pandora.ui.item = function() { // fixme: layers have value, subtitles has text? isVideoView && Ox.extend(result.data, pandora.getVideoOptions(result.data)); + if (isVideoView && result.data.duration) { + var videoPoints = pandora.user.ui.videoPoints[item], set = {}; + ['in', 'out', 'position'].forEach(point => { + if (videoPoints[point] > result.data.duration) { + set[point] = result.data.duration; + } + }) + if (!Ox.isEmpty(set)) { + pandora.UI.set('videoPoints.' + item, Ox.extend(videoPoints[point], set[point])) + } + } if (!result.data.rendered && [ 'clips', 'timeline', 'player', 'editor', 'map', 'calendar' diff --git a/static/js/utils.js b/static/js/utils.js index e3fcc777..ae2ff3cf 100644 --- a/static/js/utils.js +++ b/static/js/utils.js @@ -2476,6 +2476,7 @@ pandora.getVideoOptions = function(data) { }); }); data.videoRatio = data.videoRatio || pandora.site.video.previewRatio; + return options; }; @@ -3212,7 +3213,7 @@ pandora.unloadWindow = function() { && pandora.user.ui.item && ['video', 'timeline'].indexOf(pandora.user.ui.itemView) > -1 && pandora.UI.set( - 'videoPosition.' + pandora.user.ui.item, + 'videoPoints.' + pandora.user.ui.item, pandora.$ui[ pandora.user.ui.itemView == 'video' ? 'player' : 'editor' ].options('position')