mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-17 19:08:18 -07:00
Display more content on home page
This commit is contained in:
parent
a859e2b4be
commit
06d87cc76f
@ -69,7 +69,7 @@
|
||||
}
|
||||
|
||||
.homePageSection + .homePageSection {
|
||||
margin-top: 3em;
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
@media all and (min-width: 1000px) {
|
||||
|
@ -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 {
|
||||
|
@ -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>
|
||||
|
28
dashboard-ui/favorites.html
Normal file
28
dashboard-ui/favorites.html
Normal 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>
|
@ -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">
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
112
dashboard-ui/scripts/favorites.js
Normal file
112
dashboard-ui/scripts/favorites.js
Normal 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);
|
@ -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'
|
||||
}));
|
||||
|
||||
});
|
||||
|
@ -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>';
|
||||
}
|
||||
|
@ -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>';
|
||||
|
||||
|
@ -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 || ""));
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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>';
|
||||
|
@ -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);
|
||||
});
|
||||
|
||||
|
@ -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();
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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">
|
||||
|
Loading…
Reference in New Issue
Block a user