diff --git a/src/services/dav/base.ts b/src/services/dav/base.ts index 858d4d60..19a7d44c 100644 --- a/src/services/dav/base.ts +++ b/src/services/dav/base.ts @@ -218,8 +218,16 @@ export async function* deletePhotos(photos: IPhoto[], confirm: boolean = true) { } // Show confirmation dialog if required - if (confirm && !(await utils.dialogs.moveToTrash(photos.length))) { - throw new Error('User cancelled deletion'); + if (confirm) { + if (routeIsAlbums) { + if (!(await utils.dialogs.removeFromAlbum(photos.length))) { + throw new Error('User cancelled removal'); + } + } else { + if (!(await utils.dialogs.moveToTrash(photos.length))) { + throw new Error('User cancelled deletion'); + } + } } // Delete local files. diff --git a/src/services/utils/dialog.ts b/src/services/utils/dialog.ts index d4579a74..485f790d 100644 --- a/src/services/utils/dialog.ts +++ b/src/services/utils/dialog.ts @@ -92,6 +92,14 @@ export const dialogs = { message: t('memories', 'Files in trash may be automatically deleted after a fixed period of time.'), }), + removeFromAlbum: (count: number) => + confirmDestructive({ + title: n('memories', 'Remove {count} item from album?', 'Remove {count} items from album?', count, { + count, + }), + message: t('memories', 'This will not delete your original files.'), + }), + downloadItems: (count: number) => confirmDestructive({ title: t('memories', 'Download'),