From 36c3ca503d2faea4ac2db3e5d2b0df0d8ff712f1 Mon Sep 17 00:00:00 2001 From: Matt Dawkins Date: Fri, 11 Sep 2026 00:24:22 -0400 Subject: [PATCH] Limit desktop library select-all to the current page --- .../desktop/frontend/components/Recent.vue | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/client/platform/desktop/frontend/components/Recent.vue b/client/platform/desktop/frontend/components/Recent.vue index 27630ab0b..310f24980 100644 --- a/client/platform/desktop/frontend/components/Recent.vue +++ b/client/platform/desktop/frontend/components/Recent.vue @@ -236,17 +236,21 @@ export default defineComponent({ const filteredRecents = computed(() => recents.value .filter((v) => v.name.toLowerCase().indexOf((searchText.value || '').toLowerCase()) >= 0)); - const allSelected = computed(() => filteredRecents.value.length > 0 - && filteredRecents.value.every((item) => selectedIds.value.has(item.id))); - const someSelected = computed(() => filteredRecents.value.some( + const visibleRecents = ref([] as JsonConfigCache[]); + const allSelected = computed(() => visibleRecents.value.length > 0 + && visibleRecents.value.every((item) => selectedIds.value.has(item.id))); + const someSelected = computed(() => visibleRecents.value.some( (item) => selectedIds.value.has(item.id), )); function toggleSelectAll() { if (allSelected.value) { - selectedRecents.value = []; + const visibleIds = new Set(visibleRecents.value.map((item) => item.id)); + selectedRecents.value = selectedRecents.value.filter((item) => !visibleIds.has(item.id)); } else { - selectedRecents.value = filteredRecents.value.slice(); + selectedRecents.value = selectedRecents.value.concat( + visibleRecents.value.filter((item) => !selectedIds.value.has(item.id)), + ); } } @@ -370,6 +374,7 @@ export default defineComponent({ multiCamOpenType, stereo, filteredRecents, + visibleRecents, selectedRecents, allSelected, someSelected, @@ -387,7 +392,7 @@ export default defineComponent({ knownVersion, checkingMedia, clientSettings, - itemsPerPageOptions, + itemsPerPageOptions: [...itemsPerPageOptions, 1000, -1], queuedConversionDatasetIds, }; }, @@ -704,6 +709,7 @@ export default defineComponent({ :footer-props="{ itemsPerPageOptions }" :items-per-page.sync="clientSettings.rowsPerPage" no-data-text="No data loaded" + @current-items="visibleRecents = $event" >