From fb206e81987b1360bb97c314f68cf9cb58a47f87 Mon Sep 17 00:00:00 2001 From: Tiberiu Ichim Date: Fri, 6 Feb 2026 14:51:54 +0200 Subject: [PATCH] Multi move --- client/components/app/Appbar.vue | 14 + .../modals/item/MoveToLibraryModal.vue | 52 ++- client/strings/en-us.json | 3 + server/controllers/LibraryItemController.js | 295 ++++++++++++------ server/routers/ApiRouter.js | 1 + 5 files changed, 256 insertions(+), 109 deletions(-) diff --git a/client/components/app/Appbar.vue b/client/components/app/Appbar.vue index f74134041..d33bb65f1 100644 --- a/client/components/app/Appbar.vue +++ b/client/components/app/Appbar.vue @@ -189,6 +189,14 @@ export default { }) } + // Move to library option - only show if user has delete permission (same as delete) + if (this.userCanDelete) { + options.push({ + text: this.$strings.LabelMoveToLibrary, + action: 'move-to-library' + }) + } + return options } }, @@ -226,8 +234,14 @@ export default { this.batchRescan() } else if (action === 'download') { this.batchDownload() + } else if (action === 'move-to-library') { + this.batchMoveToLibrary() } }, + batchMoveToLibrary() { + // Open the move to library modal - it will pick up items from selectedMediaItems + this.$store.commit('globals/setShowMoveToLibraryModal', true) + }, async batchRescan() { const payload = { message: this.$getString('MessageConfirmReScanLibraryItems', [this.selectedMediaItems.length]), diff --git a/client/components/modals/item/MoveToLibraryModal.vue b/client/components/modals/item/MoveToLibraryModal.vue index ddac463ab..26ff5f222 100644 --- a/client/components/modals/item/MoveToLibraryModal.vue +++ b/client/components/modals/item/MoveToLibraryModal.vue @@ -6,10 +6,11 @@
-