live tv updates

This commit is contained in:
Luke Pulverenti 2013-12-22 12:16:24 -05:00
parent ab99669e2d
commit 17ae566950
45 changed files with 337 additions and 336 deletions

View File

@ -108,7 +108,7 @@
@media all and (max-width: 400px) {
.libraryPage .ui-content {
padding: 10px 1px;
padding: 10px 0;
}
}
@ -124,7 +124,8 @@
.listHeader {
margin-top: .5em;
margin-bottom: 0;
padding-left: 4px;
padding-left: 7px;
text-transform: uppercase;
}
.libraryViewNav {
@ -169,6 +170,13 @@
border-collapse: collapse;
}
.detailButtonsContainer {
padding: .75em 0 .75em;
text-align: center;
border-top: 1px solid #444;
border-bottom: 1px solid #333;
}
.viewSettings {
text-align: center;
margin: 0 0 .25em;
@ -432,10 +440,6 @@ a.itemTag:hover {
font-size: 16px;
border: 0;
background-color: rgba(0,0,0,0.7);
position: absolute;
top: 0;
left: 0;
right: 0;
}
.parentName a {
@ -443,6 +447,13 @@ a.itemTag:hover {
font-weight: normal!important;
}
.itemBackdrop .parentName {
position: absolute;
top: 0;
left: 0;
right: 0;
}
.inlineItemName {
font-size: 22px;
}
@ -459,13 +470,13 @@ a.itemTag:hover {
.mobileOverview {
display: none;
padding: 0 .5em;
padding: 0 1em;
max-height: initial;
}
.mobileGenres {
display: none;
padding: 0 .5em;
padding: 0 1em;
}
.libraryPage ::-webkit-scrollbar {
@ -544,7 +555,7 @@ a.itemTag:hover {
}
.parentName {
position: static;
position: static!important;
}
.itemDetailImage {
@ -571,8 +582,8 @@ a.itemTag:hover {
display: block!important;
}
.primaryDetailPageContent p:first-child {
margin-top: 0;
.primaryDetailPageContent {
margin: 0 1em;
}
.primaryDetailPageContent .userDataIcons {
@ -641,7 +652,7 @@ a.itemTag:hover {
@media all and (min-width: 1000px) {
.ehsContent {
max-width: 820px;
max-width: 880px;
}
.detailPageContent {
@ -679,19 +690,19 @@ a.itemTag:hover {
}
.ehsContent {
max-width: 1080px;
max-width: 980px;
}
}
@media all and (min-width: 1920px) {
.ehsContent {
max-width: 1200px;
max-width: 1240px;
}
}
@media all and (min-width: 2300px) {
.ehsContent {
max-width: 1500px;
max-width: 1540px;
}
}
@ -791,7 +802,7 @@ a.itemTag:hover {
border: 0;
margin: 0;
height: 14px;
border: 1px solid #666;
border: 1px solid #222;
border-radius: 0;
width: 50px;
margin-right: 5px;
@ -808,18 +819,18 @@ a.itemTag:hover {
/* Firefox and Polyfill */
.itemProgressBar {
background: #050505 !important; /* !important only needed in polyfill */
background: #000 !important; /* !important only needed in polyfill */
}
/* Chrome */
.itemProgressBar::-webkit-progress-bar {
background: #050505;
background: #000;
}
.pare
/*
* Background of the progress bar value
*/
/* Firefox */
.itemProgressBar::-moz-progress-bar {
border-radius: 0;
@ -873,10 +884,10 @@ a.itemTag:hover {
.alphabetPicker {
position: fixed;
right: 1px;
right: 2px;
bottom: 0;
top: 100px;
width: 20px;
width: 27px;
z-index: 1000;
text-align: center;
font-size: 14px;
@ -908,7 +919,7 @@ a.itemTag:hover {
}
.itemsContainerWithAlphaPicker {
margin-right: 10px;
margin-right: 15px;
}
}

View File

@ -12,7 +12,7 @@
}
.detailSectionHeader + .tvProgram {
border-top: 1px solid #555;
border-top: 1px solid #444;
margin-top: 1px;
}
@ -34,10 +34,10 @@
.tvProgramInfo {
vertical-align: middle;
border-left: 1px solid #555;
border-left: 1px solid #444;
padding: .5em .5em;
margin-left: 80px;
border-bottom: 1px solid #555;
border-bottom: 1px solid #444;
}
.tvProgramName {
@ -98,19 +98,20 @@
margin-left: 0;
left: 30px;
opacity: .3;
}
.itemMiscInfo .seriesTimerCircle:first-child {
margin-left: 1em;
}
.seriesTimerCircle + .seriesTimerCircle {
opacity: .65;
left: 0;
margin-left: 0;
}
.seriesTimerCircle + .seriesTimerCircle + .seriesTimerCircle {
opacity: 1;
left: -30px;
margin-left: 0;
}
.channelImageContainer .itemDetailImage {

View File

@ -1,5 +1,5 @@
.posterItem {
margin: 6px;
margin: 8px 8px 8px 8px;
text-shadow: none;
font-weight: normal!important;
display: inline-block;
@ -8,6 +8,12 @@
text-decoration: none;
text-align: left;
overflow: hidden;
border: 2px solid #1b1b1b;
-webkit-transition: all 500ms ease;
-moz-transition: all 500ms ease;
-o-transition: all 500ms ease;
-ms-transition: all 500ms ease;
transition: all 500ms ease;
}
.posterItem:hover {
@ -45,28 +51,48 @@
padding-left: 2px;
}
.posterItemTextContainer {
}
.posterItemText {
text-overflow: ellipsis;
overflow: hidden;
text-wrap: none;
white-space: nowrap;
padding: 6px 5px 5px;
background: #111;
padding: 5px 6px 4px;
background-color: #111;
text-shadow: none;
}
.posterItemTextOverlay {
position: absolute;
bottom: 0;
background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.7) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,0.7))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.7) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.7) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.7) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.7) 100%); /* W3C */
left: 0;
right: 0;
}
.posterItemText + .posterItemText {
padding-top: 2px;
}
.posterItemTextOverlay .posterItemText {
background-color: transparent;
padding-top: 1px !important;
}
.posterItemTextOverlay .posterItemText:first-child {
font-size: 14px;
font-weight: bold;
}
.posterItemTextCentered {
text-align: center;
}
.posterItemText + .posterItemText {
padding-top: 2px;
}
.posterItemText + .posterItemProgress {
padding-top: 0;
}
@ -106,11 +132,11 @@
.backdropPosterItem {
width: 160px;
width: 288px;
}
.backdropPosterItem .posterItemImage {
height: 90px;
height: 162px;
}
.smallBackdropPosterItem {
@ -130,26 +156,30 @@
}
.posterItemProgress .itemProgressBar {
height: 12px;
width: 35%;
}
.portraitPosterItem .itemProgressText {
display: none;
}
.portraitPosterItem .itemProgressBar {
height: 11px;
width: 100%;
opacity: .8;
}
@media all and (min-width: 540px) {
.backdropPosterItem {
width: 256px;
}
.backdropPosterItem .posterItemImage {
height: 144px;
}
}
@media all and (min-width: 650px) {
.backdropPosterItem {
width: 192px;
width: 272px;
}
.backdropPosterItem .posterItemImage {
height: 108px;
height: 153px;
}
.storeItem, .storePosterItem {
@ -175,15 +205,11 @@
@media all and (min-width: 1200px) {
.backdropPosterItem {
width: 224px;
width: 272px;
}
.backdropPosterItem .posterItemImage {
height: 126px;
}
.backdropPosterItem .itemProgressBar {
width: 55%;
height: 153px;
}
.portraitPosterItem {
@ -237,20 +263,17 @@
height: 201px;
}
.backdropPosterItem {
width: 256px;
}
.backdropPosterItem .posterItemImage {
height: 144px;
}
.portraitPosterItem .itemProgressText {
display: inline;
}
.portraitPosterItem .itemProgressBar {
width: 20%;
.backdropPosterItem {
width: 288px;
}
.backdropPosterItem .posterItemImage {
height: 162px;
}
}
@ -271,16 +294,4 @@
.portraitPosterItem .posterItemImage {
height: 240px;
}
.backdropPosterItem {
width: 288px;
}
.backdropPosterItem .posterItemImage {
height: 162px;
}
.portraitPosterItem .itemProgressBar {
width: 30%;
}
}

View File

@ -134,26 +134,6 @@
}
}
@media all and (min-width: 950px) {
.txtSearch {
width: 250px;
}
.searchHints {
width: 248px;
}
}
@media all and (min-width: 1200px) {
.txtSearch {
width: 300px;
}
.searchHints {
width: 298px;
}
}
.circle {
background-color: rgba(0,0,0,0);
border: 5px solid rgba(0,183,229,0.9);

View File

@ -46,6 +46,7 @@ body {
* {
font-family: 'Open Sans', Arial, Helvetica, sans-serif;
text-shadow: none;
-webkit-font-smoothing: antialiased;
}
.ui-header .ui-btn-inner, .ui-footer .ui-btn-inner, .ui-mini .ui-btn-inner {
@ -224,6 +225,7 @@ form, .readOnlyContent {
font-size: 12px;
padding-left: 5px;
font-weight: normal;
white-space: normal !important;
}
.warningFieldDescription {
@ -629,7 +631,7 @@ form, .readOnlyContent {
/* Footer */
#footer {
background: #4C4C4C;
background: #3c3c3c;
position: fixed;
bottom: -2px;
left: -2px;
@ -728,7 +730,7 @@ progress {
/* Now playing bar */
#nowPlayingBar {
padding: 6px .5em;
border-top: 2px solid #D7742B;
border-top: 2px solid green;
}
#nowPlayingBar .highPosition {
@ -742,8 +744,8 @@ progress {
}
#nowPlayingBar .barBackground {
border-top: 2px solid #D7742B;
background: #4C4C4C;
border-top: 2px solid green;
background: #3c3c3c;
position: absolute;
margin: -8px -0.5em !important;
width: 100%;

View File

@ -5,14 +5,12 @@
font-weight: normal!important;
display: block;
position: relative;
/*border: 1px solid #505050;
background-image: -webkit-gradient(linear,left top,left bottom,from(#444),to(#2d2d2d));
background-image: -webkit-linear-gradient(#444,#2d2d2d);
background-image: -moz-linear-gradient(#444,#2d2d2d);
background-image: -ms-linear-gradient(#444,#2d2d2d);
background-image: -o-linear-gradient(#444,#2d2d2d);
background-image: linear-gradient(#444,#2d2d2d);*/
border-radius: .3125em;
-webkit-transition: all 500ms ease;
-moz-transition: all 500ms ease;
-o-transition: all 500ms ease;
-ms-transition: all 500ms ease;
transition: all 500ms ease;
}
.tileItem .starRating {

View File

@ -17,13 +17,6 @@
<div data-role="content">
<div class="viewSettings">
<div class="viewControls">
<div style="display: inline-block;">
<select data-mini="true" data-inline="true" id="selectView" name="selectView">
<option value="Backdrop">Backdrop</option>
<option value="Poster">Poster</option>
<option value="Timeline">Timeline</option>
</select>
</div>
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $.mobile.activePage).panel( 'toggle' );">Sort</button>
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $.mobile.activePage).panel( 'toggle' );">Filter</button>
</div>

View File

@ -16,7 +16,7 @@
<table class="ehsContent">
<tr>
<td>
<h1 class="listHeader firstListHeader">Latest Games</h1>
<h1 class="listHeader">Latest Games</h1>
<div id="recentlyAddedItems">
</div>

View File

@ -137,7 +137,7 @@
</div>
<p class="itemOverview mobileOverview"></p>
</div>
<div class="ui-body-a" style="text-align: center; padding: .25em 0 .5em;">
<div class="detailButtonsContainer">
<span id="playButtonContainer" style="display: none;">
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">Play</button>
</span>

View File

@ -131,7 +131,7 @@
<p class="itemGenres mobileGenres"></p>
<p class="itemOverview mobileOverview"></p>
</div>
<div class="ui-body-a" style="text-align: center; padding: .25em 0 .5em;">
<div class="detailButtonsContainer">
<span id="missingIndicator" style="margin-left: .5em; display: none;">
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">MISSING</span>
</span>

View File

@ -5,7 +5,7 @@
</head>
<body>
<div id="itemGalleryPage" data-role="page" class="page libraryPage" data-theme="a">
<div class="ui-bar-c parentName" style="display: none;">
<div class="parentName" style="display: none;">
</div>
<div data-role="content">

View File

@ -9,7 +9,7 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html" class="ui-btn-active">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<table class="detailPageContent primaryDetailPageContent">
@ -26,7 +26,7 @@
</td>
</tr>
</table>
<div class="ui-body-a" style="text-align: center; padding: .25em 0 .5em;">
<div class="detailButtonsContainer">
<span id="playButtonContainer" style="display: none;">
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">Play</button>
</span>

View File

@ -9,7 +9,7 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html" class="ui-btn-active">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">

View File

@ -9,7 +9,7 @@
<a href="livetvguide.html" class="ui-btn-active">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">

View File

@ -9,7 +9,7 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html" class="ui-btn-active">Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">

View File

@ -9,7 +9,7 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html" class="ui-btn-active">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div id="itemBackdrop" class="itemBackdrop noBackdrop">
@ -36,7 +36,7 @@
<p class="itemGenres mobileGenres"></p>
<p class="itemOverview mobileOverview"></p>
</div>
<div class="ui-body-a" style="text-align: center; padding: .25em 0 .5em;">
<div class="detailButtonsContainer">
<span id="recordButtonContainer" style="display: none;">
<button id="btnRecord" type="button" data-icon="facetime-video" data-inline="true" data-mini="true">Record</button>
</span>

View File

@ -9,7 +9,7 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html" class="ui-btn-active">Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div id="itemBackdrop" class="itemBackdrop noBackdrop">
@ -36,7 +36,7 @@
<p class="itemGenres mobileGenres"></p>
<p class="itemOverview mobileOverview"></p>
</div>
<div class="ui-body-a" style="text-align: center; padding: .25em 0 .5em;">
<div class="detailButtonsContainer">
<span id="playButtonContainer" style="display: none;">
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">Play</button>
</span>

View File

@ -9,7 +9,7 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html" class="ui-btn-active">Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">

View File

@ -9,7 +9,7 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html" class="ui-btn-active">Series</a>
</div>
<div data-role="content">

View File

@ -9,7 +9,7 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html" class="ui-btn-active">Series</a>
</div>
<div data-role="content">

View File

@ -9,24 +9,23 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html" class="ui-btn-active">Schedule</a>
<a href="livetvtimers.html" class="ui-btn-active">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">
<form class="liveTvTimerForm" style="margin: 0 auto;">
<p><span class="itemName inlineItemName"></span><span class="itemMiscInfo" style="display: inline;"></span></p>
<p class="itemEpisodeName"></p>
<p class="itemMiscInfo miscTvProgramInfo"></p>
<p>
<span class="itemCommunityRating"></span>
</p>
<p class="itemChannelNumber"></p>
<p class="itemGenres"></p>
<p class="itemOverview"></p>
<p style="margin-top: 2em;">
<span class="status"></span>
<a id="btnCancelTimer" href="#" style="margin-left: 2em;">Cancel Recording</a>
<span class="seriesTimerLink" style="margin-left: 2em;"></span>
</p>
<br />

View File

@ -9,7 +9,7 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html" class="ui-btn-active">Schedule</a>
<a href="livetvtimers.html" class="ui-btn-active">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">

View File

@ -23,7 +23,7 @@
<div class="viewControls">
<div style="display: inline-block;">
<select data-mini="true" data-inline="true" id="selectView" name="selectView">
<option value="Backdrop">Backdrop</option>
<option value="Thumb">Thumb</option>
<option value="Poster">Poster</option>
<option value="Timeline">Timeline</option>
</select>

View File

@ -21,11 +21,6 @@
<table class="ehsContent">
<tr>
<td>
<h1 class="listHeader firstListHeader">Latest Movies</h1>
<div id="recentlyAddedItems">
</div>
<div id="resumableSection" style="display: none;">
<h1 class="listHeader">Resume</h1>
@ -33,8 +28,13 @@
</div>
</div>
<h1 class="listHeader">Latest Movies</h1>
<div id="recentlyAddedItems">
</div>
<div id="trailerSection" style="display: none;">
<h1 class="listHeader firstListHeader">Latest Trailers</h1>
<h1 class="listHeader">Latest Trailers</h1>
<div id="trailerItems">
</div>

View File

@ -21,12 +21,6 @@
<div data-role="content">
<div class="viewSettings">
<div class="viewControls">
<div style="display: inline-block;">
<select data-mini="true" data-inline="true" id="selectView" name="selectView">
<option value="Backdrop">Backdrop</option>
<option value="Poster">Poster</option>
</select>
</div>
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $.mobile.activePage).panel( 'toggle' );">Sort</button>
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $.mobile.activePage).panel( 'toggle' );">Filter</button>
</div>

View File

@ -18,7 +18,7 @@
<table class="ehsContent">
<tr>
<td>
<h1 class="listHeader firstListHeader">Latest Albums</h1>
<h1 class="listHeader">Latest Albums</h1>
<div id="recentlyAddedAlbums">
</div>

View File

@ -21,13 +21,6 @@
<div data-role="content">
<div class="viewSettings">
<div class="viewControls">
<div style="display: inline-block;">
<select data-mini="true" data-inline="true" id="selectView" name="selectView">
<option value="Backdrop">Backdrop</option>
<option value="Poster">Poster</option>
<option value="Timeline">Timeline</option>
</select>
</div>
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $.mobile.activePage).panel( 'toggle' );">Sort</button>
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $.mobile.activePage).panel( 'toggle' );">Filter</button>
</div>

View File

@ -6,7 +6,7 @@
<body>
<div id="playlistPage" data-role="page" class="page libraryPage" data-theme="a">
<div class="ui-bar-c parentName">Now Playing</div>
<div class="parentName">Now Playing</div>
<div data-role="content">
<div id="playlist" class="detailTableContainer">

View File

@ -9,7 +9,7 @@
SortOrder: "Ascending",
IncludeItemTypes: "Episode",
Recursive: true,
Fields: "DateCreated,SeriesInfo",
Fields: "DateCreated,SeriesInfo,PrimaryImageAspectRatio",
StartIndex: 0,
IsMissing: false,
IsVirtualUnaired: false
@ -38,7 +38,8 @@
useAverageAspectRatio: true,
shape: "backdrop",
showTitle: true,
showParentTitle: true
showParentTitle: true,
overlayText: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');

View File

@ -135,8 +135,6 @@
}).checkboxradio('refresh');
$('#selectView', page).val(view).selectmenu('refresh');
$('#chkTrailer', page).checked(query.HasTrailer == true).checkboxradio('refresh');
$('#chkThemeSong', page).checked(query.HasThemeSong == true).checkboxradio('refresh');
$('#chkThemeVideo', page).checked(query.HasThemeVideo == true).checkboxradio('refresh');
@ -188,21 +186,6 @@
reloadItems(page);
});
$('#selectView', this).on('change', function () {
view = this.value;
if (view == "Timeline") {
query.SortBy = "PremiereDate";
query.StartIndex = 0;
$('#radioPremiereDate', page)[0].click();
} else {
reloadItems(page);
}
});
$('#chkTrailer', this).on('change', function () {
query.StartIndex = 0;

View File

@ -484,7 +484,7 @@
var isPlaying = MediaPlayer.isPlaying();
if (!isPlaying && !resumePositionTicks && mediaType != "Audio") {
MediaPlayer.playById(itemId);
MediaPlayer.playById(itemId, itemType);
return;
}
@ -498,7 +498,7 @@
if (itemType == "MusicArtist") {
html += '<li><a href="#" onclick="MediaPlayer.playArtist(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Play</a></li>';
} else if (itemType != "MusicGenre") {
html += '<li><a href="#" onclick="MediaPlayer.playById(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Play</a></li>';
html += '<li><a href="#" onclick="MediaPlayer.playById(\'' + itemId + '\', \'' + itemType + '\');LibraryBrowser.closePlayMenu();">Play</a></li>';
}
if (itemType == "Audio") {
@ -518,7 +518,7 @@
}
if (resumePositionTicks) {
html += '<li><a href="#" onclick="MediaPlayer.playById(\'' + itemId + '\', ' + resumePositionTicks + ');LibraryBrowser.closePlayMenu();">Resume</a></li>';
html += '<li><a href="#" onclick="MediaPlayer.playById(\'' + itemId + '\', \'' + itemType + '\', ' + resumePositionTicks + ');LibraryBrowser.closePlayMenu();">Resume</a></li>';
}
if (isPlaying) {
@ -693,22 +693,22 @@
var width = null;
var height = null;
var forceName = false;
if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) {
imgUrl = ApiClient.getImageUrl(item.Id, {
type: "Backdrop",
height: 198,
width: 352,
maxwidth: 576,
tag: item.BackdropImageTags[0]
});
}
else if (options.preferThumb && item.ImageTags && item.ImageTags.Thumb) {
imgUrl = ApiClient.getImageUrl(item, {
imgUrl = ApiClient.getImageUrl(item.Id, {
type: "Thumb",
height: 198,
width: 352,
maxwidth: 576,
tag: item.ImageTags.Thumb
});
@ -717,8 +717,7 @@
imgUrl = ApiClient.getImageUrl(item.SeriesId, {
type: "Thumb",
height: 198,
width: 352,
maxwidth: 576,
tag: item.SeriesThumbImageTag
});
@ -727,15 +726,24 @@
imgUrl = ApiClient.getThumbImageUrl(item, {
type: "Thumb",
height: 198,
width: 352
maxwidth: 576
});
}
else if (options.preferThumb && item.BackdropImageTags && item.BackdropImageTags.length) {
imgUrl = ApiClient.getImageUrl(item.Id, {
type: "Backdrop",
maxwidth: 576,
tag: item.BackdropImageTags[0]
});
forceName = true;
}
else if (item.ImageTags && item.ImageTags.Primary) {
height = 300;
width = primaryImageAspectRatio ? (height * primaryImageAspectRatio).toFixed(0) : null;
height = 400;
width = primaryImageAspectRatio ? Math.round(height * primaryImageAspectRatio) : null;
imgUrl = ApiClient.getImageUrl(item.Id, {
type: "Primary",
@ -747,8 +755,8 @@
}
else if (item.AlbumId && item.AlbumPrimaryImageTag) {
height = 300;
width = primaryImageAspectRatio ? (height * primaryImageAspectRatio).toFixed(0) : null;
height = 400;
width = primaryImageAspectRatio ? Math.round(height * primaryImageAspectRatio) : null;
imgUrl = ApiClient.getImageUrl(item.AlbumId, {
type: "Primary",
@ -762,8 +770,7 @@
imgUrl = ApiClient.getImageUrl(item.Id, {
type: "Backdrop",
height: 198,
width: 352,
maxwidth: 576,
tag: item.BackdropImageTags[0]
});
@ -772,8 +779,7 @@
imgUrl = ApiClient.getImageUrl(item, {
type: "Thumb",
height: 198,
width: 352,
maxwidth: 576,
tag: item.ImageTags.Thumb
});
@ -782,8 +788,7 @@
imgUrl = ApiClient.getImageUrl(item.SeriesId, {
type: "Thumb",
height: 198,
width: 352,
maxwidth: 576,
tag: item.SeriesThumbImageTag
});
@ -792,8 +797,7 @@
imgUrl = ApiClient.getThumbImageUrl(item, {
type: "Thumb",
height: 198,
width: 352
maxwidth: 576
});
}
@ -863,16 +867,22 @@
html += "</div>";
}
var overlayText = forceName || options.overlayText;
if (overlayText) {
html += '<div class="posterItemTextOverlay">';
}
var cssclass = options.centerText ? "posterItemText posterItemTextCentered" : "posterItemText";
if (options.showParentTitle) {
html += "<div class='" + cssclass + "'><b>";
html += "<div class='" + cssclass + "'>";
html += item.SeriesName || item.Album || "&nbsp;";
html += "</b></div>";
html += "</div>";
}
if (options.showTitle) {
if (options.showTitle || forceName) {
html += "<div class='" + cssclass + "'>";
html += name;
@ -902,6 +912,10 @@
html += "</div>";
}
if (overlayText) {
html += "</div>";
}
if (item.LocationType == "Offline" || item.LocationType == "Virtual") {
if (options.showLocationTypeIndicator !== false) {
html += LibraryBrowser.getOfflineIndicatorHtml(item);
@ -1002,14 +1016,14 @@
}
else if (item.Type == "Episode" && item.IndexNumber != null && item.ParentIndexNumber != null) {
var displayIndexNumber = item.IndexNumber < 10 ? "0" + item.IndexNumber : item.IndexNumber;
var displayIndexNumber = item.IndexNumber;
var number = item.ParentIndexNumber + "x" + displayIndexNumber;
var number = "S" + item.ParentIndexNumber + ", E" + displayIndexNumber;
if (item.IndexNumberEnd) {
displayIndexNumber = item.IndexNumberEnd < 10 ? "0" + item.IndexNumberEnd : item.IndexNumberEnd;
number += "-x" + displayIndexNumber;
displayIndexNumber = item.IndexNumberEnd;
number += "-" + displayIndexNumber;
}
name = number + " - " + name;
@ -1325,9 +1339,9 @@
return html;
},
getPagingHtml: function (query, totalRecordCount) {
getPagingHtml: function (query, totalRecordCount, updatePageSizeSetting) {
if (query.Limit) {
if (query.Limit && updatePageSizeSetting !== false) {
localStorage.setItem('pagesize', query.Limit);
}
@ -1435,7 +1449,7 @@
return html;
},
getItemProgressBarHtml: function (item) {
getItemProgressBarHtml: function (item, includeText) {
var html = '';
@ -1466,8 +1480,10 @@
html += '<progress title="' + tooltip + '" class="itemProgressBar" min="0" max="100" value="' + pct + '">';
html += '</progress>';
if (includeText) {
html += '<span class="itemProgressText">' + tooltip + '</span>';
}
}
return html;
},
@ -1477,7 +1493,7 @@
var html = '';
if (item.Type != "Audio" && item.Type != "Season" && item.Type != "Series") {
html += LibraryBrowser.getItemProgressBarHtml(item);
html += LibraryBrowser.getItemProgressBarHtml(item, true);
}
var userData = item.UserData || {};

View File

@ -278,7 +278,23 @@
}
elem.html(html.join('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;')).trigger('create');
html = html.join('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
if (obj.SeriesTimerId) {
html += '<a href="livetvseriestimer.html?id=' + obj.SeriesTimerId + '" title="View Series Recording">';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '</a>';
}
else if (obj.TimerId) {
html += '<a href="livetvtimer.html?id=' + obj.TimerId + '">';
html += '<div class="timerCircle"></div>';
html += '</a>';
}
elem.html(html).trigger('create');
},
renderOriginalAirDate: function (elem, item) {

View File

@ -26,26 +26,25 @@
var context = 'livetv';
currentItem = item;
$('.itemName', page).html(item.Name);
$('.itemChannelNumber', page).html('Channel:&nbsp;&nbsp;&nbsp;<a href="livetvchannel.html?id=' + item.ChannelId + '">' + item.ChannelName + '</a>').trigger('create');
var programInfo = item.ProgramInfo || {};
if (item.EpisodeTitle) {
$('.itemEpisodeName', page).html('Episode:&nbsp;&nbsp;&nbsp;' + item.EpisodeTitle);
} else {
$('.itemEpisodeName', page).html('');
}
$('.itemName', page).html(programInfo.Name);
if (item.CommunityRating) {
$('.itemCommunityRating', page).html(LibraryBrowser.getRatingHtml(item)).show();
$('.itemEpisodeName', page).html(programInfo.EpisodeTitle || '');
if (programInfo.CommunityRating) {
$('.itemCommunityRating', page).html(LibraryBrowser.getRatingHtml(programInfo)).show();
} else {
$('.itemCommunityRating', page).hide();
}
LibraryBrowser.renderGenres($('.itemGenres', page), item, context);
LibraryBrowser.renderOverview($('.itemOverview', page), item);
LibraryBrowser.renderGenres($('.itemGenres', page), programInfo, context);
LibraryBrowser.renderOverview($('.itemOverview', page), programInfo);
$('.itemMiscInfo', page).html(LibraryBrowser.getMiscInfoHtml(item));
LiveTvHelpers.renderMiscProgramInfo($('.miscTvProgramInfo', page), programInfo);
$('#txtPrePaddingSeconds', page).val(item.PrePaddingSeconds / 60);
$('#txtPostPaddingSeconds', page).val(item.PostPaddingSeconds / 60);
$('#chkPrePaddingRequired', page).checked(item.IsPrePaddingRequired).checkboxradio('refresh');
@ -53,14 +52,6 @@
$('.status', page).html('Status:&nbsp;&nbsp;&nbsp;' + item.Status);
if (item.SeriesTimerId) {
$('.seriesTimerLink', page).html('<a href="livetvseriestimer.html?id=' + item.SeriesTimerId + '">View Series</a>').show().trigger('create');
} else {
$('.seriesTimerLink', page).hide();
}
Dashboard.hideLoadingMsg();
}

View File

@ -33,7 +33,7 @@
html += '<th>Name</th>';
html += '<th class="desktopColumn">Channel</th>';
html += '<th>Date</th>';
html += '<th>Start</th>';
html += '<th>Time</th>';
html += '<th class="tabletColumn">Length</th>';
html += '<th class="tabletColumn">Status</th>';
html += '<th class="desktopColumn">Series</th>';
@ -97,8 +97,10 @@
html += '<td class="desktopColumn">';
if (timer.SeriesTimerId) {
html += '<a href="livetvseriestimer.html?id=' + timer.SeriesTimerId + '">';
html += 'View';
html += '<a href="livetvseriestimer.html?id=' + timer.SeriesTimerId + '" title="View Series Recording">';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '</a>';
}

View File

@ -661,7 +661,7 @@
currentItem = item;
curentDurationTicks = item.RunTimeTicks;
alert(JSON.stringify(item));
return videoElement[0];
};
@ -980,7 +980,29 @@
return ApiClient.getItems(userId, query);
};
self.playById = function (id, startPositionTicks) {
self.playById = function (id, itemType, startPositionTicks) {
if (itemType == "Recording") {
ApiClient.getLiveTvRecording(id, Dashboard.getCurrentUserId()).done(function (item) {
self.play([item], startPositionTicks);
});
return;
}
if (itemType == "Channel") {
ApiClient.getLiveTvChannel(id, Dashboard.getCurrentUserId()).done(function (item) {
self.play([item], startPositionTicks);
});
return;
}
ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) {

View File

@ -9,7 +9,7 @@
SortOrder: "Ascending",
IncludeItemTypes: "Movie",
Recursive: true,
Fields: "DateCreated",
Fields: "DateCreated,PrimaryImageAspectRatio",
StartIndex: 0
};
@ -31,20 +31,21 @@
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
if (view == "Backdrop") {
html += LibraryBrowser.getPosterDetailViewHtml({
if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
preferBackdrop: true,
context: "movies",
shape: "backdrop"
shape: "backdrop",
preferThumb: true,
context: 'movies'
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Poster") {
html += LibraryBrowser.getPosterDetailViewHtml({
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
context: "movies",
shape: "poster"
shape: "portrait",
context: 'movies',
useAverageAspectRatio: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}

View File

@ -32,9 +32,9 @@
SortOrder: "Descending",
IncludeItemTypes: "Movie",
Filters: "IsResumable",
Limit: 6,
Limit: 3,
Recursive: true,
Fields: "PrimaryImageAspectRatio,DateCreated,UserData"
Fields: "DateCreated,UserData"
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
@ -47,8 +47,11 @@
$('#resumableItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items,
useAverageAspectRatio: true,
showProgressBar: true
showProgressBar: true,
preferBackdrop: true,
shape: 'backdrop',
overlayText: true,
showTitle: true
}));
});

View File

@ -108,8 +108,6 @@
}).checkboxradio('refresh');
$('#selectView', page).val(view).selectmenu('refresh');
$('.alphabetPicker', page).alphaValue(query.NameStartsWith);
}
@ -146,13 +144,6 @@
reloadItems(page);
});
$('#selectView', this).on('change', function () {
view = this.value;
reloadItems(page);
});
$('.alphabetPicker', this).on('alphaselect', function (e, character) {
query.NameStartsWithOrGreater = character;

View File

@ -130,8 +130,6 @@
}).checkboxradio('refresh');
$('#selectView', page).val(view).selectmenu('refresh');
$('#chk3D', page).checked(query.Is3D == true).checkboxradio('refresh');
$('#chkSubtitle', page).checked(query.HasSubtitles == true).checkboxradio('refresh');
@ -193,22 +191,6 @@
reloadItems(page);
});
$('#selectView', this).on('change', function () {
view = this.value;
if (view == "Timeline") {
query.SortBy = "PremiereDate";
query.StartIndex = 0;
$('#radioPremiereDate', page)[0].click();
} else {
reloadItems(page);
}
});
$('#chk3D', this).on('change', function () {
query.StartIndex = 0;

View File

@ -43,7 +43,7 @@
var html = '';
$('.listTopPaging', page).html(LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, true)).trigger('create');
$('.listTopPaging', page).html(LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, false)).trigger('create');
updateFilterControls(page);
@ -58,7 +58,7 @@
sortOrder: query.SortOrder
});
html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount);
html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, false);
$('#items', page).html(html).trigger('create');

