From 1eb1c51e17b9ec558bd6c3090761bebf3801d517 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 16 Dec 2025 10:47:34 -0300 Subject: [PATCH 1/2] feat: persist signer identify method tab preference Save user's selected tab (Account/Email) in the 'Add new signer' modal to userconfig store. The preference is now persisted across modal closures and page reloads, improving user experience by remembering the last selected identification method. Changes: - Add activeTab state to RequestSignatureTab component - Load saved tab preference from userconfig store on mount - Save tab changes to backend with debounce (500ms) - Add signer_identify_tab to AccountService config output - Use snake_case naming convention for consistency with backend Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- lib/Service/AccountService.php | 1 + .../RightSidebar/RequestSignatureTab.vue | 23 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/Service/AccountService.php b/lib/Service/AccountService.php index 6d8ed5903d..2b24a1fad6 100644 --- a/lib/Service/AccountService.php +++ b/lib/Service/AccountService.php @@ -199,6 +199,7 @@ public function getConfig(?IUser $user = null): array { $info['crl_filters'] = $this->getUserConfigCrlFilters($user); $info['crl_sort'] = $this->getUserConfigCrlSort($user); $info['grid_view'] = $this->getUserConfigByKey('grid_view', $user) === '1'; + $info['signer_identify_tab'] = $this->getUserConfigByKey('signer_identify_tab', $user); return array_filter($info); } diff --git a/src/Components/RightSidebar/RequestSignatureTab.vue b/src/Components/RightSidebar/RequestSignatureTab.vue index e8ea7a1a83..91e33cc6c0 100644 --- a/src/Components/RightSidebar/RequestSignatureTab.vue +++ b/src/Components/RightSidebar/RequestSignatureTab.vue @@ -122,7 +122,9 @@ :size="size" :name="modalTitle" @closing="filesStore.disableIdentifySigner()"> - + { + this.userConfigStore.update('signer_identify_tab', tabId) + }, 500) }, methods: { getSvgIcon(name) { @@ -486,6 +497,14 @@ export default { this.signerToEdit = signer this.filesStore.enableIdentifySigner() }, + onTabChange(tabId) { + // Only update if the tab actually changed + if (this.activeTab !== tabId) { + this.activeTab = tabId + // Save tab preference to userconfig store with debounce + this.debouncedTabChange(tabId) + } + }, updateSigningOrder(signer, value) { const order = parseInt(value, 10) const file = this.filesStore.getFile() From 1a8de8e583994867f44b81c48304f52089c9eeed Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 16 Dec 2025 10:48:59 -0300 Subject: [PATCH 2/2] chore: remove comment Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Components/RightSidebar/RequestSignatureTab.vue | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Components/RightSidebar/RequestSignatureTab.vue b/src/Components/RightSidebar/RequestSignatureTab.vue index 91e33cc6c0..cbeda196d9 100644 --- a/src/Components/RightSidebar/RequestSignatureTab.vue +++ b/src/Components/RightSidebar/RequestSignatureTab.vue @@ -498,10 +498,8 @@ export default { this.filesStore.enableIdentifySigner() }, onTabChange(tabId) { - // Only update if the tab actually changed if (this.activeTab !== tabId) { this.activeTab = tabId - // Save tab preference to userconfig store with debounce this.debouncedTabChange(tabId) } },