From 94231dbb0fffd7b0d88ca8f01ab28db6f718b72b Mon Sep 17 00:00:00 2001 From: Jan Kleine Date: Wed, 28 Jan 2026 16:53:14 +0100 Subject: [PATCH] Enhancement: Add setting for default PDF Editor mode (#11927) --------- Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com> --- .../admin/settings/settings.component.html | 14 ++++++++++++++ .../admin/settings/settings.component.spec.ts | 2 +- .../admin/settings/settings.component.ts | 11 +++++++++++ .../common/pdf-editor/pdf-editor.component.ts | 7 ++++++- src-ui/src/app/data/ui-settings.ts | 7 +++++++ 5 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src-ui/src/app/components/admin/settings/settings.component.html b/src-ui/src/app/components/admin/settings/settings.component.html index 807368aa6..caec63e30 100644 --- a/src-ui/src/app/components/admin/settings/settings.component.html +++ b/src-ui/src/app/components/admin/settings/settings.component.html @@ -259,6 +259,7 @@ +
Bulk editing
@@ -268,6 +269,19 @@
+
PDF Editor
+
+
+ Default editing mode +
+
+ +
+
+
Notes
diff --git a/src-ui/src/app/components/admin/settings/settings.component.spec.ts b/src-ui/src/app/components/admin/settings/settings.component.spec.ts index 62a5aa363..bda1a30c9 100644 --- a/src-ui/src/app/components/admin/settings/settings.component.spec.ts +++ b/src-ui/src/app/components/admin/settings/settings.component.spec.ts @@ -251,7 +251,7 @@ describe('SettingsComponent', () => { expect(toastErrorSpy).toHaveBeenCalled() expect(storeSpy).toHaveBeenCalled() expect(appearanceSettingsSpy).not.toHaveBeenCalled() - expect(setSpy).toHaveBeenCalledTimes(31) + expect(setSpy).toHaveBeenCalledTimes(32) // succeed storeSpy.mockReturnValueOnce(of(true)) diff --git a/src-ui/src/app/components/admin/settings/settings.component.ts b/src-ui/src/app/components/admin/settings/settings.component.ts index 990944ff6..bda28f7a2 100644 --- a/src-ui/src/app/components/admin/settings/settings.component.ts +++ b/src-ui/src/app/components/admin/settings/settings.component.ts @@ -64,6 +64,7 @@ import { PermissionsGroupComponent } from '../../common/input/permissions/permis import { PermissionsUserComponent } from '../../common/input/permissions/permissions-user/permissions-user.component' import { SelectComponent } from '../../common/input/select/select.component' import { PageHeaderComponent } from '../../common/page-header/page-header.component' +import { PdfEditorEditMode } from '../../common/pdf-editor/pdf-editor.component' import { SystemStatusDialogComponent } from '../../common/system-status-dialog/system-status-dialog.component' import { ZoomSetting } from '../../document-detail/document-detail.component' import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component' @@ -163,6 +164,7 @@ export class SettingsComponent defaultPermsEditGroups: new FormControl(null), useNativePdfViewer: new FormControl(null), pdfViewerDefaultZoom: new FormControl(null), + pdfEditorDefaultEditMode: new FormControl(null), documentEditingRemoveInboxTags: new FormControl(null), documentEditingOverlayThumbnail: new FormControl(null), documentDetailsHiddenFields: new FormControl([]), @@ -196,6 +198,8 @@ export class SettingsComponent public readonly ZoomSetting = ZoomSetting + public readonly PdfEditorEditMode = PdfEditorEditMode + public readonly documentDetailFieldOptions = documentDetailFieldOptions get systemStatusHasErrors(): boolean { @@ -314,6 +318,9 @@ export class SettingsComponent pdfViewerDefaultZoom: this.settings.get( SETTINGS_KEYS.PDF_VIEWER_ZOOM_SETTING ), + pdfEditorDefaultEditMode: this.settings.get( + SETTINGS_KEYS.PDF_EDITOR_DEFAULT_EDIT_MODE + ), displayLanguage: this.settings.getLanguage(), dateLocale: this.settings.get(SETTINGS_KEYS.DATE_LOCALE), dateFormat: this.settings.get(SETTINGS_KEYS.DATE_FORMAT), @@ -483,6 +490,10 @@ export class SettingsComponent SETTINGS_KEYS.PDF_VIEWER_ZOOM_SETTING, this.settingsForm.value.pdfViewerDefaultZoom ) + this.settings.set( + SETTINGS_KEYS.PDF_EDITOR_DEFAULT_EDIT_MODE, + this.settingsForm.value.pdfEditorDefaultEditMode + ) this.settings.set( SETTINGS_KEYS.DATE_LOCALE, this.settingsForm.value.dateLocale diff --git a/src-ui/src/app/components/common/pdf-editor/pdf-editor.component.ts b/src-ui/src/app/components/common/pdf-editor/pdf-editor.component.ts index 25eaf42f1..78c6812cc 100644 --- a/src-ui/src/app/components/common/pdf-editor/pdf-editor.component.ts +++ b/src-ui/src/app/components/common/pdf-editor/pdf-editor.component.ts @@ -8,7 +8,9 @@ import { FormsModule } from '@angular/forms' import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap' import { PDFDocumentProxy, PdfViewerModule } from 'ng2-pdf-viewer' import { NgxBootstrapIconsModule } from 'ngx-bootstrap-icons' +import { SETTINGS_KEYS } from 'src/app/data/ui-settings' import { DocumentService } from 'src/app/services/rest/document.service' +import { SettingsService } from 'src/app/services/settings.service' import { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component' interface PageOperation { @@ -39,12 +41,15 @@ export class PDFEditorComponent extends ConfirmDialogComponent { public PdfEditorEditMode = PdfEditorEditMode private documentService = inject(DocumentService) + private readonly settingsService = inject(SettingsService) activeModal: NgbActiveModal = inject(NgbActiveModal) documentID: number pages: PageOperation[] = [] totalPages = 0 - editMode: PdfEditorEditMode = PdfEditorEditMode.Create + editMode: PdfEditorEditMode = this.settingsService.get( + SETTINGS_KEYS.PDF_EDITOR_DEFAULT_EDIT_MODE + ) deleteOriginal: boolean = false includeMetadata: boolean = true diff --git a/src-ui/src/app/data/ui-settings.ts b/src-ui/src/app/data/ui-settings.ts index 827a1b82d..b98f03d73 100644 --- a/src-ui/src/app/data/ui-settings.ts +++ b/src-ui/src/app/data/ui-settings.ts @@ -74,6 +74,8 @@ export const SETTINGS_KEYS = { 'general-settings:document-details:hidden-fields', SEARCH_DB_ONLY: 'general-settings:search:db-only', SEARCH_FULL_TYPE: 'general-settings:search:more-link', + PDF_EDITOR_DEFAULT_EDIT_MODE: + 'general-settings:document-editing:default-edit-mode', EMPTY_TRASH_DELAY: 'trash_delay', GMAIL_OAUTH_URL: 'gmail_oauth_url', OUTLOOK_OAUTH_URL: 'outlook_oauth_url', @@ -302,4 +304,9 @@ export const SETTINGS: UiSetting[] = [ type: 'boolean', default: false, }, + { + key: SETTINGS_KEYS.PDF_EDITOR_DEFAULT_EDIT_MODE, + type: 'string', + default: 'create', // PdfEditorEditMode.Create from 'pdf-editor.component' + }, ]