From 101cad0365871b5f4b7f0d745566c36cd9eff9a7 Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Thu, 22 Oct 2026 21:03:30 +0200 Subject: [PATCH] feat(quick-261022-k9k): Esc, slash and help shortcuts, settings, account and modal save keys - '?' help dialog (ShortcutHelpDialog) listing the current screen's shortcuts - Esc = Cancel on record forms; '/' focuses the list search - settings forms: Save and close (Ctrl/Cmd+Enter, then /settings) and Ctrl/Cmd+S - My account: Ctrl/Cmd+S - modal forms: Ctrl/Cmd+S and Ctrl/Cmd+Enter submit the innermost dialog only - docs: Keyboard shortcuts section in the admin SPA page --- .../account/ApiTokenCreateDialog.vue | 3 + .../form/fields/FileCaptionModal.vue | 4 ++ admin/src/components/list/ListToolbar.vue | 3 + .../relation/RelationChildModal.vue | 3 + .../relation/RelationPickerModal.vue | 4 ++ .../relation/RelationPivotModal.vue | 4 ++ admin/src/components/shell/AppShell.vue | 2 + .../components/shell/ShortcutHelpDialog.vue | 70 +++++++++++++++++++ admin/src/views/AccountView.vue | 12 +++- admin/src/views/FormView.vue | 2 +- admin/src/views/SettingsFormView.vue | 48 +++++++++++-- docs/backend/admin-spa.md | 17 +++++ 12 files changed, 163 insertions(+), 9 deletions(-) create mode 100644 admin/src/components/shell/ShortcutHelpDialog.vue diff --git a/admin/src/components/account/ApiTokenCreateDialog.vue b/admin/src/components/account/ApiTokenCreateDialog.vue index 0ce0f252..a4b13e22 100644 --- a/admin/src/components/account/ApiTokenCreateDialog.vue +++ b/admin/src/components/account/ApiTokenCreateDialog.vue @@ -13,6 +13,7 @@ import { import { Check, CircleAlert, Copy, Info, LoaderCircle, TriangleAlert, X } from '@lucide/vue' import { api } from '../../api/client' import type { AdminAPITokenScope } from '../../api/types' +import { shortcutHint } from '../../app/hotkeys' import { t } from '../../app/i18n' import { controlClass } from '../form/control' import { fieldErrors, focusField } from '../form/formState' @@ -553,6 +554,8 @@ onBeforeUnmount(() => { type="submit" class="flex-1" data-action="create-token-submit" + hotkey="mod+s mod+enter" + :title="shortcutHint(t('backend::lang.api_tokens.create_submit'), 'mod+s')" :disabled="!canSubmit" >