From 4573a1a2330c5dd1fd478dfa86593e50d2fdf007 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Thu, 9 Sep 2021 10:42:03 -0400 Subject: [PATCH 1/5] Fix play all for photo libraries --- src/components/playback/playbackmanager.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 3f22244c40..c79b138074 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -1823,6 +1823,15 @@ 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', + MediaTypes: 'Photo,Video', + Limit: 1000 + }, queryOptions)); } else if (firstItem.IsFolder) { promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ParentId: firstItem.Id, From b9d503f10f963d55f9c3d80d5f84334b01f52112 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Thu, 9 Sep 2021 11:43:51 -0400 Subject: [PATCH 2/5] Hide play all and shuffle buttons for unsupported types --- src/controllers/list.js | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/controllers/list.js b/src/controllers/list.js index b34848bf11..c8a49b2361 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') + ) { + // Hide Play All buttons hideOrShowAll(view.querySelectorAll('.btnPlay'), false); } else { + // Show 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') + ) { + // Hide Shuffle buttons hideOrShowAll(view.querySelectorAll('.btnShuffle'), false); } else { + // Show Shuffle buttons hideOrShowAll(view.querySelectorAll('.btnShuffle'), true); } if (item && playbackManager.canQueue(item)) { + // Hide Queue button hideOrShowAll(view.querySelectorAll('.btnQueue'), false); } else { + // Show Queue button hideOrShowAll(view.querySelectorAll('.btnQueue'), true); } }); From 8b8cd0f1f9746d9e3c5efe34d5244d53bb69fe3c Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Mon, 13 Sep 2021 10:23:46 -0400 Subject: [PATCH 3/5] Remove Video from play all query in photo libraries --- src/components/playback/playbackmanager.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index c79b138074..a3204516e8 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -1829,7 +1829,8 @@ class PlaybackManager { Filters: 'IsNotFolder', Recursive: true, SortBy: options.shuffle ? 'Random' : 'SortName', - MediaTypes: 'Photo,Video', + // Only include Photos because we do not handle mixed queues currently + MediaTypes: 'Photo', Limit: 1000 }, queryOptions)); } else if (firstItem.IsFolder) { From b51c59e583e03765a7f6a616207daca3c28cd71f Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Tue, 14 Sep 2021 10:35:46 -0400 Subject: [PATCH 4/5] Remove Video from play all query in photo albums --- src/components/playback/playbackmanager.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index a3204516e8..ce0ca8963a 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -1812,7 +1812,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') { From 9751f3fc20e5d96044539538a1a67efa415dc6a2 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Wed, 15 Sep 2021 14:34:58 -0400 Subject: [PATCH 5/5] Fix incorrect comments --- src/controllers/list.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/controllers/list.js b/src/controllers/list.js index c8a49b2361..ead994770d 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -797,10 +797,10 @@ class ItemsView { // Only Photo (homevideos) CollectionFolders are supported && !(itemType === 'CollectionFolder' && item?.CollectionType !== 'homevideos') ) { - // Hide Play All buttons + // Show Play All buttons hideOrShowAll(view.querySelectorAll('.btnPlay'), false); } else { - // Show Play All buttons + // Hide Play All buttons hideOrShowAll(view.querySelectorAll('.btnPlay'), true); } @@ -810,18 +810,18 @@ class ItemsView { // Only Photo (homevideos) CollectionFolders are supported && !(itemType === 'CollectionFolder' && item?.CollectionType !== 'homevideos') ) { - // Hide Shuffle buttons + // Show Shuffle buttons hideOrShowAll(view.querySelectorAll('.btnShuffle'), false); } else { - // Show Shuffle buttons + // Hide Shuffle buttons hideOrShowAll(view.querySelectorAll('.btnShuffle'), true); } if (item && playbackManager.canQueue(item)) { - // Hide Queue button + // Show Queue button hideOrShowAll(view.querySelectorAll('.btnQueue'), false); } else { - // Show Queue button + // Hide Queue button hideOrShowAll(view.querySelectorAll('.btnQueue'), true); } });