From 29f8cda104c26c39f5573a5e2b643ec1a5bfdc24 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 15 Feb 2023 09:39:31 -0800 Subject: [PATCH] Allow disable saved view with unsaved changes warning --- src-ui/messages.xlf | 129 ++++++++++-------- .../manage/settings/settings.component.html | 8 ++ .../manage/settings/settings.component.ts | 8 ++ src-ui/src/app/data/paperless-uisettings.ts | 7 + .../src/app/guards/dirty-saved-view.guard.ts | 12 +- 5 files changed, 105 insertions(+), 59 deletions(-) diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index 5f687a0bd..d154e45aa 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -445,6 +445,10 @@ src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Logout @@ -711,7 +715,7 @@ src/app/components/manage/settings/settings.component.ts - 492 + 498 @@ -879,15 +883,15 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 256 src/app/components/manage/settings/settings.component.html - 283 + 291 src/app/components/manage/tasks/tasks.component.html @@ -1026,7 +1030,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 325 @@ -1163,7 +1167,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 292 @@ -1401,15 +1405,15 @@ src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 269 src/app/components/manage/settings/settings.component.html - 296 + 304 @@ -1703,11 +1707,11 @@ src/app/components/manage/settings/settings.component.html - 222 + 230 src/app/components/manage/settings/settings.component.html - 308 + 316 src/app/components/manage/tasks/tasks.component.html @@ -2031,7 +2035,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 34 @@ -2338,11 +2342,11 @@ src/app/components/manage/settings/settings.component.ts - 576 + 582 src/app/components/manage/settings/settings.component.ts - 635 + 641 @@ -2357,11 +2361,11 @@ src/app/components/manage/settings/settings.component.ts - 578 + 584 src/app/components/manage/settings/settings.component.ts - 637 + 643 @@ -2462,15 +2466,15 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 258 src/app/components/manage/settings/settings.component.html - 285 + 293 src/app/components/manage/tasks/tasks.component.html @@ -2748,11 +2752,11 @@ src/app/components/manage/settings/settings.component.html - 260 + 268 src/app/components/manage/settings/settings.component.html - 295 + 303 @@ -2886,6 +2890,10 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Save "" @@ -3114,7 +3122,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 @@ -3125,7 +3133,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 @@ -3647,123 +3655,130 @@ 181 + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 244 Add Account src/app/components/manage/settings/settings.component.html - 241 + 249 Server src/app/components/manage/settings/settings.component.html - 249 + 257 No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 275 Mail rules src/app/components/manage/settings/settings.component.html - 271 + 279 Add Rule src/app/components/manage/settings/settings.component.html - 276 + 284 No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 310 Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 385 Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 482 Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 483 Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 487 Reload now src/app/components/manage/settings/settings.component.ts - 482 + 488 Use system language src/app/components/manage/settings/settings.component.ts - 500 + 506 Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 513 @@ -3772,91 +3787,91 @@ )"/> src/app/components/manage/settings/settings.component.ts - 527,529 + 533,535 Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 560 Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 570 Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 580 This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 581 Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 590 Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 599 Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 618 Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 629 Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 639 This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 640 Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 649 Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 658 @@ -4113,7 +4128,7 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 26 src/app/services/open-documents.service.ts @@ -4153,21 +4168,21 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 28 Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 32 Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 36 diff --git a/src-ui/src/app/components/manage/settings/settings.component.html b/src-ui/src/app/components/manage/settings/settings.component.html index 079f62cf2..784417f80 100644 --- a/src-ui/src/app/components/manage/settings/settings.component.html +++ b/src-ui/src/app/components/manage/settings/settings.component.html @@ -189,6 +189,14 @@ Saved views +

Settings

+
+
+ +
+
+ +

Views

