diff --git a/src/scripts/autobackdrops.js b/src/scripts/autobackdrops.js index 8cce154a19..73042f83ce 100644 --- a/src/scripts/autobackdrops.js +++ b/src/scripts/autobackdrops.js @@ -1,53 +1,76 @@ -define(["backdrop", "userSettings", "libraryMenu"], function(backdrop, userSettings, libraryMenu) { +define(["backdrop", "userSettings", "libraryMenu"], function (backdrop, userSettings, libraryMenu) { "use strict"; function enabled() { - return userSettings.enableBackdrops() + return userSettings.enableBackdrops(); } function getBackdropItemIds(apiClient, userId, types, parentId) { - var key = "backdrops2_" + userId + (types || "") + (parentId || ""), - data = cache[key]; - if (data) return console.log("Found backdrop id list in cache. Key: " + key), data = JSON.parse(data), Promise.resolve(data); + var key = "backdrops2_" + userId + (types || "") + (parentId || ""); + var data = cache[key]; + + if (data) { + console.log("Found backdrop id list in cache. Key: " + key); + data = JSON.parse(data); + return Promise.resolve(data); + } + var options = { SortBy: "IsFavoriteOrLiked,Random", Limit: 20, - Recursive: !0, + Recursive: true, IncludeItemTypes: types, ImageTypes: "Backdrop", ParentId: parentId, - EnableTotalRecordCount: !1 + EnableTotalRecordCount: false }; - return apiClient.getItems(apiClient.getCurrentUserId(), options).then(function(result) { - var images = result.Items.map(function(i) { + return apiClient.getItems(apiClient.getCurrentUserId(), options).then(function (result) { + var images = result.Items.map(function (i) { return { Id: i.Id, tag: i.BackdropImageTags[0], ServerId: i.ServerId - } + }; }); - return cache[key] = JSON.stringify(images), images - }) + cache[key] = JSON.stringify(images); + return images; + }); } function showBackdrop(type, parentId) { var apiClient = window.ApiClient; - apiClient && getBackdropItemIds(apiClient, apiClient.getCurrentUserId(), type, parentId).then(function(images) { - images.length ? backdrop.setBackdrops(images.map(function(i) { - return i.BackdropImageTags = [i.tag], i - })) : backdrop.clear() - }) + + if (apiClient) { + getBackdropItemIds(apiClient, apiClient.getCurrentUserId(), type, parentId).then(function (images) { + if (images.length) { + backdrop.setBackdrops(images.map(function (i) { + i.BackdropImageTags = [i.tag]; + return i; + })); + } else { + backdrop.clear(); + } + }); + } } + var cache = {}; - pageClassOn("pageshow", "page", function() { + pageClassOn("pageshow", "page", function () { var page = this; - if (!page.classList.contains("selfBackdropPage")) - if (page.classList.contains("backdropPage")) + + if (!page.classList.contains("selfBackdropPage")) { + if (page.classList.contains("backdropPage")) { if (enabled()) { - var type = page.getAttribute("data-backdroptype"), - parentId = page.classList.contains("globalBackdropPage") ? "" : libraryMenu.getTopParentId(); - showBackdrop(type, parentId) - } else page.classList.remove("backdropPage"), backdrop.clear(); - else backdrop.clear() - }) -}); \ No newline at end of file + var type = page.getAttribute("data-backdroptype"); + var parentId = page.classList.contains("globalBackdropPage") ? "" : libraryMenu.getTopParentId(); + showBackdrop(type, parentId); + } else { + page.classList.remove("backdropPage"); + backdrop.clear(); + } + } else { + backdrop.clear(); + } + } + }); +});