Display more content on home page

This commit is contained in:
Luke Pulverenti 2014-05-29 15:34:20 -04:00
parent a859e2b4be
commit 06d87cc76f
24 changed files with 284 additions and 150 deletions

View File

@ -69,7 +69,7 @@
}
.homePageSection + .homePageSection {
margin-top: 3em;
margin-top: 2em;
}
@media all and (min-width: 1000px) {

View File

@ -63,13 +63,14 @@
}
.libraryMenuButton {
opacity: .95;
}
.libraryMenuButton img {
border: 1px solid #444 !important;
padding: .5em;
background-color: #181818;
border-radius: 5px;
height: 14px!important;
}
.libraryMenuButton:hover {
@ -92,6 +93,7 @@
position: relative;
top: 2px;
margin-left: -5px;
cursor: default;
}
.viewMenuBar {

View File

@ -7,9 +7,7 @@
<div id="episodesPage" data-role="page" class="page libraryPage" data-theme="b">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="#" class="ui-btn-active">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>

View File

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="favoritesPage" data-role="page" class="page type-home libraryPage allLibraryPage backdropPage" data-theme="b" data-backdroptype="movie,series,game,book">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="index.html">${TabHome}</a>
<a href="tvrecommended.html">${TabNextUp}</a>
<a href="favorites.html" class="ui-btn-active">${TabFavorites}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
</div>
<div data-role="content">
<table class="ehsContent homeEhsContent">
<tr>
<td>
<div class="sections"></div>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>

View File

@ -7,9 +7,10 @@
<div id="indexPage" data-role="page" class="page type-home libraryPage allLibraryPage backdropPage" data-theme="b" data-backdroptype="movie,series,game,book">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="channels.html" class="ui-btn-active">Home</a>
<a href="channels.html">Next Up</a>
<a href="channels.html">Favorites</a>
<a href="#" class="ui-btn-active">${TabHome}</a>
<a href="tvrecommended.html">${TabNextUp}</a>
<a href="favorites.html">${TabFavorites}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
</div>
<div data-role="content">

View File

@ -37,9 +37,7 @@
</div>
<div id="tvGenreTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html" class="ui-btn-active">${TabGenres}</a>
@ -49,9 +47,7 @@
</div>
<div id="tvPeopleTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>
@ -61,9 +57,7 @@
</div>
<div id="tvStudioTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>

View File

@ -6,6 +6,15 @@
<body>
<div id="itemDetailPage" data-role="page" class="page libraryPage itemDetailPage" data-theme="b">
<div class="itemTabs homeTabs" style="display: none;">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="index.html" class="lnkHomeHome">${TabHome}</a>
<a href="tvrecommended.html" class="lnkHomeNextUp">${TabNextUp}</a>
<a href="favorites.html" class="lnkHomeFavorites">${TabFavorites}</a>
<a href="tvupcoming.html" class="lnkHomeUpcoming">${TabUpcoming}</a>
</div>
</div>
<div id="channelTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="channels.html" class="ui-btn-active">${TabChannels}</a>
@ -30,9 +39,7 @@
</div>
<div id="tvShowsTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html" class="ui-btn-active">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>

View File

@ -0,0 +1,112 @@
(function ($, document, apiClient) {
function getSections() {
return [
{ name: "Favorite Movies", types: "Movie", id: "favoriteMovies", shape: 'backdrop', preferThumb: true, showTitle: false },
{ name: "Favorite Shows", types: "Series", id: "favoriteShows", shape: 'backdrop', preferThumb: true, showTitle: false },
{ name: "Favorite Games", types: "Game", id: "favoriteGames", shape: 'auto', preferThumb: false, showTitle: true }
];
}
function loadSection(elem, userId, section, isSingleSection) {
var screenWidth = $(window).width();
var options = {
SortBy: isSingleSection ? "SortName" : "Random",
SortOrder: "Ascending",
IncludeItemTypes: section.types,
Filters: "IsFavorite",
Limit: screenWidth >= 1920 ? 10 : (screenWidth >= 1440 ? 8 : 6),
Recursive: true,
Fields: "PrimaryImageAspectRatio",
CollapseBoxSetItems: false,
ExcludeLocationTypes: "Virtual"
};
if (isSingleSection) {
options.Limit = null;
}
ApiClient.getItems(userId, options).done(function (result) {
var html = '';
if (result.Items.length) {
html += '<h1 class="listHeader">' + section.name + '</h1>';
html += '<div>';
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
preferThumb: section.preferThumb,
shape: section.shape,
overlayText: screenWidth >= 600,
context: 'home-favorites',
showTitle: section.showTitle,
lazy: true
});
if (result.TotalRecordCount > result.Items.length) {
html += '<div style="padding: 0 0 0 .5em;">';
var href = "favorites.html?sectionid=" + section.id;
html += '<a data-role="button" href="' + href + '" data-mini="true" data-inline="true">More ...</a>';
html += '</div>';
}
html += '</div>';
}
$(elem).html(html).trigger('create').createPosterItemMenus();
});
}
function loadSections(page, userId) {
var sections = getSections();
var sectionid = getParameterByName('sectionid');
if (sectionid) {
sections = sections.filter(function (s) {
return s.id == sectionid;
});
}
var i, length;
var elem = $('.sections', page);
if (!elem.html().length) {
var html = '';
for (i = 0, length = sections.length; i < length; i++) {
html += '<div class="homePageSection section' + sections[i].id + '"></div>';
}
elem.html(html);
}
for (i = 0, length = sections.length; i < length; i++) {
var section = sections[i];
elem = $('.section' + section.id, page);
loadSection(elem, userId, section, sections.length == 1);
}
}
$(document).on('pagebeforeshow', "#favoritesPage", function () {
var page = this;
var userId = Dashboard.getCurrentUserId();
loadSections(page, userId);
});
})(jQuery, document, ApiClient);

View File

@ -22,7 +22,8 @@
$('#recentlyAddedItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items,
transparent: true,
borderless: true
borderless: true,
shape: 'auto'
}));
});
@ -50,7 +51,8 @@
$('#recentlyPlayedItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items,
transparent: true,
borderless: true
borderless: true,
shape: 'auto'
}));
});

View File

@ -192,7 +192,8 @@
preferThumb: true,
shape: 'backdrop',
showTitle: true,
centerText: true
centerText: true,
context: 'home'
});
html += '</div>';
}
@ -263,7 +264,8 @@
shape: 'backdrop',
overlayText: screenWidth >= 600,
showTitle: true,
showParentTitle: true
showParentTitle: true,
context: 'home'
});
html += '</div>';
}

View File

@ -28,13 +28,13 @@
currentItem = item;
renderHeader(page, item);
var context = getContext(item);
renderHeader(page, item, context);
LibraryBrowser.renderName(item, $('.itemName', page));
LibraryBrowser.renderParentName(item, $('.parentName', page));
var context = getContext(item);
Dashboard.getCurrentUser().done(function (user) {
var imageHref = user.Configuration.IsAdministrator ? "edititemimages.html?id=" + item.Id : "";
@ -145,6 +145,11 @@
function getContext(item) {
// should return either movies, tv, music or games
var context = getParameterByName('context');
if (context) {
return context;
}
if (item.Type == "Episode" || item.Type == "Series" || item.Type == "Season") {
return "tv";
@ -164,46 +169,66 @@
return "";
}
function renderHeader(page, item) {
function renderHeader(page, item, context) {
$('.itemTabs', page).hide();
$('.channelHeader', page).hide();
var elem;
if (item.Type == "MusicAlbum") {
if (context == 'home') {
elem = $('.homeTabs', page).show();
$('a', elem).removeClass('ui-btn-active');
$('.lnkHomeHome', page).addClass('ui-btn-active');
}
else if (context == 'home-nextup') {
elem = $('.homeTabs', page).show();
$('a', elem).removeClass('ui-btn-active');
$('.lnkHomeNextUp', page).addClass('ui-btn-active');
}
else if (context == 'home-favorites') {
elem = $('.homeTabs', page).show();
$('a', elem).removeClass('ui-btn-active');
$('.lnkHomeFavorites', page).addClass('ui-btn-active');
}
else if (context == 'home-upcoming') {
elem = $('.homeTabs', page).show();
$('a', elem).removeClass('ui-btn-active');
$('.lnkHomeUpcoming', page).addClass('ui-btn-active');
}
else if (item.Type == "MusicAlbum") {
$('#albumTabs', page).show();
}
if (item.Type == "MusicVideo") {
else if (item.Type == "MusicVideo") {
$('#musicVideoTabs', page).show();
}
if (item.Type == "Audio") {
else if (item.Type == "Audio") {
$('#songTabs', page).show();
}
if (item.Type == "Movie") {
else if (item.Type == "Movie") {
$('#movieTabs', page).show();
}
if (item.Type == "ChannelVideoItem" || item.Type == "ChannelAudioItem" || item.Type == "ChannelFolderItem") {
else if (item.Type == "ChannelVideoItem" || item.Type == "ChannelAudioItem" || item.Type == "ChannelFolderItem") {
$('#channelTabs', page).show();
$('.channelHeader', page).show().html('<a href="channelitems.html?id=' + item.ChannelId + '">' + item.ChannelName + '</a>').trigger('create');
} else {
$('.channelHeader', page).hide();
}
if (item.Type == "BoxSet") {
else if (item.Type == "BoxSet") {
$('#boxsetTabs', page).show();
}
if (item.MediaType == "Game") {
else if (item.MediaType == "Game") {
$('#gameTabs', page).show();
}
if (item.Type == "GameSystem") {
else if (item.Type == "GameSystem") {
$('#gameSystemTabs', page).show();
}
if (item.Type == "Episode" || item.Type == "Season" || item.Type == "Series") {
else if (item.Type == "Episode" || item.Type == "Season" || item.Type == "Series") {
$('#tvShowsTabs', page).show();
}
}
@ -219,7 +244,7 @@
} else {
$('#childrenCollapsible', page).removeClass('hide');
}
renderChildren(page, item, user);
renderChildren(page, item, user, context);
}
else {
$('#childrenCollapsible', page).addClass('hide');
@ -280,7 +305,7 @@
function renderDetails(page, item, context) {
renderSimilarItems(page, item);
renderSimilarItems(page, item, context);
renderSiblingLinks(page, item);
if (item.Taglines && item.Taglines.length) {
@ -333,7 +358,7 @@
}
if (item.Artists && item.Artists.length && item.Type != "MusicAlbum") {
$('#artist', page).show().html(getArtistLinksHtml(item.Artists)).trigger('create');
$('#artist', page).show().html(getArtistLinksHtml(item.Artists, context)).trigger('create');
} else {
$('#artist', page).hide();
}
@ -401,7 +426,7 @@
//}
}
function getArtistLinksHtml(artists) {
function getArtistLinksHtml(artists, context) {
var html = [];
@ -409,7 +434,7 @@
var artist = artists[i];
html.push('<a class="textlink" href="itembynamedetails.html?context=music&musicartist=' + ApiClient.encodeName(artist) + '">' + artist + '</a>');
html.push('<a class="textlink" href="itembynamedetails.html?context=' + context + '&musicartist=' + ApiClient.encodeName(artist) + '">' + artist + '</a>');
}
@ -453,7 +478,8 @@
function renderSiblingLinks(page, item) {
$('.lnkSibling', page).addClass('hide');
return;
if ((item.Type != "Episode" && item.Type != "Season" && item.Type != "Audio") || item.IndexNumber == null) {
return;
}
@ -507,7 +533,7 @@
});
}
function renderSimilarItems(page, item) {
function renderSimilarItems(page, item, context) {
var promise;
@ -554,7 +580,8 @@
showParentTitle: item.Type == "MusicAlbum",
centerText: item.Type != "MusicAlbum",
showTitle: item.Type == "MusicAlbum" || item.Type == "Game",
borderless: item.Type == "Game"
borderless: item.Type == "Game",
context: context
});
$('#similarContent', page).html(html).createPosterItemMenus();
@ -632,7 +659,7 @@
}
}
function renderChildren(page, item, user) {
function renderChildren(page, item, user, context) {
var fields = "ItemCounts,AudioInfo,PrimaryImageAspectRatio";
@ -684,7 +711,8 @@
items: result.Items,
shape: "portrait",
showTitle: true,
centerText: true
centerText: true,
context: context
});
}
else if (item.Type == "Season") {
@ -692,16 +720,17 @@
items: result.Items,
shape: "smallBackdrop",
showTitle: true,
displayAsSpecial: item.Type == "Season" && item.IndexNumber
displayAsSpecial: item.Type == "Season" && item.IndexNumber,
context: context
});
}
else if (item.Type == "GameSystem") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "auto",
context: 'games',
showTitle: true,
centerText: true
centerText: true,
context: context
});
}
@ -717,7 +746,7 @@
{ name: 'Books', type: 'Book' }
];
renderCollectionItems(page, collectionItemTypes, result.Items, user);
renderCollectionItems(page, collectionItemTypes, result.Items, user, context);
}
}
});
@ -781,7 +810,7 @@
$('.collectionItems', page).trigger('create').createPosterItemMenus();
}
function renderCollectionItemType(page, type, items, user) {
function renderCollectionItemType(page, type, items, user, context) {
var html = '';
@ -804,7 +833,8 @@
items: items,
shape: shape,
showTitle: true,
centerText: true
centerText: true,
context: context
});
html += '</div>';

View File

@ -340,8 +340,19 @@
closePlayMenu: function () {
$('.playFlyout').popup("close").remove();
},
getHref: function (item, context) {
getHref: function (item, itemByNameContext) {
var href = LibraryBrowser.getHrefInternal(item);
if (context) {
href += "&context=" + context;
}
return href;
},
getHrefInternal: function (item) {
if (!item) {
throw new Error('item cannot be null');
@ -351,8 +362,6 @@
return item.url;
}
itemByNameContext = itemByNameContext || "";
// Handle search hints
var id = item.Id || item.ItemId;
@ -369,7 +378,7 @@
}
if (item.CollectionType == 'tvshows') {
return 'tvrecommended.html?topParentId=' + item.Id;
return 'tvlatest.html?topParentId=' + item.Id;
}
if (item.CollectionType == 'music') {
@ -411,30 +420,33 @@
return "itemdetails.html?id=" + id;
}
if (item.Type == "Genre") {
return "itembynamedetails.html?genre=" + ApiClient.encodeName(item.Name) + "&context=" + itemByNameContext;
return "itembynamedetails.html?genre=" + ApiClient.encodeName(item.Name);
}
if (item.Type == "MusicGenre") {
return "itembynamedetails.html?musicgenre=" + ApiClient.encodeName(item.Name) + "&context=" + itemByNameContext;
return "itembynamedetails.html?musicgenre=" + ApiClient.encodeName(item.Name);
}
if (item.Type == "GameGenre") {
return "itembynamedetails.html?gamegenre=" + ApiClient.encodeName(item.Name) + "&context=" + itemByNameContext;
return "itembynamedetails.html?gamegenre=" + ApiClient.encodeName(item.Name);
}
if (item.Type == "Studio") {
return "itembynamedetails.html?studio=" + ApiClient.encodeName(item.Name) + "&context=" + itemByNameContext;
return "itembynamedetails.html?studio=" + ApiClient.encodeName(item.Name);
}
if (item.Type == "Person") {
return "itembynamedetails.html?person=" + ApiClient.encodeName(item.Name) + "&context=" + itemByNameContext;
return "itembynamedetails.html?person=" + ApiClient.encodeName(item.Name);
}
if (item.Type == "Recording") {
return "livetvrecording.html?id=" + id;
}
if (item.Type == "MusicArtist") {
return "itembynamedetails.html?musicartist=" + ApiClient.encodeName(item.Name) + "&context=" + (itemByNameContext || "music");
return "itembynamedetails.html?musicartist=" + ApiClient.encodeName(item.Name);
}
return item.IsFolder ? (id ? "itemlist.html?parentId=" + id : "#") : "itemdetails.html?id=" + id;
if (item.IsFolder) {
return id ? "itemlist.html?parentId=" + id : "#";
}
return "itemdetails.html?id=" + id;
},
getImageUrl: function (item, type, index, options) {
@ -793,7 +805,7 @@
cssClass = options.centerText ? "posterItemText posterItemTextCentered" : "posterItemText";
var lines = [];
if (options.showParentTitle) {
lines.push(item.EpisodeTitle ? item.Name : (item.SeriesName || item.Album || item.AlbumArtist || item.GameSystem || ""));

View File

@ -4,7 +4,7 @@
var html = '<div class="viewMenuBar ui-bar-b">';
html += '<button type="button" data-role="none" title="Menu" onclick="LibraryMenu.showLibraryMenu();" class="headerButton libraryMenuButton headerButtonLeft">';
html += '<button type="button" data-role="none" title="Menu" class="headerButton libraryMenuButton headerButtonLeft">';
html += '<img src="css/images/menu.png" />';
html += '</button>';
html += '<div class="libraryMenuButtonText headerButton"><span>MEDIA</span><span class="mediaBrowserAccent">BROWSER</span></div>';
@ -45,6 +45,8 @@
$(document.body).prepend(html);
$(document).trigger('headercreated');
$('.libraryMenuButton').on('click', showLibraryMenu);
}
function getItemHref(item) {

View File

@ -65,6 +65,7 @@
else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
$('#videoPlayer').removeClass('fullscreenVideo');
} else {
requestFullScreen(document.body);
}
@ -72,6 +73,7 @@
self.resetEnhancements = function () {
$("#mediaPlayer").hide();
$('#videoPlayer').removeClass('fullscreenVideo');
$("#videoControls").removeClass("inactive");
$("video").remove();
$("html").css("cursor", "default");
@ -86,6 +88,8 @@
document.webkitExitFullscreen();
}
$('#videoPlayer').removeClass('fullscreenVideo');
fullscreenExited = true;
};
@ -342,6 +346,8 @@
var player = $("#videoPlayer");
player.addClass("fullscreenVideo");
remoteFullscreen = true;
}
@ -350,6 +356,8 @@
var player = $("#videoPlayer");
player.removeClass("fullscreenVideo");
remoteFullscreen = false;
}
@ -801,7 +809,7 @@
html += '<video class="itemVideo" id="itemVideo" preload="none" autoplay controls>';
}
} else {
// Chrome 35 won't play with preload none
html += '<video class="itemVideo" id="itemVideo" preload="metadata" autoplay>';
}
@ -996,6 +1004,7 @@
$(document).on("keyup.enhancePlayer", function (e) {
if (fullscreenExited) {
videoPlayer.removeClass("fullscreenVideo");
fullscreenExited = false;
return;
}

View File

@ -1332,7 +1332,7 @@ $(function () {
var videoPlayerHtml = '<div id="mediaPlayer" data-theme="b" class="ui-bar-b" style="display: none;">';
videoPlayerHtml += '<div id="videoBackdrop">';
videoPlayerHtml += '<div id="videoPlayer" class="fullscreenVideo">';
videoPlayerHtml += '<div id="videoPlayer">';
videoPlayerHtml += '<div id="videoElement">';
videoPlayerHtml += '<div id="play" class="status"></div>';

View File

@ -1,57 +1,15 @@
(function ($, document) {
function loadResume(page) {
var screenWidth = $(window).width();
var parentId = LibraryMenu.getTopParentId();
var options = {
SortBy: "DatePlayed",
SortOrder: "Descending",
IncludeItemTypes: "Episode",
Filters: "IsResumable",
Limit: screenWidth >= 1920 ? 5 : 4,
Recursive: true,
Fields: "PrimaryImageAspectRatio,SeriesInfo,UserData",
ExcludeLocationTypes: "Virtual",
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
if (result.Items.length) {
$('#resumableSection', page).show();
} else {
$('#resumableSection', page).hide();
}
$('#resumableItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "backdrop",
showTitle: true,
showParentTitle: true,
overlayText: screenWidth >= 600
})).createPosterItemMenus();
});
}
function loadNextUp(page) {
var screenWidth = $(window).width();
var parentId = LibraryMenu.getTopParentId();
var options = {
Limit: 24,
Fields: "PrimaryImageAspectRatio,SeriesInfo,DateCreated",
UserId: Dashboard.getCurrentUserId(),
ExcludeLocationTypes: "Virtual",
ParentId: parentId
ExcludeLocationTypes: "Virtual"
};
ApiClient.getNextUpEpisodes(options).done(function (result) {
@ -67,9 +25,11 @@
shape: "backdrop",
showTitle: true,
showParentTitle: true,
overlayText: screenWidth >= 600
overlayText: screenWidth >= 600,
context: 'home-nextup',
lazy: true
})).createPosterItemMenus();
})).trigger('create').createPosterItemMenus();
});
}
@ -78,7 +38,6 @@
var page = this;
loadResume(page);
loadNextUp(page);
});

