mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update playlist query
This commit is contained in:
parent
a38b85a4df
commit
6afa97f6b8
14 changed files with 142 additions and 121 deletions
|
@ -76,25 +76,9 @@
|
|||
function getDeviceCulture() {
|
||||
var deferred = DeferredBuilder.Deferred();
|
||||
|
||||
if (navigator.globalization && navigator.globalization.getPreferredLanguage) {
|
||||
if (AppInfo.isNativeApp) {
|
||||
|
||||
Logger.log('Calling navigator.globalization.getPreferredLanguage');
|
||||
|
||||
navigator.globalization.getPreferredLanguage(function (locale) {
|
||||
|
||||
var culture = locale.value || '';
|
||||
//if ($.browser.safari) {
|
||||
culture = navigator.language || navigator.userLanguage || culture;
|
||||
//}
|
||||
Logger.log('Device culture is ' + culture);
|
||||
deferred.resolveWith(null, [culture]);
|
||||
|
||||
}, function () {
|
||||
|
||||
Logger.log('navigator.globalization.getPreferredLanguage failed');
|
||||
|
||||
deferred.resolveWith(null, [navigator.language || navigator.userLanguage]);
|
||||
});
|
||||
deferred.resolveWith(null, [navigator.language || navigator.userLanguage]);
|
||||
|
||||
} else if (AppInfo.supportsUserDisplayLanguageSetting) {
|
||||
|
||||
|
|
|
@ -1136,7 +1136,7 @@
|
|||
|
||||
var review = reviews[i];
|
||||
|
||||
html += '<div class="paperList">';
|
||||
html += '<div class="paperList criticReviewPaperList">';
|
||||
html += '<paper-icon-item style="padding-top:.5em;padding-bottom:.5em;">';
|
||||
|
||||
if (review.Score != null) {
|
||||
|
|
|
@ -583,7 +583,7 @@
|
|||
|
||||
showPlayMenu: function (positionTo, itemId, itemType, isFolder, mediaType, resumePositionTicks) {
|
||||
|
||||
var externalPlayers = AppSettings.enableExternalPlayers();
|
||||
var externalPlayers = AppInfo.supportsExternalPlayers && AppSettings.enableExternalPlayers();
|
||||
|
||||
if (!resumePositionTicks && mediaType != "Audio" && !isFolder) {
|
||||
|
||||
|
@ -727,7 +727,9 @@
|
|||
}
|
||||
|
||||
if (item.CanDownload) {
|
||||
commands.push('download');
|
||||
if (AppInfo.supportsDownloading) {
|
||||
commands.push('download');
|
||||
}
|
||||
}
|
||||
|
||||
if (LibraryBrowser.canShare(item, user)) {
|
||||
|
|
|
@ -289,7 +289,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
if (mediaType == 'Video' && AppSettings.enableExternalPlayers()) {
|
||||
if (mediaType == 'Video' && AppInfo.supportsExternalPlayers && AppSettings.enableExternalPlayers()) {
|
||||
items.push({
|
||||
name: Globalize.translate('ButtonPlayExternalPlayer'),
|
||||
id: 'externalplayer',
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
(function ($, document) {
|
||||
|
||||
function enableScrollX() {
|
||||
return $.browser.mobile && AppInfo.enableAppLayouts;
|
||||
}
|
||||
|
||||
function getPortraitShape() {
|
||||
return enableScrollX() ? 'overflowPortrait' : 'portrait';
|
||||
}
|
||||
|
||||
function getThumbShape() {
|
||||
return enableScrollX() ? 'overflowBackdrop' : 'backdrop';
|
||||
}
|
||||
|
||||
function getSquareShape() {
|
||||
return enableScrollX() ? 'overflowSquare' : 'square';
|
||||
}
|
||||
|
||||
function getLimit() {
|
||||
|
||||
return enableScrollX() ? 12 : 8;
|
||||
}
|
||||
|
||||
function loadRecommendedPrograms(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
@ -8,30 +29,15 @@
|
|||
|
||||
userId: Dashboard.getCurrentUserId(),
|
||||
IsAiring: true,
|
||||
limit: 16,
|
||||
limit: getLimit() * 2,
|
||||
ImageTypeLimit: 1,
|
||||
EnableImageTypes: "Primary"
|
||||
|
||||
}).done(function (result) {
|
||||
|
||||
var html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "auto",
|
||||
showTitle: true,
|
||||
showParentTitle: true,
|
||||
centerText: true,
|
||||
coverImage: true,
|
||||
lazy: true,
|
||||
overlayPlayButton: true
|
||||
|
||||
});
|
||||
|
||||
var elem = page.querySelector('.activeProgramItems');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
renderItems(page, result.Items, 'activeProgramItems', 'play');
|
||||
LibraryBrowser.setLastRefreshed(page);
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -44,7 +50,7 @@
|
|||
userId: Dashboard.getCurrentUserId(),
|
||||
IsAiring: false,
|
||||
HasAired: false,
|
||||
limit: 8,
|
||||
limit: getLimit(),
|
||||
IsMovie: false,
|
||||
IsSports: false,
|
||||
IsKids: false,
|
||||
|
@ -52,22 +58,7 @@
|
|||
|
||||
}).done(function (result) {
|
||||
|
||||
var html = LibraryBrowser.getPosterViewHtml({
|
||||
|
||||
items: result.Items,
|
||||
shape: "auto",
|
||||
showTitle: true,
|
||||
showParentTitle: true,
|
||||
centerText: true,
|
||||
coverImage: true,
|
||||
lazy: true,
|
||||
overlayMoreButton: true
|
||||
|
||||
});
|
||||
|
||||
var elem = page.querySelector('.upcomingProgramItems');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
renderItems(page, result.Items, 'upcomingProgramItems');
|
||||
});
|
||||
|
||||
ApiClient.getLiveTvRecommendedPrograms({
|
||||
|
@ -75,25 +66,12 @@
|
|||
userId: Dashboard.getCurrentUserId(),
|
||||
IsAiring: false,
|
||||
HasAired: false,
|
||||
limit: 8,
|
||||
limit: getLimit(),
|
||||
IsMovie: true
|
||||
|
||||
}).done(function (result) {
|
||||
|
||||
var html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "portrait",
|
||||
showTitle: true,
|
||||
centerText: true,
|
||||
coverImage: true,
|
||||
overlayText: false,
|
||||
lazy: true,
|
||||
overlayMoreButton: true
|
||||
});
|
||||
|
||||
var elem = page.querySelector('.upcomingTvMovieItems');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
renderItems(page, result.Items, 'upcomingTvMovieItems', null, getPortraitShape());
|
||||
});
|
||||
|
||||
ApiClient.getLiveTvRecommendedPrograms({
|
||||
|
@ -101,25 +79,12 @@
|
|||
userId: Dashboard.getCurrentUserId(),
|
||||
IsAiring: false,
|
||||
HasAired: false,
|
||||
limit: 8,
|
||||
limit: getLimit(),
|
||||
IsSports: true
|
||||
|
||||
}).done(function (result) {
|
||||
|
||||
var html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "auto",
|
||||
showTitle: true,
|
||||
centerText: true,
|
||||
coverImage: true,
|
||||
overlayText: false,
|
||||
lazy: true,
|
||||
overlayMoreButton: true
|
||||
});
|
||||
|
||||
var elem = page.querySelector('.upcomingSportsItems');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
renderItems(page, result.Items, 'upcomingSportsItems');
|
||||
});
|
||||
|
||||
ApiClient.getLiveTvRecommendedPrograms({
|
||||
|
@ -127,28 +92,44 @@
|
|||
userId: Dashboard.getCurrentUserId(),
|
||||
IsAiring: false,
|
||||
HasAired: false,
|
||||
limit: 8,
|
||||
limit: getLimit(),
|
||||
IsKids: true
|
||||
|
||||
}).done(function (result) {
|
||||
|
||||
var html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "auto",
|
||||
showTitle: true,
|
||||
centerText: true,
|
||||
coverImage: true,
|
||||
overlayText: false,
|
||||
lazy: true,
|
||||
overlayMoreButton: true
|
||||
});
|
||||
|
||||
var elem = page.querySelector('.upcomingKidsItems');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
renderItems(page, result.Items, 'upcomingKidsItems');
|
||||
});
|
||||
}
|
||||
|
||||
function renderItems(page, items, sectionClass, overlayButton, shape) {
|
||||
|
||||
var html = LibraryBrowser.getPosterViewHtml({
|
||||
items: items,
|
||||
shape: shape || (enableScrollX() ? getSquareShape() : 'auto'),
|
||||
showTitle: true,
|
||||
centerText: true,
|
||||
coverImage: true,
|
||||
overlayText: false,
|
||||
lazy: true,
|
||||
overlayMoreButton: overlayButton != 'play',
|
||||
overlayPlayButton: overlayButton == 'play'
|
||||
});
|
||||
|
||||
var elem = page.querySelector('.' + sectionClass);
|
||||
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
}
|
||||
|
||||
function initSuggestedTab(page, tabContent) {
|
||||
|
||||
if (enableScrollX()) {
|
||||
$('.itemsContainer', tabContent).addClass('hiddenScrollX').createCardMenus();
|
||||
} else {
|
||||
$('.itemsContainer', tabContent).removeClass('hiddenScrollX').createCardMenus();
|
||||
}
|
||||
}
|
||||
|
||||
function renderSuggestedTab(page, tabContent) {
|
||||
|
||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
||||
|
@ -168,6 +149,7 @@
|
|||
|
||||
case 0:
|
||||
renderMethod = 'renderSuggestedTab';
|
||||
initMethod = 'initSuggestedTab';
|
||||
break;
|
||||
case 1:
|
||||
depends.push('scripts/registrationservices');
|
||||
|
@ -225,7 +207,8 @@
|
|||
});
|
||||
|
||||
window.LiveTvPage = {
|
||||
renderSuggestedTab: renderSuggestedTab
|
||||
renderSuggestedTab: renderSuggestedTab,
|
||||
initSuggestedTab: initSuggestedTab
|
||||
};
|
||||
|
||||
})(jQuery, document);
|
|
@ -147,7 +147,13 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
if (AppInfo.hasKnownExternalPlayerSupport) {
|
||||
if (AppInfo.supportsExternalPlayers) {
|
||||
$('.fldExternalPlayer', page).show();
|
||||
} else {
|
||||
$('.fldExternalPlayer', page).hide();
|
||||
}
|
||||
|
||||
if (AppInfo.supportsExternalPlayerMenu) {
|
||||
$('.labelNativeExternalPlayers', page).show();
|
||||
$('.labelGenericExternalPlayers', page).hide();
|
||||
} else {
|
||||
|
|
|
@ -14,6 +14,10 @@
|
|||
|
||||
var view = items[i];
|
||||
|
||||
if (AppInfo.isNativeApp && $.browser.safari && view.CollectionType == 'livetv') {
|
||||
continue;
|
||||
}
|
||||
|
||||
list.push(view);
|
||||
|
||||
if (view.CollectionType == 'livetv') {
|
||||
|
|
|
@ -1801,10 +1801,16 @@ var AppInfo = {};
|
|||
AppInfo.enableMovieTrailersTab = true;
|
||||
}
|
||||
|
||||
AppInfo.supportsExternalPlayers = true;
|
||||
|
||||
if (isCordova) {
|
||||
AppInfo.enableAppLayouts = true;
|
||||
AppInfo.hasKnownExternalPlayerSupport = true;
|
||||
AppInfo.supportsExternalPlayerMenu = true;
|
||||
AppInfo.isNativeApp = true;
|
||||
|
||||
if (isIOS) {
|
||||
AppInfo.supportsExternalPlayers = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
AppInfo.enableFooterNotifications = true;
|
||||
|
@ -1824,6 +1830,8 @@ var AppInfo = {};
|
|||
}
|
||||
}
|
||||
|
||||
AppInfo.supportsDownloading = !AppInfo.isNativeApp || !$.browser.safari;
|
||||
|
||||
AppInfo.enableUserImage = true;
|
||||
AppInfo.hasPhysicalVolumeButtons = isCordova || isMobile;
|
||||
AppInfo.enableBackButton = isIOS && (window.navigator.standalone || AppInfo.isNativeApp);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue