feat(web): add shortcut "p" to open/close the face tag box (#26826)

This commit is contained in:
Andreas Heinz
2026-03-10 23:53:38 +01:00
committed by GitHub
parent 22b43bf4d9
commit 1a4c5d73ac
3 changed files with 17 additions and 2 deletions
@@ -396,7 +396,7 @@
ocrManager.hasOcrData, ocrManager.hasOcrData,
); );
const { Tag } = $derived(getAssetActions($t, asset)); const { Tag, TagPeople } = $derived(getAssetActions($t, asset));
const showDetailPanel = $derived( const showDetailPanel = $derived(
asset.hasMetadata && asset.hasMetadata &&
$slideshowState === SlideshowState.None && $slideshowState === SlideshowState.None &&
@@ -405,7 +405,7 @@
); );
</script> </script>
<CommandPaletteDefaultProvider name={$t('assets')} actions={[Tag]} /> <CommandPaletteDefaultProvider name={$t('assets')} actions={[Tag, TagPeople]} />
<svelte:document bind:fullscreenElement /> <svelte:document bind:fullscreenElement />
+1
View File
@@ -40,6 +40,7 @@
{ key: ['s'], action: $t('stack_selected_photos') }, { key: ['s'], action: $t('stack_selected_photos') },
{ key: ['l'], action: $t('add_to_album') }, { key: ['l'], action: $t('add_to_album') },
{ key: ['t'], action: $t('tag_assets') }, { key: ['t'], action: $t('tag_assets') },
{ key: ['p'], action: $t('tag_people') },
{ key: ['⇧', 'a'], action: $t('archive_or_unarchive_photo') }, { key: ['⇧', 'a'], action: $t('archive_or_unarchive_photo') },
{ key: ['⇧', 'd'], action: $t('download') }, { key: ['⇧', 'd'], action: $t('download') },
{ key: ['Space'], action: $t('play_or_pause_video') }, { key: ['Space'], action: $t('play_or_pause_video') },
+14
View File
@@ -5,6 +5,7 @@ import { eventManager } from '$lib/managers/event-manager.svelte';
import AssetAddToAlbumModal from '$lib/modals/AssetAddToAlbumModal.svelte'; import AssetAddToAlbumModal from '$lib/modals/AssetAddToAlbumModal.svelte';
import AssetTagModal from '$lib/modals/AssetTagModal.svelte'; import AssetTagModal from '$lib/modals/AssetTagModal.svelte';
import SharedLinkCreateModal from '$lib/modals/SharedLinkCreateModal.svelte'; import SharedLinkCreateModal from '$lib/modals/SharedLinkCreateModal.svelte';
import { isFaceEditMode } from '$lib/stores/face-edit.svelte';
import { user as authUser, preferences } from '$lib/stores/user.store'; import { user as authUser, preferences } from '$lib/stores/user.store';
import type { AssetControlContext } from '$lib/types'; import type { AssetControlContext } from '$lib/types';
import { getSharedLink, sleep } from '$lib/utils'; import { getSharedLink, sleep } from '$lib/utils';
@@ -31,6 +32,7 @@ import {
mdiDatabaseRefreshOutline, mdiDatabaseRefreshOutline,
mdiDownload, mdiDownload,
mdiDownloadBox, mdiDownloadBox,
mdiFaceRecognition,
mdiHeadSyncOutline, mdiHeadSyncOutline,
mdiHeart, mdiHeart,
mdiHeartOutline, mdiHeartOutline,
@@ -223,6 +225,17 @@ export const getAssetActions = ($t: MessageFormatter, asset: AssetResponseDto) =
shortcuts: { key: 't' }, shortcuts: { key: 't' },
}; };
const TagPeople: ActionItem = {
title: $t('tag_people'),
icon: mdiFaceRecognition,
type: $t('assets'),
$if: () => isOwner && asset.type === AssetTypeEnum.Image && !asset.isTrashed,
onAction: () => {
isFaceEditMode.value = !isFaceEditMode.value;
},
shortcuts: { key: 'p' },
};
const Edit: ActionItem = { const Edit: ActionItem = {
title: $t('editor'), title: $t('editor'),
icon: mdiTune, icon: mdiTune,
@@ -279,6 +292,7 @@ export const getAssetActions = ($t: MessageFormatter, asset: AssetResponseDto) =
ZoomOut, ZoomOut,
Copy, Copy,
Tag, Tag,
TagPeople,
Edit, Edit,
RefreshFacesJob, RefreshFacesJob,
RefreshMetadataJob, RefreshMetadataJob,