1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

add some web client settings

This commit is contained in:
Luke Pulverenti 2014-05-21 15:33:46 -04:00
parent 2c7636b291
commit ba33bf6fff
5 changed files with 245 additions and 81 deletions

View file

@ -82,7 +82,23 @@
return html;
}
function refreshMediaLibrary(page) {
function getDefaultSection(index) {
switch (index) {
case 0:
return 'librarybuttons';
case 1:
return 'resume';
case 2:
return 'latestmedia';
default:
return '';
}
}
function loadlibraryButtons(elem, userId, index) {
var options = {
@ -90,10 +106,8 @@
Fields: "PrimaryImageAspectRatio"
};
var userId = Dashboard.getCurrentUserId();
var promise1 = ApiClient.getItems(userId, options);
var promise2 = ApiClient.getLiveTvInfo();
var promise3 = $.getJSON(ApiClient.getUrl("Channels", {
@ -103,7 +117,7 @@
limit: 0
}));
$.when(promise1, promise2, promise3).done(function(r1, r2, r3) {
$.when(promise1, promise2, promise3).done(function (r1, r2, r3) {
var result = r1[0];
var liveTvInfo = r2[0];
@ -122,7 +136,7 @@
var showLiveTv = liveTvInfo.EnabledUsers.indexOf(userId) != -1;
if (showLiveTv) {
result.Items.push({
Name: 'Live TV',
CollectionType: 'livetv',
@ -131,59 +145,31 @@
});
}
$('.myLibrary', page).html(createMediaLinks({
var html = '';
if (index) {
html += '<h1 class="listHeader">My Library</h1>';
}
html += '<div>';
html += createMediaLinks({
items: result.Items,
shape: 'myLibrary',
showTitle: true,
centerText: true
}));
});
html += '</div>';
$(elem).html(html);
});
}
$(document).on('pagebeforeshow', "#indexPage", function () {
function loadRecentlyAdded(elem, userId) {
var screenWidth = $(window).width();
var page = this;
refreshMediaLibrary(page);
var options = {
SortBy: "DatePlayed",
SortOrder: "Descending",
MediaTypes: "Video",
Filters: "IsResumable",
Limit: screenWidth >= 1920 ? 5 : (screenWidth >= 1440 ? 4 : 3),
Recursive: true,
Fields: "PrimaryImageAspectRatio",
CollapseBoxSetItems: false,
ExcludeLocationTypes: "Virtual"
};
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,
preferBackdrop: true,
shape: 'backdrop',
overlayText: screenWidth >= 600,
showTitle: true,
showParentTitle: true
})).createPosterItemMenus();
});
options = {
SortBy: "DateCreated",
SortOrder: "Descending",
Limit: screenWidth >= 2400 ? 30 : (screenWidth >= 1920 ? 20 : (screenWidth >= 1440 ? 12 : (screenWidth >= 800 ? 12 : 8))),
@ -194,18 +180,139 @@
ExcludeLocationTypes: "Virtual,Remote"
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
ApiClient.getItems(userId, options).done(function (result) {
$('#recentlyAddedItems', page).html(LibraryBrowser.getPosterViewHtml({
var html = '';
html += '<h1 class="listHeader">Latest Media</h1>';
html += '<div>';
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
preferThumb: true,
shape: 'backdrop',
showTitle: true,
centerText: true
});
html += '</div>';
})).createPosterItemMenus();
$(elem).html(html).createPosterItemMenus();
});
}
function loadLibraryTiles(elem, userId) {
var options = {
SortBy: "SortName",
Fields: "PrimaryImageAspectRatio"
};
ApiClient.getItems(userId, options).done(function (result) {
var html = '';
html += '<h1 class="listHeader">My Library</h1>';
html += '<div>';
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
preferThumb: true,
shape: 'backdrop',
showTitle: true,
centerText: true
});
html += '</div>';
$(elem).html(html).createPosterItemMenus();
});
}
function loadResume(elem, userId) {
var screenWidth = $(window).width();
var options = {
SortBy: "DatePlayed",
SortOrder: "Descending",
MediaTypes: "Video",
Filters: "IsResumable",
Limit: screenWidth >= 1920 ? 10 : (screenWidth >= 1440 ? 8 : 6),
Recursive: true,
Fields: "PrimaryImageAspectRatio",
CollapseBoxSetItems: false,
ExcludeLocationTypes: "Virtual"
};
ApiClient.getItems(userId, options).done(function (result) {
var html = '';
html += '<h1 class="listHeader">Resume</h1>';
html += '<div>';
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
preferBackdrop: true,
shape: 'backdrop',
overlayText: screenWidth >= 600,
showTitle: true,
showParentTitle: true
});
html += '</div>';
$(elem).html(html).createPosterItemMenus();
});
}
function loadSection(page, userId, displayPreferences, index) {
var section = displayPreferences.CustomPrefs['home' + index] || getDefaultSection(index);
var elem = $('.section' + index, page);
if (section == 'latestmedia') {
loadRecentlyAdded(elem, userId);
}
else if (section == 'librarytiles') {
loadLibraryTiles(elem, userId);
}
else if (section == 'resume') {
loadResume(elem, userId);
}
else if (section == 'librarybuttons') {
loadlibraryButtons(elem, userId, index);
}
}
function loadSections(page, userId, displayPreferences) {
var i, length;
var sectionCount = 3;
var html = '';
for (i = 0, length = sectionCount; i < length; i++) {
html += '<div class="section' + i + '"></div>';
}
$('.sections', page).html(html);
for (i = 0, length = sectionCount; i < length; i++) {
loadSection(page, userId, displayPreferences, i);
}
}
$(document).on('pagebeforeshow', "#indexPage", function () {
var page = this;
var userId = Dashboard.getCurrentUserId();
ApiClient.getDisplayPreferences('home', userId, 'webclient').done(function (result) {
loadSections(page, userId, result);
});
});
})(jQuery, document, ApiClient);