Merge pull request #2943 from thornbill/fix-play-all

Fix play all and shuffle buttons
This commit is contained in:
Bill Thornton 2021-09-17 14:03:18 -04:00 committed by GitHub
commit 2cf9f05c43
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 3 deletions

View file

@ -1797,7 +1797,8 @@ class PlaybackManager {
// Setting this to true may cause some incorrect sorting // Setting this to true may cause some incorrect sorting
Recursive: false, Recursive: false,
SortBy: options.shuffle ? 'Random' : 'SortName', SortBy: options.shuffle ? 'Random' : 'SortName',
MediaTypes: 'Photo,Video', // Only include Photos because we do not handle mixed queues currently
MediaTypes: 'Photo',
Limit: 1000 Limit: 1000
}); });
} else if (firstItem.Type === 'MusicGenre') { } else if (firstItem.Type === 'MusicGenre') {
@ -1808,6 +1809,16 @@ class PlaybackManager {
SortBy: options.shuffle ? 'Random' : 'SortName', SortBy: options.shuffle ? 'Random' : 'SortName',
MediaTypes: 'Audio' MediaTypes: 'Audio'
}); });
} else if (firstItem.IsFolder && firstItem.CollectionType === 'homevideos') {
promise = getItemsForPlayback(serverId, mergePlaybackQueries({
ParentId: firstItem.Id,
Filters: 'IsNotFolder',
Recursive: true,
SortBy: options.shuffle ? 'Random' : 'SortName',
// Only include Photos because we do not handle mixed queues currently
MediaTypes: 'Photo',
Limit: 1000
}, queryOptions));
} else if (firstItem.IsFolder) { } else if (firstItem.IsFolder) {
promise = getItemsForPlayback(serverId, mergePlaybackQueries({ promise = getItemsForPlayback(serverId, mergePlaybackQueries({
ParentId: firstItem.Id, ParentId: firstItem.Id,

View file

@ -791,21 +791,37 @@ class ItemsView {
const itemType = item ? item.Type : null; const itemType = item ? item.Type : null;
if (itemType === 'MusicGenre' || params.type !== 'Programs' && itemType !== 'Channel') { if ((itemType === 'MusicGenre' || params.type !== 'Programs' && itemType !== 'Channel')
// Folder, Playlist views
&& itemType !== 'UserView'
// Only Photo (homevideos) CollectionFolders are supported
&& !(itemType === 'CollectionFolder' && item?.CollectionType !== 'homevideos')
) {
// Show Play All buttons
hideOrShowAll(view.querySelectorAll('.btnPlay'), false); hideOrShowAll(view.querySelectorAll('.btnPlay'), false);
} else { } else {
// Hide Play All buttons
hideOrShowAll(view.querySelectorAll('.btnPlay'), true); hideOrShowAll(view.querySelectorAll('.btnPlay'), true);
} }
if (itemType === 'MusicGenre' || params.type !== 'Programs' && params.type !== 'nextup' && itemType !== 'Channel') { if ((itemType === 'MusicGenre' || params.type !== 'Programs' && params.type !== 'nextup' && itemType !== 'Channel')
// Folder, Playlist views
&& itemType !== 'UserView'
// Only Photo (homevideos) CollectionFolders are supported
&& !(itemType === 'CollectionFolder' && item?.CollectionType !== 'homevideos')
) {
// Show Shuffle buttons
hideOrShowAll(view.querySelectorAll('.btnShuffle'), false); hideOrShowAll(view.querySelectorAll('.btnShuffle'), false);
} else { } else {
// Hide Shuffle buttons
hideOrShowAll(view.querySelectorAll('.btnShuffle'), true); hideOrShowAll(view.querySelectorAll('.btnShuffle'), true);
} }
if (item && playbackManager.canQueue(item)) { if (item && playbackManager.canQueue(item)) {
// Show Queue button
hideOrShowAll(view.querySelectorAll('.btnQueue'), false); hideOrShowAll(view.querySelectorAll('.btnQueue'), false);
} else { } else {
// Hide Queue button
hideOrShowAll(view.querySelectorAll('.btnQueue'), true); hideOrShowAll(view.querySelectorAll('.btnQueue'), true);
} }
}); });