diff --git a/src-ui/src/app/components/manage/settings/settings.component.ts b/src-ui/src/app/components/manage/settings/settings.component.ts index 21b066fbb..e1575a831 100644 --- a/src-ui/src/app/components/manage/settings/settings.component.ts +++ b/src-ui/src/app/components/manage/settings/settings.component.ts @@ -84,6 +84,7 @@ export class SettingsComponent notificationsConsumerFailed: new FormControl(null), notificationsConsumerSuppressOnDashboard: new FormControl(null), + savedViewsWarnOnUnsavedChange: new FormControl(null), savedViews: this.savedViewGroup, mailAccounts: this.mailAccountGroup, @@ -194,6 +195,9 @@ export class SettingsComponent notificationsConsumerSuppressOnDashboard: this.settings.get( SETTINGS_KEYS.NOTIFICATIONS_CONSUMER_SUPPRESS_ON_DASHBOARD ), + savedViewsWarnOnUnsavedChange: this.settings.get( + SETTINGS_KEYS.SAVED_VIEWS_WARN_ON_UNSAVED_CHANGE + ), savedViews: {}, mailAccounts: {}, mailRules: {}, @@ -462,6 +466,10 @@ export class SettingsComponent SETTINGS_KEYS.UPDATE_CHECKING_ENABLED, this.settingsForm.value.updateCheckingEnabled ) + this.settings.set( + SETTINGS_KEYS.SAVED_VIEWS_WARN_ON_UNSAVED_CHANGE, + this.settingsForm.value.savedViewsWarnOnUnsavedChange + ) this.settings.setLanguage(this.settingsForm.value.displayLanguage) this.settings .storeSettings() diff --git a/src-ui/src/app/data/paperless-uisettings.ts b/src-ui/src/app/data/paperless-uisettings.ts index 403d11f08..07ce00c78 100644 --- a/src-ui/src/app/data/paperless-uisettings.ts +++ b/src-ui/src/app/data/paperless-uisettings.ts @@ -41,6 +41,8 @@ export const SETTINGS_KEYS = { UPDATE_CHECKING_ENABLED: 'general-settings:update-checking:enabled', UPDATE_CHECKING_BACKEND_SETTING: 'general-settings:update-checking:backend-setting', + SAVED_VIEWS_WARN_ON_UNSAVED_CHANGE: + 'general-settings:saved-views:warn-on-unsaved-change', } export const SETTINGS: PaperlessUiSetting[] = [ @@ -139,4 +141,9 @@ export const SETTINGS: PaperlessUiSetting[] = [ type: 'string', default: '', }, + { + key: SETTINGS_KEYS.SAVED_VIEWS_WARN_ON_UNSAVED_CHANGE, + type: 'boolean', + default: true, + }, ] diff --git a/src-ui/src/app/guards/dirty-saved-view.guard.ts b/src-ui/src/app/guards/dirty-saved-view.guard.ts index 0044a2e78..d33976eb1 100644 --- a/src-ui/src/app/guards/dirty-saved-view.guard.ts +++ b/src-ui/src/app/guards/dirty-saved-view.guard.ts @@ -4,17 +4,25 @@ import { first, Observable, Subject } from 'rxjs' import { DocumentListComponent } from '../components/document-list/document-list.component' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { ConfirmDialogComponent } from '../components/common/confirm-dialog/confirm-dialog.component' +import { SettingsService } from '../services/settings.service' +import { SETTINGS_KEYS } from '../data/paperless-uisettings' @Injectable() export class DirtySavedViewGuard implements CanDeactivate { - constructor(private modalService: NgbModal) {} + constructor( + private modalService: NgbModal, + private settings: SettingsService + ) {} canDeactivate( component: DocumentListComponent ): boolean | Observable { - return component.savedViewIsModified ? this.warn(component) : true + return component.savedViewIsModified && + this.settings.get(SETTINGS_KEYS.SAVED_VIEWS_WARN_ON_UNSAVED_CHANGE) + ? this.warn(component) + : true } warn(component: DocumentListComponent) {