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] = {
query: { if (!pageData) {
SortBy: "SortName", pageData = data[key] = {
SortOrder: "Ascending", query: {
IncludeItemTypes: "Playlist", SortBy: "SortName",
Recursive: !0, SortOrder: "Ascending",
Fields: "PrimaryImageAspectRatio,SortName,CumulativeRunTimeTicks,CanDelete", IncludeItemTypes: "Playlist",
StartIndex: 0, Recursive: true,
Limit: 100 Fields: "PrimaryImageAspectRatio,SortName,CumulativeRunTimeTicks,CanDelete",
}, StartIndex: 0,
view: libraryBrowser.getSavedView(key) || "Poster" Limit: 100
}, pageData.query.ParentId = libraryMenu.getTopParentId(), libraryBrowser.loadSavedQueryValues(key, pageData.query)), pageData },
view: libraryBrowser.getSavedView(key) || "Poster"
};
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({ });
items: result.Items,
sortBy: query.SortBy if (result.TotalRecordCount) {
}) : "PosterCard" == viewStyle ? cardBuilder.getCardsHtml({ html = "List" == viewStyle ? listView.getListViewHtml({
items: result.Items, items: result.Items,
shape: "square", sortBy: query.SortBy
coverImage: !0, }) : "PosterCard" == viewStyle ? cardBuilder.getCardsHtml({
showTitle: !0, items: result.Items,
cardLayout: !0 shape: "square",
}) : "Thumb" == viewStyle ? cardBuilder.getCardsHtml({ coverImage: true,
items: result.Items, showTitle: true,
shape: "backdrop", cardLayout: true
showTitle: !0, }) : "Thumb" == viewStyle ? cardBuilder.getCardsHtml({
centerText: !0, items: result.Items,
preferThumb: !0, shape: "backdrop",
overlayPlayButton: !0 showTitle: true,
}) : "ThumbCard" == viewStyle ? cardBuilder.getCardsHtml({ centerText: true,
items: result.Items, preferThumb: true,
shape: "backdrop", overlayPlayButton: true
showTitle: !0, }) : "ThumbCard" == viewStyle ? cardBuilder.getCardsHtml({
preferThumb: !0, items: result.Items,
cardLayout: !0 shape: "backdrop",
}) : cardBuilder.getCardsHtml({ showTitle: true,
items: result.Items, preferThumb: true,
shape: "square", cardLayout: true
showTitle: !0, }) : cardBuilder.getCardsHtml({
coverImage: !0, items: result.Items,
centerText: !0, shape: "square",
overlayPlayButton: !0 showTitle: true,
}), view.querySelector(".noItemsMessage").classList.add("hide")) : view.querySelector(".noItemsMessage").classList.remove("hide"); coverImage: true,
centerText: true,
overlayPlayButton: true
});
view.querySelector(".noItemsMessage").classList.add("hide");
} else {
view.querySelector(".noItemsMessage").classList.remove("hide");
}
var elem = view.querySelector(".itemsContainer"); var elem = view.querySelector(".itemsContainer");
elem.innerHTML = html, imageLoader.lazyChildren(elem); elem.innerHTML = html;
imageLoader.lazyChildren(elem);
var btnNextPage = view.querySelector(".btnNextPage"); var btnNextPage = view.querySelector(".btnNextPage");
btnNextPage && btnNextPage.addEventListener("click", function() {
query.StartIndex += query.Limit, reloadItems() if (btnNextPage) {
}); btnNextPage.addEventListener("click", function () {
query.StartIndex += query.Limit;
reloadItems();
});
}
var btnPreviousPage = view.querySelector(".btnPreviousPage"); var btnPreviousPage = view.querySelector(".btnPreviousPage");
btnPreviousPage && btnPreviousPage.addEventListener("click", function() {
query.StartIndex -= query.Limit, reloadItems() if (btnPreviousPage) {
}); btnPreviousPage.addEventListener("click", function () {
query.StartIndex -= query.Limit;
reloadItems();
});
}
var btnChangeLayout = view.querySelector(".btnChangeLayout"); var btnChangeLayout = view.querySelector(".btnChangeLayout");
btnChangeLayout && btnChangeLayout.addEventListener("layoutchange", function(e) {
var layout = e.detail.viewStyle; if (btnChangeLayout) {
getPageData(view).view = layout, libraryBrowser.saveViewSetting(getSavedQueryKey(view), layout), onViewStyleChange(), reloadItems() btnChangeLayout.addEventListener("layoutchange", function (e) {
}), libraryBrowser.saveQueryValues(getSavedQueryKey(view), query), hideLoadingMessage() 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();
}); };
});