diff --git a/dashboard-ui/scripts/Itemdetailpage.js b/dashboard-ui/scripts/Itemdetailpage.js index 55899f9003..c831857ff4 100644 --- a/dashboard-ui/scripts/Itemdetailpage.js +++ b/dashboard-ui/scripts/Itemdetailpage.js @@ -6,7 +6,7 @@ $('#galleryCollapsible', this).on('expand', ItemDetailPage.onGalleryExpand); }, - + onPageHide: function () { $('#galleryCollapsible', this).off('expand', ItemDetailPage.onGalleryExpand); @@ -31,7 +31,7 @@ ItemDetailPage.item = item; var name = item.Name; - + if (item.IndexNumber != null) { name = item.IndexNumber + " - " + name; } @@ -44,18 +44,18 @@ ItemDetailPage.renderGallery(item); if (!item.Chapters || !item.Chapters.length) { - $('#scenesCollapsible', page).remove(); - }else { + $('#scenesCollapsible', page).hide(); + } else { ItemDetailPage.renderScenes(item); } if (!item.LocalTrailerCount || item.LocalTrailerCount == 0) { - $('#trailersCollapsible', page).remove(); - }else { + $('#trailersCollapsible', page).hide(); + } else { ItemDetailPage.renderTrailers(item); } if (!item.SpecialFeatureCount || item.SpecialFeatureCount == 0) { - $('#specialsCollapsible', page).remove(); - }else { + $('#specialsCollapsible', page).hide(); + } else { ItemDetailPage.renderSpecials(item); } @@ -264,7 +264,7 @@ return html; }, - onScenesExpand: function() { + onScenesExpand: function () { if (ItemDetailPage.item) { @@ -283,10 +283,10 @@ for (var i = 0, length = chapters.length; i < length; i++) { var chapter = chapters[i]; - var chapter_name = chapter.Name || "Chapter "+i; + var chapter_name = chapter.Name || "Chapter " + i; html += '
'; - html += ''; + html += ''; if (chapter.ImageTag) { @@ -326,7 +326,7 @@ MediaPlayer.play([ItemDetailPage.item], startPosition); }, - onGalleryExpand: function() { + onGalleryExpand: function () { if (ItemDetailPage.item) { @@ -380,22 +380,22 @@ $('#galleryContent', page).html(html).trigger('create'); }, - createGalleryImage: function(itemId, type, tag, index) { + createGalleryImage: function (itemId, type, tag, index) { var downloadWidth = 400; var lightboxWidth = 800; var html = ''; - if (typeof(index)=="undefined") index = 0; + if (typeof (index) == "undefined") index = 0; - html += ''; + html += ''; html += ''; - html += '
'; + html += ''; } $('#trailersContent', page).html(html); @@ -492,7 +493,7 @@ }); }, - onSpecialsExpand: function() { + onSpecialsExpand: function () { if (ItemDetailPage.item) { @@ -514,22 +515,24 @@ var special = specials[i]; html += '
'; - html += ''; + html += ''; - if (special.ImageTag) { + var imageTags = special.ImageTags || {}; - var imgUrl = ApiClient.getImageUrl(item.Id, { - width: 500, - tag: special.ImageTag, - type: "Special", - index: i + if (imageTags.Primary) { + + var imgUrl = ApiClient.getImageUrl(special.Id, { + maxwidth: 500, + tag: imageTags.Primary, + type: "primary" }); html += ''; } else { - html += ''; + html += ''; } + html += '
' + special.Name + '
'; html += '
'; diff --git a/dashboard-ui/scripts/extensions.js b/dashboard-ui/scripts/extensions.js index b49564f5ee..877a255bf5 100644 --- a/dashboard-ui/scripts/extensions.js +++ b/dashboard-ui/scripts/extensions.js @@ -491,7 +491,7 @@ _V_.ResolutionMenuItem = _V_.MenuItem.extend({ var startTimeTicks = newSrc.match(new RegExp("StartTimeTicks=[0-9]+","g")); var start_time = startTimeTicks[0].replace("StartTimeTicks=",""); - newSrc = newSrc.replace(new RegExp("StartTimeTicks=[0-9]+","g"),"StartTimeTicks="+Math.floor((start_time)+(10000000*current_time))); + newSrc = newSrc.replace(new RegExp("StartTimeTicks=[0-9]+","g"),"StartTimeTicks="+Math.floor(parseInt(start_time)+(10000000*current_time))); }else { newSrc += "&StartTimeTicks="+Math.floor(10000000*current_time); } diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index 46ae97f4f0..4f248d3bf1 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -179,6 +179,10 @@ if ((this).duration() != "Infinity") $(".vjs-remaining-time-display").show(); }); + + (this).addEvent("play", MediaPlayer.updateProgress); + + ApiClient.reportPlaybackStart(Dashboard.getCurrentUserId(), item.Id); }); return $('video', nowPlayingBar)[0]; @@ -192,12 +196,24 @@ if ($(elem).hasClass("vjs-tech")) { var player = _V_("videoWindow"); + var startTimeTicks = player.tag.src.match(new RegExp("StartTimeTicks=[0-9]+","g")); + var start_time = startTimeTicks[0].replace("StartTimeTicks=",""); + + var item_string = player.tag.src.match(new RegExp("Videos/[0-9a-z\-]+","g")); + var item_id = item_string[0].replace("Videos/",""); + + var positionTicks = parseInt(start_time) + Math.floor(10000000*player.currentTime()); + + ApiClient.reportPlaybackStopped(Dashboard.getCurrentUserId(), item_id, positionTicks); + + clearTimeout(progressInterval); + if (player.techName == "html5") { player.tag.src = ""; player.tech.removeTriggers(); player.load(); } -// player.tech.destroy(); + //player.tech.destroy(); player.destroy(); }else { elem.pause(); @@ -213,6 +229,22 @@ isPlaying: function () { return MediaPlayer.mediaElement; + }, + + updateProgress: function () { + progressInterval = setInterval(function(){ + var player = _V_("videoWindow"); + + var startTimeTicks = player.tag.src.match(new RegExp("StartTimeTicks=[0-9]+","g")); + var start_time = startTimeTicks[0].replace("StartTimeTicks=",""); + + var item_string = player.tag.src.match(new RegExp("Videos/[0-9a-z\-]+","g")); + var item_id = item_string[0].replace("Videos/",""); + + var positionTicks = parseInt(start_time) + Math.floor(10000000*player.currentTime()); + + ApiClient.reportPlaybackProgress(Dashboard.getCurrentUserId(), item_id, positionTicks); + },30000); } };