View File

@ -27,7 +27,8 @@
useAverageAspectRatio: true,
shape: "backdrop",
showTitle: true,
showParentTitle: true
showParentTitle: true,
overlayText: true
}));

View File

@ -24,7 +24,8 @@
showNewIndicator: false,
shape: "backdrop",
showTitle: true,
showParentTitle: true
showParentTitle: true,
overlayText: true
}));
});
@ -55,7 +56,8 @@
shape: "backdrop",
showTitle: true,
showParentTitle: true,
showProgressBar: true
showProgressBar: true,
overlayText: true
}));
});

View File

@ -1,6 +1,6 @@
(function ($, document) {
var view = "Poster";
var view = "Thumb";
// The base query options
var query = {
@ -9,7 +9,7 @@
SortOrder: "Ascending",
IncludeItemTypes: "Series",
Recursive: true,
Fields: "SeriesInfo,DateCreated",
Fields: "SeriesInfo,DateCreated,PrimaryImageAspectRatio",
StartIndex: 0
};
@ -31,27 +31,35 @@
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
if (view == "Backdrop") {
html += LibraryBrowser.getPosterDetailViewHtml({
if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
preferBackdrop: true,
context: "tv"
shape: "backdrop",
preferThumb: true,
context: 'tv'
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Poster") {
html += LibraryBrowser.getPosterDetailViewHtml({
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
context: "tv"
shape: "portrait",
context: 'tv',
useAverageAspectRatio: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Timeline") {
html += LibraryBrowser.getPosterDetailViewHtml({
items: result.Items,
context: "tv",
timeline: true
});
$('.itemsContainer', page).addClass('timelineItemsContainer');
}

View File

@ -17,7 +17,7 @@
</div>
<div data-role="content">
<div class="ehsContent">
<h1 class="listHeader">Next Episodes to Watch</h1>
<h1 class="listHeader">Next Episodes</h1>
<div id="nextUpItems">
</div>
</div>

View File

@ -22,7 +22,7 @@
<div class="viewControls">
<div style="display: inline-block;">
<select data-mini="true" data-inline="true" id="selectView" name="selectView">
<option value="Backdrop">Backdrop</option>
<option value="Thumb">Thumb</option>
<option value="Poster">Poster</option>
<option value="Timeline">Timeline</option>
</select>