From 8679e372222e8106e38d6a9f0013c74eb42dc747 Mon Sep 17 00:00:00 2001 From: Marius Luca Date: Wed, 5 Jan 2022 12:37:46 +0200 Subject: [PATCH] - add "Select All" action to multiSelect --- src/components/multiSelect/multiSelect.js | 19 +++++++++++++++++++ src/strings/en-us.json | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/components/multiSelect/multiSelect.js b/src/components/multiSelect/multiSelect.js index 6c3a018093..e199fa7968 100644 --- a/src/components/multiSelect/multiSelect.js +++ b/src/components/multiSelect/multiSelect.js @@ -175,6 +175,12 @@ import itemHelper from '../itemHelper'; apiClient.getItem(apiClient.getCurrentUserId(), selectedItems[0]).then(firstItem => { const menuItems = []; + menuItems.push({ + name: globalize.translate('SelectAll'), + id: 'selectall', + icon: 'select_all' + }); + menuItems.push({ name: globalize.translate('AddToCollection'), id: 'addtocollection', @@ -246,6 +252,19 @@ import itemHelper from '../itemHelper'; const serverId = apiClient.serverInfo().Id; switch (id) { + case 'selectall': + { + const elems = document.querySelectorAll('.itemSelectionPanel'); + for (let i = 0, length = elems.length; i < length; i++) { + const chkItemSelect = elems[i].querySelector('.chkItemSelect'); + + if (chkItemSelect && !chkItemSelect.classList.contains('checkedInitial') && !chkItemSelect.checked && chkItemSelect.getBoundingClientRect().width != 0) { + chkItemSelect.checked = true; + updateItemSelection(chkItemSelect, true); + } + } + } + break; case 'addtocollection': import('../collectionEditor/collectionEditor').then(({default: collectionEditor}) => { new collectionEditor({ diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 91ff55ad82..c6e2a79acd 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -1606,5 +1606,6 @@ "VideoBitrateNotSupported": "The video's bitrate is not supported", "UnknownVideoStreamInfo": "The video stream info is unknown", "UnknownAudioStreamInfo": "The audio stream info is unknown", - "DirectPlayError": "There was an error starting direct playback" + "DirectPlayError": "There was an error starting direct playback", + "SelectAll": "Select All" }