mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
added season page
This commit is contained in:
parent
69fb2cdfba
commit
2cab873a9b
5 changed files with 248 additions and 29 deletions
|
@ -149,6 +149,9 @@
|
|||
if (item.Type == "Series") {
|
||||
return "tvseries.html?id=" + item.Id;
|
||||
}
|
||||
if (item.Type == "Season") {
|
||||
return "tvseason.html?id=" + item.Id;
|
||||
}
|
||||
if (item.Type == "BoxSet") {
|
||||
return "boxset.html?id=" + item.Id;
|
||||
}
|
||||
|
|
|
@ -4,17 +4,15 @@
|
|||
|
||||
MediaLibraryPage.lastVirtualFolderName = "";
|
||||
|
||||
MediaLibraryPage.reloadLibrary();
|
||||
MediaLibraryPage.reloadLibrary(this);
|
||||
},
|
||||
|
||||
reloadLibrary: function () {
|
||||
reloadLibrary: function (page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
var userId = getParameterByName("userId");
|
||||
|
||||
var page = $.mobile.activePage;
|
||||
|
||||
if (userId) {
|
||||
|
||||
$('#userProfileNavigation', page).show();
|
||||
|
@ -28,8 +26,11 @@
|
|||
|
||||
if (user.Configuration.UseCustomLibrary) {
|
||||
|
||||
ApiClient.getVirtualFolders(userId).done(MediaLibraryPage.reloadVirtualFolders);
|
||||
$(".editing_default").hide();
|
||||
ApiClient.getVirtualFolders(userId).done(function (result) {
|
||||
MediaLibraryPage.reloadVirtualFolders(page, result);
|
||||
});
|
||||
|
||||
$(".editing_default", page).hide();
|
||||
$('#divMediaLibrary', page).show();
|
||||
} else {
|
||||
$('#divMediaLibrary', page).hide();
|
||||
|
@ -41,7 +42,9 @@
|
|||
} else {
|
||||
|
||||
$('#userProfileNavigation', page).hide();
|
||||
ApiClient.getVirtualFolders().done(MediaLibraryPage.reloadVirtualFolders);
|
||||
ApiClient.getVirtualFolders().done(function(result) {
|
||||
MediaLibraryPage.reloadVirtualFolders(page, result);
|
||||
});
|
||||
|
||||
$('#fldUseDefaultLibrary', page).hide();
|
||||
$('#divMediaLibrary', page).show();
|
||||
|
@ -49,9 +52,7 @@
|
|||
}
|
||||
},
|
||||
|
||||
reloadVirtualFolders: function (virtualFolders) {
|
||||
|
||||
var page = $.mobile.activePage;
|
||||
reloadVirtualFolders: function (page, virtualFolders) {
|
||||
|
||||
if (virtualFolders) {
|
||||
MediaLibraryPage.virtualFolders = virtualFolders;
|
||||
|
@ -113,14 +114,17 @@
|
|||
Dashboard.showLoadingMsg();
|
||||
|
||||
var userId = getParameterByName("userId");
|
||||
var page = $.mobile.activePage;
|
||||
|
||||
ApiClient.getUser(userId).done(function (user) {
|
||||
|
||||
user.Configuration.UseCustomLibrary = !useDefaultLibrary;
|
||||
|
||||
ApiClient.updateUser(user).done(MediaLibraryPage.reloadLibrary);
|
||||
ApiClient.updateUser(user).done(function() {
|
||||
MediaLibraryPage.reloadLibrary(page);
|
||||
});
|
||||
|
||||
$(".editing_default").hide();
|
||||
$(".editing_default", page).hide();
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -266,7 +270,7 @@
|
|||
|
||||
$('#popupEnterText', page).popup("close");
|
||||
$('#popupDirectoryPicker', page).popup("close");
|
||||
MediaLibraryPage.reloadLibrary();
|
||||
MediaLibraryPage.reloadLibrary(page);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
159
dashboard-ui/scripts/tvseason.js
Normal file
159
dashboard-ui/scripts/tvseason.js
Normal file
|
@ -0,0 +1,159 @@
|
|||
(function ($, document, LibraryBrowser, window) {
|
||||
|
||||
var currentItem;
|
||||
|
||||
function reload(page) {
|
||||
|
||||
var id = getParameterByName('id');
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) {
|
||||
|
||||
currentItem = item;
|
||||
|
||||
var name = item.Name;
|
||||
|
||||
$('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item));
|
||||
|
||||
Dashboard.setPageTitle(name);
|
||||
|
||||
$('#itemName', page).html(name);
|
||||
|
||||
setInitialCollapsibleState(page, item);
|
||||
renderDetails(page, item);
|
||||
|
||||
if (LibraryBrowser.shouldDisplayGallery(item)) {
|
||||
$('#galleryCollapsible', page).show();
|
||||
} else {
|
||||
$('#galleryCollapsible', page).hide();
|
||||
}
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
|
||||
function setInitialCollapsibleState(page, item) {
|
||||
|
||||
if (!item.People || !item.People.length) {
|
||||
$('#castCollapsible', page).hide();
|
||||
} else {
|
||||
$('#castCollapsible', page).show();
|
||||
}
|
||||
}
|
||||
|
||||
function renderDetails(page, item) {
|
||||
|
||||
if (item.Taglines && item.Taglines.length) {
|
||||
$('#itemTagline', page).html(item.Taglines[0]).show();
|
||||
} else {
|
||||
$('#itemTagline', page).hide();
|
||||
}
|
||||
|
||||
if (item.Overview || item.OverviewHtml) {
|
||||
var overview = item.OverviewHtml || item.Overview;
|
||||
|
||||
$('#itemOverview', page).html(overview).show();
|
||||
$('#itemOverview a').each(function () {
|
||||
$(this).attr("target", "_blank");
|
||||
});
|
||||
} else {
|
||||
$('#itemOverview', page).hide();
|
||||
}
|
||||
|
||||
if (item.CommunityRating) {
|
||||
$('#itemCommunityRating', page).html(LibraryBrowser.getStarRatingHtml(item)).show().attr('title', item.CommunityRating);
|
||||
} else {
|
||||
$('#itemCommunityRating', page).hide();
|
||||
}
|
||||
|
||||
$('#itemMiscInfo', page).html(LibraryBrowser.getMiscInfoHtml(item));
|
||||
|
||||
LibraryBrowser.renderGenres($('#itemGenres', page), item);
|
||||
LibraryBrowser.renderStudios($('#itemStudios', page), item);
|
||||
renderUserDataIcons(page, item);
|
||||
LibraryBrowser.renderLinks($('#itemLinks', page), item);
|
||||
}
|
||||
|
||||
function renderUserDataIcons(page, item) {
|
||||
$('#itemRatings', page).html(LibraryBrowser.getUserDataIconsHtml(item));
|
||||
}
|
||||
|
||||
function renderSeasons(page) {
|
||||
|
||||
ApiClient.getItems(Dashboard.getCurrentUserId(), {
|
||||
|
||||
ParentId: getParameterByName('id'),
|
||||
SortBy: "SortName",
|
||||
Fields: "PrimaryImageAspectRatio,ItemCounts,DisplayMediaType,DateCreated,UserData"
|
||||
|
||||
}).done(function (result) {
|
||||
|
||||
var html = LibraryBrowser.getPosterDetailViewHtml({
|
||||
items: result.Items,
|
||||
useAverageAspectRatio: true
|
||||
});
|
||||
|
||||
$('#episodesContent', page).html(html);
|
||||
});
|
||||
}
|
||||
|
||||
function renderGallery(page, item) {
|
||||
|
||||
var html = LibraryBrowser.getGalleryHtml(item);
|
||||
|
||||
$('#galleryContent', page).html(html).trigger('create');
|
||||
}
|
||||
|
||||
function renderCast(page, item) {
|
||||
var html = '';
|
||||
|
||||
var casts = item.People || [];
|
||||
|
||||
for (var i = 0, length = casts.length; i < length; i++) {
|
||||
|
||||
var cast = casts[i];
|
||||
|
||||
html += LibraryBrowser.createCastImage(cast);
|
||||
}
|
||||
|
||||
$('#castContent', page).html(html);
|
||||
}
|
||||
|
||||
$(document).on('pageshow', "#tvSeasonPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
reload(page);
|
||||
|
||||
$('#episodesCollapsible', page).on('expand.lazyload', function () {
|
||||
|
||||
renderSeasons(page);
|
||||
|
||||
$(this).off('expand.lazyload');
|
||||
});
|
||||
|
||||
$('#castCollapsible', page).on('expand.lazyload', function () {
|
||||
renderCast(page, currentItem);
|
||||
|
||||
$(this).off('expand.lazyload');
|
||||
});
|
||||
|
||||
$('#galleryCollapsible', page).on('expand.lazyload', function () {
|
||||
|
||||
renderGallery(page, currentItem);
|
||||
|
||||
$(this).off('expand.lazyload');
|
||||
});
|
||||
|
||||
}).on('pagehide', "#tvSeasonPage", function () {
|
||||
|
||||
currentItem = null;
|
||||
var page = this;
|
||||
|
||||
$('#episodesCollapsible', page).off('expand.lazyload');
|
||||
$('#castCollapsible', page).off('expand.lazyload');
|
||||
$('#galleryCollapsible', page).off('expand.lazyload');
|
||||
});
|
||||
|
||||
})(jQuery, document, LibraryBrowser, window);
|
|
@ -84,14 +84,14 @@
|
|||
ApiClient.getItems(Dashboard.getCurrentUserId(), {
|
||||
|
||||
ParentId: getParameterByName('id'),
|
||||
SortBy: "SortName"
|
||||
SortBy: "SortName",
|
||||
Fields: "PrimaryImageAspectRatio,ItemCounts,DisplayMediaType,DateCreated,UserData"
|
||||
|
||||
}).done(function(result) {
|
||||
|
||||
var html = LibraryBrowser.getPosterDetailViewHtml({
|
||||
items: result.Items,
|
||||
useAverageAspectRatio: true,
|
||||
Fields: "PrimaryImageAspectRatio,ItemCounts,DisplayMediaType,DateCreated,UserData"
|
||||
useAverageAspectRatio: true
|
||||
});
|
||||
|
||||
$('#seasonsContent', page).html(html);
|
||||
|
@ -120,11 +120,7 @@
|
|||
$('#castContent', page).html(html);
|
||||
}
|
||||
|
||||
$(document).on('pageinit', "#tvSeriesPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
}).on('pageshow', "#tvSeriesPage", function () {
|
||||
$(document).on('pageshow', "#tvSeriesPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
|
@ -160,12 +156,4 @@
|
|||
$('#galleryCollapsible', page).off('expand.lazyload');
|
||||
});
|
||||
|
||||
function tvSeriesPage() {
|
||||
|
||||
var self = this;
|
||||
|
||||
}
|
||||
|
||||
window.TvSeriesPage = new tvSeriesPage();
|
||||
|
||||
})(jQuery, document, LibraryBrowser, window);
|
||||
|
|
65
dashboard-ui/tvseason.html
Normal file
65
dashboard-ui/tvseason.html
Normal file
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="tvSeasonPage" data-role="page" class="page libraryPage noLogoPage" data-theme="a">
|
||||
<h1 class="libraryPageHeader"><a href="index.html" class="imageLink">
|
||||
<img src="css/images/home.png"></a>TV Shows</h1>
|
||||
|
||||
<div data-role="content">
|
||||
|
||||
<div data-role="controlgroup" data-type="horizontal" class="libraryViewNav" data-mini="true">
|
||||
<a href="tvrecommended.html" data-role="button">Suggested</a>
|
||||
<a href="tvshows.html" data-role="button" class="ui-btn-active">Shows</a>
|
||||
<a href="tvgenres.html" data-role="button">Genres</a>
|
||||
<a href="tvpeople.html" data-role="button">Actors</a>
|
||||
<a href="tvstudios.html" data-role="button">Networks</a>
|
||||
</div>
|
||||
|
||||
<div class="detailPagePrimaryInfo">
|
||||
|
||||
<h1 id="itemName" class="detailPageName"></h1>
|
||||
|
||||
<div class="itemImageBlock">
|
||||
<div id="itemMedia" style="position: relative;">
|
||||
<div id="itemImage"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="itemDetailBlock">
|
||||
|
||||
<p id="itemTagline" style="font-style: italic;"></p>
|
||||
<p id="itemOverview"></p>
|
||||
<p id="itemRatings"></p>
|
||||
<p id="itemCommunityRating"></p>
|
||||
<p id="itemMiscInfo" class="itemMiscInfo"></p>
|
||||
|
||||
<p id="itemGenres"></p>
|
||||
<p id="itemStudios"></p>
|
||||
<p id="itemLinks"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-role="collapsible" id="episodesCollapsible">
|
||||
<h3>Episodes</h3>
|
||||
<div id="episodesContent"></div>
|
||||
</div>
|
||||
<div data-role="collapsible" id="trailersCollapsible" class="hide">
|
||||
<h3>Trailers</h3>
|
||||
<div id="trailersContent"></div>
|
||||
</div>
|
||||
<div data-role="collapsible" id="castCollapsible" class="hide">
|
||||
<h3>Cast & Crew</h3>
|
||||
<div id="castContent"></div>
|
||||
</div>
|
||||
<div data-role="collapsible" id="galleryCollapsible">
|
||||
<h3>Gallery</h3>
|
||||
<div id="galleryContent"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue