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

53 lines
1.5 KiB
JavaScript
Raw Normal View History

2020-08-14 08:46:34 +02:00
import listView from '../components/listview/listview';
2018-10-23 01:05:09 +03:00
2020-08-14 08:46:34 +02:00
function getFetchPlaylistItemsFn(itemId) {
return function () {
const query = {
Fields: 'PrimaryImageAspectRatio',
2020-08-14 08:46:34 +02:00
EnableImageTypes: 'Primary,Backdrop,Banner,Thumb',
UserId: ApiClient.getCurrentUserId()
2019-10-08 01:02:37 +03:00
};
2020-08-14 08:46:34 +02:00
return ApiClient.getJSON(ApiClient.getUrl(`Playlists/${itemId}/Items`, query));
};
}
2018-10-23 01:05:09 +03:00
2020-08-14 08:46:34 +02:00
function getItemsHtmlFn(itemId) {
return function (items) {
return listView.getListViewHtml({
items: items,
showIndex: false,
showRemoveFromPlaylist: true,
playFromHere: true,
action: 'playallfromhere',
smallIcon: true,
dragHandle: true,
playlistId: itemId
});
};
}
2019-10-08 01:02:37 +03:00
2020-08-14 08:46:34 +02:00
function init(page, item) {
const elem = page.querySelector('#childrenContent .itemsContainer');
elem.classList.add('vertical-list');
elem.classList.remove('vertical-wrap');
elem.enableDragReordering(true);
elem.fetchData = getFetchPlaylistItemsFn(item.Id);
elem.getItemsHtml = getItemsHtmlFn(item.Id);
}
2019-10-08 01:02:37 +03:00
function render(page, item) {
if (!page.playlistInit) {
page.playlistInit = true;
init(page, item);
2020-08-14 08:46:34 +02:00
}
page.querySelector('#childrenContent').classList.add('verticalSection-extrabottompadding');
page.querySelector('#childrenContent .itemsContainer').refreshItems();
}
const PlaylistViewer = {
2022-05-09 19:03:55 +03:00
render
2020-08-14 08:46:34 +02:00
};
export default PlaylistViewer;