diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 2b683130df..df84b072ae 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -1797,7 +1797,8 @@ class PlaybackManager { // Setting this to true may cause some incorrect sorting Recursive: false, SortBy: options.shuffle ? 'Random' : 'SortName', - MediaTypes: 'Photo,Video', + // Only include Photos because we do not handle mixed queues currently + MediaTypes: 'Photo', Limit: 1000 }); } else if (firstItem.Type === 'MusicGenre') { @@ -1808,6 +1809,16 @@ class PlaybackManager { SortBy: options.shuffle ? 'Random' : 'SortName', 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) { promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ParentId: firstItem.Id, diff --git a/src/controllers/list.js b/src/controllers/list.js index 1667c50a20..6d1499366a 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -791,21 +791,37 @@ class ItemsView { 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); } else { + // Hide Play All buttons 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); } else { + // Hide Shuffle buttons hideOrShowAll(view.querySelectorAll('.btnShuffle'), true); } if (item && playbackManager.canQueue(item)) { + // Show Queue button hideOrShowAll(view.querySelectorAll('.btnQueue'), false); } else { + // Hide Queue button hideOrShowAll(view.querySelectorAll('.btnQueue'), true); } });