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

playlists.js

This commit is contained in:
grafixeyehero 2019-10-08 01:03:08 +03:00
parent f5e62cbd65
commit 850c2c4baf

View file

@ -1,124 +1,176 @@
define(["loading", "listView", "cardBuilder", "libraryMenu", "libraryBrowser", "apphost", "imageLoader", "emby-itemscontainer"], function(loading, listView, cardBuilder, libraryMenu, libraryBrowser, appHost, imageLoader) { define(["loading", "listView", "cardBuilder", "libraryMenu", "libraryBrowser", "apphost", "imageLoader", "emby-itemscontainer"], function (loading, listView, cardBuilder, libraryMenu, libraryBrowser, appHost, imageLoader) {
"use strict"; "use strict";
return function(view, params) {
return function (view, params) {
function getPageData(context) { function getPageData(context) {
var key = getSavedQueryKey(context), var key = getSavedQueryKey(context);
pageData = data[key]; var pageData = data[key];
return pageData || (pageData = data[key] = {
if (!pageData) {
pageData = data[key] = {
query: { query: {
SortBy: "SortName", SortBy: "SortName",
SortOrder: "Ascending", SortOrder: "Ascending",
IncludeItemTypes: "Playlist", IncludeItemTypes: "Playlist",
Recursive: !0, Recursive: true,
Fields: "PrimaryImageAspectRatio,SortName,CumulativeRunTimeTicks,CanDelete", Fields: "PrimaryImageAspectRatio,SortName,CumulativeRunTimeTicks,CanDelete",
StartIndex: 0, StartIndex: 0,
Limit: 100 Limit: 100
}, },
view: libraryBrowser.getSavedView(key) || "Poster" view: libraryBrowser.getSavedView(key) || "Poster"
}, pageData.query.ParentId = libraryMenu.getTopParentId(), libraryBrowser.loadSavedQueryValues(key, pageData.query)), pageData };
pageData.query.ParentId = libraryMenu.getTopParentId();
libraryBrowser.loadSavedQueryValues(key, pageData.query);
}
return pageData;
} }
function getQuery(context) { function getQuery(context) {
return getPageData(context).query return getPageData(context).query;
} }
function getSavedQueryKey(context) { function getSavedQueryKey(context) {
return context.savedQueryKey || (context.savedQueryKey = libraryBrowser.getSavedQueryKey()), context.savedQueryKey if (!context.savedQueryKey) {
context.savedQueryKey = libraryBrowser.getSavedQueryKey();
}
return context.savedQueryKey;
} }
function showLoadingMessage() { function showLoadingMessage() {
loading.show() loading.show();
} }
function hideLoadingMessage() { function hideLoadingMessage() {
loading.hide() loading.hide();
} }
function onViewStyleChange() { function onViewStyleChange() {
var viewStyle = getPageData(view).view, var viewStyle = getPageData(view).view;
itemsContainer = view.querySelector(".itemsContainer"); var itemsContainer = view.querySelector(".itemsContainer");
"List" == viewStyle ? (itemsContainer.classList.add("vertical-list"), itemsContainer.classList.remove("vertical-wrap")) : (itemsContainer.classList.remove("vertical-list"), itemsContainer.classList.add("vertical-wrap")), itemsContainer.innerHTML = ""
if ("List" == viewStyle) {
itemsContainer.classList.add("vertical-list");
itemsContainer.classList.remove("vertical-wrap");
} else {
itemsContainer.classList.remove("vertical-list");
itemsContainer.classList.add("vertical-wrap");
}
itemsContainer.innerHTML = "";
} }
function reloadItems() { function reloadItems() {
showLoadingMessage(); showLoadingMessage();
var query = getQuery(view), var query = getQuery(view);
promise1 = ApiClient.getItems(Dashboard.getCurrentUserId(), query), var promise1 = ApiClient.getItems(Dashboard.getCurrentUserId(), query);
promise2 = Dashboard.getCurrentUser(); var promise2 = Dashboard.getCurrentUser();
Promise.all([promise1, promise2]).then(function(responses) { Promise.all([promise1, promise2]).then(function (responses) {
var result = responses[0]; var result = responses[0];
responses[1]; responses[1];
window.scrollTo(0, 0); window.scrollTo(0, 0);
var html = "", var html = "";
viewStyle = getPageData(view).view; var viewStyle = getPageData(view).view;
view.querySelector(".listTopPaging").innerHTML = libraryBrowser.getQueryPagingHtml({ view.querySelector(".listTopPaging").innerHTML = libraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex, startIndex: query.StartIndex,
limit: query.Limit, limit: query.Limit,
totalRecordCount: result.TotalRecordCount, totalRecordCount: result.TotalRecordCount,
viewButton: !1, viewButton: false,
showLimit: !1, showLimit: false,
updatePageSizeSetting: !1, updatePageSizeSetting: false,
addLayoutButton: !0, addLayoutButton: true,
layouts: "List,Poster,PosterCard,Thumb,ThumbCard", layouts: "List,Poster,PosterCard,Thumb,ThumbCard",
currentLayout: viewStyle currentLayout: viewStyle
}), result.TotalRecordCount ? (html = "List" == viewStyle ? listView.getListViewHtml({ });
if (result.TotalRecordCount) {
html = "List" == viewStyle ? listView.getListViewHtml({
items: result.Items, items: result.Items,
sortBy: query.SortBy sortBy: query.SortBy
}) : "PosterCard" == viewStyle ? cardBuilder.getCardsHtml({ }) : "PosterCard" == viewStyle ? cardBuilder.getCardsHtml({
items: result.Items, items: result.Items,
shape: "square", shape: "square",
coverImage: !0, coverImage: true,
showTitle: !0, showTitle: true,
cardLayout: !0 cardLayout: true
}) : "Thumb" == viewStyle ? cardBuilder.getCardsHtml({ }) : "Thumb" == viewStyle ? cardBuilder.getCardsHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
showTitle: !0, showTitle: true,
centerText: !0, centerText: true,
preferThumb: !0, preferThumb: true,
overlayPlayButton: !0 overlayPlayButton: true
}) : "ThumbCard" == viewStyle ? cardBuilder.getCardsHtml({ }) : "ThumbCard" == viewStyle ? cardBuilder.getCardsHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
showTitle: !0, showTitle: true,
preferThumb: !0, preferThumb: true,
cardLayout: !0 cardLayout: true
}) : cardBuilder.getCardsHtml({ }) : cardBuilder.getCardsHtml({
items: result.Items, items: result.Items,
shape: "square", shape: "square",
showTitle: !0, showTitle: true,
coverImage: !0, coverImage: true,
centerText: !0, centerText: true,
overlayPlayButton: !0 overlayPlayButton: true
}), view.querySelector(".noItemsMessage").classList.add("hide")) : view.querySelector(".noItemsMessage").classList.remove("hide");
var elem = view.querySelector(".itemsContainer");
elem.innerHTML = html, imageLoader.lazyChildren(elem);
var btnNextPage = view.querySelector(".btnNextPage");
btnNextPage && btnNextPage.addEventListener("click", function() {
query.StartIndex += query.Limit, reloadItems()
}); });
var btnPreviousPage = view.querySelector(".btnPreviousPage"); view.querySelector(".noItemsMessage").classList.add("hide");
btnPreviousPage && btnPreviousPage.addEventListener("click", function() { } else {
query.StartIndex -= query.Limit, reloadItems() view.querySelector(".noItemsMessage").classList.remove("hide");
});
var btnChangeLayout = view.querySelector(".btnChangeLayout");
btnChangeLayout && btnChangeLayout.addEventListener("layoutchange", function(e) {
var layout = e.detail.viewStyle;
getPageData(view).view = layout, libraryBrowser.saveViewSetting(getSavedQueryKey(view), layout), onViewStyleChange(), reloadItems()
}), libraryBrowser.saveQueryValues(getSavedQueryKey(view), query), hideLoadingMessage()
})
} }
var elem = view.querySelector(".itemsContainer");
elem.innerHTML = html;
imageLoader.lazyChildren(elem);
var btnNextPage = view.querySelector(".btnNextPage");
if (btnNextPage) {
btnNextPage.addEventListener("click", function () {
query.StartIndex += query.Limit;
reloadItems();
});
}
var btnPreviousPage = view.querySelector(".btnPreviousPage");
if (btnPreviousPage) {
btnPreviousPage.addEventListener("click", function () {
query.StartIndex -= query.Limit;
reloadItems();
});
}
var btnChangeLayout = view.querySelector(".btnChangeLayout");
if (btnChangeLayout) {
btnChangeLayout.addEventListener("layoutchange", function (e) {
var layout = e.detail.viewStyle;
getPageData(view).view = layout;
libraryBrowser.saveViewSetting(getSavedQueryKey(view), layout);
onViewStyleChange();
reloadItems();
});
}
libraryBrowser.saveQueryValues(getSavedQueryKey(view), query);
hideLoadingMessage();
});
}
var data = {}; var data = {};
view.addEventListener("viewbeforeshow", function() { view.addEventListener("viewbeforeshow", function () {
reloadItems() reloadItems();
}), view.querySelector(".btnNewPlaylist").addEventListener("click", function() { });
require(["playlistEditor"], function(playlistEditor) { view.querySelector(".btnNewPlaylist").addEventListener("click", function () {
require(["playlistEditor"], function (playlistEditor) {
var serverId = ApiClient.serverInfo().Id; var serverId = ApiClient.serverInfo().Id;
(new playlistEditor).show({ new playlistEditor().show({
items: [], items: [],
serverId: serverId serverId: serverId
}) });
}) });
}), onViewStyleChange() });
} onViewStyleChange();
};
}); });