diff --git a/gui/slick/images/play.gif b/gui/slick/images/play.gif new file mode 100644 index 00000000..410d7da5 Binary files /dev/null and b/gui/slick/images/play.gif differ diff --git a/gui/slick/interfaces/default/displayShow.tmpl b/gui/slick/interfaces/default/displayShow.tmpl index 103b07b9..3a8a77b3 100644 --- a/gui/slick/interfaces/default/displayShow.tmpl +++ b/gui/slick/interfaces/default/displayShow.tmpl @@ -11,8 +11,15 @@ #set $exceptions_string = " | ".join($show.exceptions) #include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl") - + + + + + + #if $show_message:
$show_message

@@ -305,13 +312,13 @@ #end if #if int($epResult["season"]) != $curSeason: - + - +

#if int($epResult["season"]) == 0 then "Specials" else "Season "+str($epResult["season"])#

- NFOTBNEpisode#if $show.is_anime then "Absolute" else ""# #if $scene then "Scene #" else ""# #if $scene_anime then "Scene Absolute" else ""#NameAirdate#if $sickbeard.USE_SUBTITLES and $show.subtitles then "Subtitles" else ""#StatusSearch + VideoNFOTBNEpisode#if $show.is_anime then "Absolute" else ""# #if $scene then "Scene #" else ""# #if $scene_anime then "Scene Absolute" else ""#NameAirdate#if $sickbeard.USE_SUBTITLES and $show.subtitles then "Subtitles" else ""#StatusSearch #set $curSeason = int($epResult["season"]) #end if @@ -322,6 +329,17 @@ #if int($epResult["status"]) != $UNAIRED " name="<%=str(epResult["season"]) +"x"+str(epResult["episode"]) %>" /> #end if + + + #if $epResult["location"] != "" and $epResult["location"] != None: + #set $root_dirs = $sickbeard.ROOT_DIRS.split('|') + #set $video_root = $root_dirs[int(root_dirs[0]) + 1] + + #end if \"Y" \"Y" @@ -334,7 +352,8 @@ #if $epLoc != "" and $epLoc != None: $epResult["episode"] #else - $epResult["episode"]#end if# + $epResult["episode"] +#end if# #if $show.is_anime: $epResult["absolute_number"] #end if @@ -374,7 +393,7 @@ " /> #end if $epResult["name"] - + #if int($epResult["airdate"]) == 1 then "never" else $sbdatetime.sbdatetime.sbfdate($network_timezones.parse_date_time($epResult["airdate"],$show.airs,$show.network))# #if $sickbeard.USE_SUBTITLES and $show.subtitles: diff --git a/gui/slick/interfaces/default/home_addShows.tmpl b/gui/slick/interfaces/default/home_addShows.tmpl index 953ccf96..329766ac 100644 --- a/gui/slick/interfaces/default/home_addShows.tmpl +++ b/gui/slick/interfaces/default/home_addShows.tmpl @@ -37,7 +37,6 @@

- #if $sickbeard.TRAKT_USE_RECOMMENDED:
Add Recommended Shows
@@ -46,7 +45,6 @@


- #end if
Add Existing Shows
diff --git a/gui/slick/js/displayShow.js b/gui/slick/js/displayShow.js index d486e31b..f096ad33 100644 --- a/gui/slick/js/displayShow.js +++ b/gui/slick/js/displayShow.js @@ -1,54 +1,54 @@ -$(document).ready(function(){ +$(document).ready(function () { $('#sbRoot').ajaxEpSearch({'colorRow': true}); - $('#sbRoot').ajaxEpRetry({'colorRow': true}); - + $('#sbRoot').ajaxEpRetry({'colorRow': true}); + $('#sbRoot').ajaxEpSubtitlesSearch(); - - $('#seasonJump').change(function() { + + $('#seasonJump').change(function () { var id = $(this).val(); if (id && id != 'jump') { - $('html,body').animate({scrollTop: $(id).offset().top},'slow'); + $('html,body').animate({scrollTop: $(id).offset().top}, 'slow'); location.hash = id; } $(this).val('jump'); }); - $("#prevShow").click(function(){ + $("#prevShow").click(function () { $('#pickShow option:selected').prev('option').attr('selected', 'selected'); $("#pickShow").change(); }); - $("#nextShow").click(function(){ + $("#nextShow").click(function () { $('#pickShow option:selected').next('option').attr('selected', 'selected'); $("#pickShow").change(); }); - $('#changeStatus').click(function(){ + $('#changeStatus').click(function () { var sbRoot = $('#sbRoot').val() var epArr = new Array() - $('.epCheck').each(function() { - + $('.epCheck').each(function () { + if (this.checked == true) { epArr.push($(this).attr('id')) } - }); + }); if (epArr.length == 0) return false - url = sbRoot+'/home/setStatus?show='+$('#showID').attr('value')+'&eps='+epArr.join('|')+'&status='+$('#statusSelect').attr('value') + url = sbRoot + '/home/setStatus?show=' + $('#showID').attr('value') + '&eps=' + epArr.join('|') + '&status=' + $('#statusSelect').attr('value') window.location.href = url }); - $('.seasonCheck').click(function(){ + $('.seasonCheck').click(function () { var seasCheck = this; var seasNo = $(seasCheck).attr('id'); - $('.epCheck:visible').each(function(){ + $('.epCheck:visible').each(function () { var epParts = $(this).attr('id').split('x') if (epParts[0] == seasNo) { @@ -58,73 +58,75 @@ $(document).ready(function(){ }); var lastCheck = null; - $('.epCheck').click(function(event) { + $('.epCheck').click(function (event) { - if(!lastCheck || !event.shiftKey) { - lastCheck = this; - return; - } - - var check = this; - var found = 0; - - $('.epCheck').each(function() { - switch (found) { - case 2: return false; - case 1: this.checked = lastCheck.checked; + if (!lastCheck || !event.shiftKey) { + lastCheck = this; + return; } - if (this == check || this == lastCheck) - found++; - }); + var check = this; + var found = 0; - lastClick = this; + $('.epCheck').each(function () { + switch (found) { + case 2: + return false; + case 1: + this.checked = lastCheck.checked; + } + + if (this == check || this == lastCheck) + found++; + }); + + lastClick = this; }); // selects all visible episode checkboxes. - $('.seriesCheck').click(function(){ - $('.epCheck:visible').each(function(){ - this.checked = true + $('.seriesCheck').click(function () { + $('.epCheck:visible').each(function () { + this.checked = true }); - $('.seasonCheck:visible').each(function(){ - this.checked = true + $('.seasonCheck:visible').each(function () { + this.checked = true }) }); // clears all visible episode checkboxes and the season selectors - $('.clearAll').click(function(){ - $('.epCheck:visible').each(function(){ - this.checked = false + $('.clearAll').click(function () { + $('.epCheck:visible').each(function () { + this.checked = false }); - $('.seasonCheck:visible').each(function(){ - this.checked = false + $('.seasonCheck:visible').each(function () { + this.checked = false }); }); // handle the show selection dropbox - $('#pickShow').change(function(){ + $('#pickShow').change(function () { var sbRoot = $('#sbRoot').val() var val = $(this).attr('value') if (val == 0) return - url = sbRoot+'/home/displayShow?show='+val + url = sbRoot + '/home/displayShow?show=' + val window.location.href = url }); // show/hide different types of rows when the checkboxes are changed - $("#checkboxControls input").change(function(e){ + $("#checkboxControls input").change(function (e) { var whichClass = $(this).attr('id') $(this).showHideRows(whichClass) - $('tr.'+whichClass).each(function(i){ + $('tr.' + whichClass).each(function (i) { $(this).toggle(); }); - }); + }); // initially show/hide all the rows according to the checkboxes - $("#checkboxControls input").each(function(e){ + $("#checkboxControls input").each(function (e) { var status = this.checked; - $("tr."+$(this).attr('id')).each(function(e){ + $("tr." + $(this).attr('id')).each(function (e) { if (status) { $(this).show(); } else { @@ -132,11 +134,11 @@ $(document).ready(function(){ } }); }); - - $.fn.showHideRows = function(whichClass){ - var status = $('#checkboxControls > input, #'+whichClass).prop('checked') - $("tr."+whichClass).each(function(e){ + $.fn.showHideRows = function (whichClass) { + + var status = $('#checkboxControls > input, #' + whichClass).prop('checked') + $("tr." + whichClass).each(function (e) { if (status) { $(this).show(); } else { @@ -145,130 +147,138 @@ $(document).ready(function(){ }); // hide season headers with no episodes under them - $('tr.seasonheader').each(function(){ + $('tr.seasonheader').each(function () { var numRows = 0 var seasonNo = $(this).attr('id') - $('tr.'+seasonNo+' :visible').each(function(){ + $('tr.' + seasonNo + ' :visible').each(function () { numRows++ }) if (numRows == 0) { $(this).hide() - $('#'+seasonNo+'-cols').hide() + $('#' + seasonNo + '-cols').hide() } else { $(this).show() - $('#'+seasonNo+'-cols').show() + $('#' + seasonNo + '-cols').show() } - }); + }); } function setEpisodeSceneNumbering(forSeason, forEpisode, sceneSeason, sceneEpisode) { - var sbRoot = $('#sbRoot').val(); - var showId = $('#showID').val(); - var indexer = $('#indexer').val(); + var sbRoot = $('#sbRoot').val(); + var showId = $('#showID').val(); + var indexer = $('#indexer').val(); - if (sceneSeason === '') sceneSeason = null; - if (sceneEpisode === '') sceneEpisode = null; - - $.getJSON(sbRoot + '/home/setSceneNumbering', - { - 'show': showId, + if (sceneSeason === '') sceneSeason = null; + if (sceneEpisode === '') sceneEpisode = null; + + $.getJSON(sbRoot + '/home/setSceneNumbering', + { + 'show': showId, 'indexer': indexer, - 'forSeason': forSeason, - 'forEpisode': forEpisode, - 'sceneSeason': sceneSeason, - 'sceneEpisode': sceneEpisode - }, - function(data) { - // Set the values we get back - if (data.sceneSeason === null || data.sceneEpisode === null) - { - $('#sceneSeasonXEpisode_' + showId + '_' + forSeason +'_' + forEpisode).val(''); - } - else - { - $('#sceneSeasonXEpisode_' + showId + '_' + forSeason +'_' + forEpisode).val(data.sceneSeason + 'x' + data.sceneEpisode); - } - if (!data.success) - { - if (data.errorMessage) { - alert(data.errorMessage); - } else { - alert('Update failed.'); - } - } - } - ); + 'forSeason': forSeason, + 'forEpisode': forEpisode, + 'sceneSeason': sceneSeason, + 'sceneEpisode': sceneEpisode + }, + function (data) { + // Set the values we get back + if (data.sceneSeason === null || data.sceneEpisode === null) { + $('#sceneSeasonXEpisode_' + showId + '_' + forSeason + '_' + forEpisode).val(''); + } + else { + $('#sceneSeasonXEpisode_' + showId + '_' + forSeason + '_' + forEpisode).val(data.sceneSeason + 'x' + data.sceneEpisode); + } + if (!data.success) { + if (data.errorMessage) { + alert(data.errorMessage); + } else { + alert('Update failed.'); + } + } + } + ); } function setAbsoluteSceneNumbering(forAbsolute, sceneAbsolute) { - var sbRoot = $('#sbRoot').val(); - var showId = $('#showID').val(); - var indexer = $('#indexer').val(); + var sbRoot = $('#sbRoot').val(); + var showId = $('#showID').val(); + var indexer = $('#indexer').val(); - if (sceneAbsolute === '') sceneAbsolute = null; + if (sceneAbsolute === '') sceneAbsolute = null; - $.getJSON(sbRoot + '/home/setSceneNumbering', - { - 'show': showId, + $.getJSON(sbRoot + '/home/setSceneNumbering', + { + 'show': showId, 'indexer': indexer, - 'forAbsolute': forAbsolute, - 'sceneAbsolute': sceneAbsolute - }, - function(data) { - // Set the values we get back - if (data.sceneAbsolute === null) - { - $('#sceneAbsolute_' + showId +'_' + forAbsolute).val(''); - } - else - { - $('#sceneAbsolute_' + showId +'_' + forAbsolute).val(data.sceneAbsolute); - } - if (!data.success) - { - if (data.errorMessage) { - alert(data.errorMessage); - } else { - alert('Update failed.'); - } - } - } - ); + 'forAbsolute': forAbsolute, + 'sceneAbsolute': sceneAbsolute + }, + function (data) { + // Set the values we get back + if (data.sceneAbsolute === null) { + $('#sceneAbsolute_' + showId + '_' + forAbsolute).val(''); + } + else { + $('#sceneAbsolute_' + showId + '_' + forAbsolute).val(data.sceneAbsolute); + } + if (!data.success) { + if (data.errorMessage) { + alert(data.errorMessage); + } else { + alert('Update failed.'); + } + } + } + ); } - $('.sceneSeasonXEpisode').change(function() { - // Strip non-numeric characters - $(this).val($(this).val().replace(/[^0-9xX]*/g,'')); - var forSeason = $(this).attr('data-for-season'); - var forEpisode = $(this).attr('data-for-episode'); - var showId = $('#showID').val(); - var indexer = $('#indexer').val(); + $('.sceneSeasonXEpisode').change(function () { + // Strip non-numeric characters + $(this).val($(this).val().replace(/[^0-9xX]*/g, '')); + var forSeason = $(this).attr('data-for-season'); + var forEpisode = $(this).attr('data-for-episode'); + var showId = $('#showID').val(); + var indexer = $('#indexer').val(); - //var sceneEpisode = $('#sceneEpisode_' + showId + '_' + forSeason +'_' + forEpisode).val(); - var m = $(this).val().match(/^(\d+)x(\d+)$/i); - var sceneSeason = null, sceneEpisode = null; - if (m) - { - sceneSeason = m[1]; - sceneEpisode = m[2]; - } - setEpisodeSceneNumbering(forSeason, forEpisode, sceneSeason, sceneEpisode); + //var sceneEpisode = $('#sceneEpisode_' + showId + '_' + forSeason +'_' + forEpisode).val(); + var m = $(this).val().match(/^(\d+)x(\d+)$/i); + var sceneSeason = null, sceneEpisode = null; + if (m) { + sceneSeason = m[1]; + sceneEpisode = m[2]; + } + setEpisodeSceneNumbering(forSeason, forEpisode, sceneSeason, sceneEpisode); }); - $('.sceneAbsolute').change(function() { - // Strip non-numeric characters - $(this).val($(this).val().replace(/[^0-9xX]*/g,'')); - var forAbsolute = $(this).attr('data-for-absolute'); - var showId = $('#showID').val(); - var indexer = $('#indexer').val(); + $('.sceneAbsolute').change(function () { + // Strip non-numeric characters + $(this).val($(this).val().replace(/[^0-9xX]*/g, '')); + var forAbsolute = $(this).attr('data-for-absolute'); + var showId = $('#showID').val(); + var indexer = $('#indexer').val(); - var m = $(this).val().match(/^(\d{1,3})$/i); - var sceneAbsolute = null; - if (m) - { - sceneAbsolute = m[1]; - } - setAbsoluteSceneNumbering(forAbsolute, sceneAbsolute); + var m = $(this).val().match(/^(\d{1,3})$/i); + var sceneAbsolute = null; + if (m) { + sceneAbsolute = m[1]; + } + setAbsoluteSceneNumbering(forAbsolute, sceneAbsolute); }); -}); + + $('.video-js').live('click', function (e) { + this.player = videojs(this); + if (!this.player.paused()) + if (this.player.requestFullscreen) { + this.player.requestFullscreen(); + } else if (this.player.mozRequestFullScreen) { + this.player.mozRequestFullScreen(); + } else if (this.player.webkitRequestFullscreen) { + this.player.webkitRequestFullscreen(); + } else if (this.player.msRequestFullscreen) { + this.player.msRequestFullscreen(); + } + else + this.player.posterImage.show(); + }); +}); \ No newline at end of file diff --git a/gui/slick/js/video-js/demo.captions.vtt b/gui/slick/js/video-js/demo.captions.vtt new file mode 100644 index 00000000..e598be19 --- /dev/null +++ b/gui/slick/js/video-js/demo.captions.vtt @@ -0,0 +1,41 @@ +WEBVTT + +00:00.700 --> 00:04.110 +Captions describe all relevant audio for the hearing impaired. +[ Heroic music playing for a seagull ] + +00:04.500 --> 00:05.000 +[ Splash!!! ] + +00:05.100 --> 00:06.000 +[ Sploosh!!! ] + +00:08.000 --> 00:09.225 +[ Splash...splash...splash splash splash ] + +00:10.525 --> 00:11.255 +[ Splash, Sploosh again ] + +00:13.500 --> 00:14.984 +Dolphin: eeeEEEEEeeee! + +00:14.984 --> 00:16.984 +Dolphin: Squawk! eeeEEE? + +00:25.000 --> 00:28.284 +[ A whole ton of splashes ] + +00:29.500 --> 00:31.000 +Mine. Mine. Mine. + +00:34.300 --> 00:36.000 +Shark: Chomp + +00:36.800 --> 00:37.900 +Shark: CHOMP!!! + +00:37.861 --> 00:41.193 +EEEEEEOOOOOOOOOOWHALENOISE + +00:42.593 --> 00:45.611 +[ BIG SPLASH ] \ No newline at end of file diff --git a/gui/slick/js/video-js/demo.html b/gui/slick/js/video-js/demo.html new file mode 100644 index 00000000..80937185 --- /dev/null +++ b/gui/slick/js/video-js/demo.html @@ -0,0 +1,32 @@ + + + + Video.js | HTML5 Video Player + + + + + + + + + + + + + +

To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video

+ + + + diff --git a/gui/slick/js/video-js/font/vjs.eot b/gui/slick/js/video-js/font/vjs.eot new file mode 100644 index 00000000..a2c0f5f2 Binary files /dev/null and b/gui/slick/js/video-js/font/vjs.eot differ diff --git a/gui/slick/js/video-js/font/vjs.svg b/gui/slick/js/video-js/font/vjs.svg new file mode 100644 index 00000000..fa6aa7b5 --- /dev/null +++ b/gui/slick/js/video-js/font/vjs.svg @@ -0,0 +1,28 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gui/slick/js/video-js/font/vjs.ttf b/gui/slick/js/video-js/font/vjs.ttf new file mode 100644 index 00000000..682a9b21 Binary files /dev/null and b/gui/slick/js/video-js/font/vjs.ttf differ diff --git a/gui/slick/js/video-js/font/vjs.woff b/gui/slick/js/video-js/font/vjs.woff new file mode 100644 index 00000000..de982064 Binary files /dev/null and b/gui/slick/js/video-js/font/vjs.woff differ diff --git a/gui/slick/js/video-js/video-js.css b/gui/slick/js/video-js/video-js.css new file mode 100644 index 00000000..a58f4da5 --- /dev/null +++ b/gui/slick/js/video-js/video-js.css @@ -0,0 +1,904 @@ +/*! +Video.js Default Styles (http://videojs.com) +Version 4.6.3 +Create your own skin at http://designer.videojs.com +*/ +/* SKIN +================================================================================ +The main class name for all skin-specific styles. To make your own skin, +replace all occurances of 'vjs-default-skin' with a new name. Then add your new +skin name to your video tag instead of the default skin. +e.g.