View File

@ -4,14 +4,11 @@
var page = this;
var parentId = LibraryMenu.getTopParentId();
var query = {
Limit: 32,
Fields: "SeriesInfo,UserData",
UserId: Dashboard.getCurrentUserId(),
ParentId: parentId
UserId: Dashboard.getCurrentUserId()
};
$.getJSON(ApiClient.getUrl("Shows/Upcoming", query)).done(function (result) {
@ -31,9 +28,11 @@
showTitle: true,
showPremiereDate: true,
showPremiereDateIndex: true,
preferThumb: true
preferThumb: true,
context: 'home-upcoming',
lazy: true
})).createPosterItemMenus();
})).trigger('create').createPosterItemMenus();
});
});

View File

@ -6,9 +6,7 @@
<body>
<div id="tvGenresPage" data-role="page" class="page libraryPage" data-theme="b">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="#" class="ui-btn-active">${TabGenres}</a>

View File

@ -6,9 +6,7 @@
<body>
<div id="tvNextUpPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="series" data-theme="b">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="#" class="ui-btn-active">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>

View File

@ -6,9 +6,7 @@
<body>
<div id="tvPeoplePage" data-role="page" class="page libraryPage" data-theme="b">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>

View File

@ -5,30 +5,19 @@
</head>
<body>
<div id="tvRecommendedPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="series" data-theme="b">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="#" class="ui-btn-active">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="index.html">${TabHome}</a>
<a href="tvrecommended.html" class="ui-btn-active">${TabNextUp}</a>
<a href="favorites.html">${TabFavorites}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>
<a href="tvpeople.html">${TabPeople}</a>
<a href="tvstudios.html">${TabNetworks}</a>
</div>
<br />
<div data-role="content">
<table class="ehsContent">
<table class="ehsContent homeEhsContent" style="text-align: center;">
<tr>
<td>
<div id="resumableSection" style="display: none;">
<h1 class="listHeader">${HeaderResume}</h1>
<div id="resumableItems">
</div>
</div>
<h1 class="listHeader">${HeaderNextUp}</h1>
<div id="nextUpItems">
</div>
<p class="noNextUpItems" style="display: none;">${NoNextUpItemsMessage}</p>

View File

@ -8,7 +8,6 @@
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="#" class="ui-btn-active">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>

View File

@ -8,7 +8,6 @@
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>

View File

@ -6,17 +6,13 @@
<body>
<div id="tvUpcomingPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="series" data-theme="b">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="index.html">${TabHome}</a>
<a href="tvrecommended.html">${TabNextUp}</a>
<a href="favorites.html">${TabFavorites}</a>
<a href="#" class="ui-btn-active">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>
<a href="tvpeople.html">${TabPeople}</a>
<a href="tvstudios.html">${TabNetworks}</a>
</div>
<div data-role="content">
<table class="ehsContent">
<table class="ehsContent homeEhsContent">
<tr>
<td>
<div id="upcomingItems">