2021-01-02 01:13:34 +01:00
< app-page-header title = "Settings" i18n-title >
2020-10-27 01:10:18 +01:00
< / app-page-header >
2020-10-30 22:46:43 +01:00
<!-- <p>items per page, documents per view type</p> -->
2020-11-04 19:28:08 +01:00
< form [ formGroup ] = " settingsForm " ( ngSubmit ) = " saveSettings ( ) " >
< ul ngbNav # nav = "ngbNav" class = "nav-tabs" >
< li [ ngbNavItem ] = " 1 " >
2022-04-17 00:36:47 -07:00
< a ngbNavLink i18n > General< / a >
2020-11-04 19:28:08 +01:00
< ng-template ngbNavContent >
2020-12-27 23:05:19 -08:00
< h4 i18n > Appearance< / h4 >
2022-02-19 23:34:32 -08:00
< div class = "row mb-3" >
2021-01-15 12:50:34 +01:00
< div class = "col-md-3 col-form-label" >
< span i18n > Display language< / span >
< / div >
< div class = "col" >
2022-03-01 12:25:22 -08:00
< select class = "form-select" formControlName = "displayLanguage" >
2021-01-25 23:16:18 -08:00
< option * ngFor = "let lang of displayLanguageOptions" [ ngValue ] = " lang . code " > {{lang.name}}< span * ngIf = "lang.code && currentLocale != 'en-US'" > - {{lang.englishName}}< / span > < / option >
2021-01-15 12:50:34 +01:00
< / select >
2022-05-25 16:06:59 -07:00
< small * ngIf = "displayLanguageIsDirty" class = "form-text text-primary" i18n > You need to reload the page after applying a new language.< / small >
2021-01-15 12:50:34 +01:00
< / div >
< / div >
2022-02-19 23:34:32 -08:00
< div class = "row mb-3" >
2021-01-17 00:15:45 +01:00
< div class = "col-md-3 col-form-label" >
< span i18n > Date display< / span >
< / div >
< div class = "col" >
2022-03-01 12:25:22 -08:00
< select class = "form-select" formControlName = "dateLocale" >
2021-02-17 12:15:22 +01:00
< option * ngFor = "let lang of dateLocaleOptions" [ ngValue ] = " lang . code " > {{lang.name}}< span * ngIf = "lang.code" > - {{today | customDate:'shortDate':null:lang.code}}< / span > < / option >
2021-01-17 00:15:45 +01:00
< / select >
< / div >
< / div >
2022-02-19 23:34:32 -08:00
< div class = "row mb-3" >
2021-01-17 00:15:45 +01:00
< div class = "col-md-3 col-form-label" >
< span i18n > Date format< / span >
< / div >
< div class = "col" >
2022-02-19 23:34:32 -08:00
< div class = "form-check" >
< input type = "radio" id = "dateFormatShort" name = "dateFormat" class = "form-check-input" formControlName = "dateFormat" value = "shortDate" >
< label class = "form-check-label" for = "dateFormatShort" i18n > Short: {{today | customDate:'shortDate':null:computedDateLocale}}< / label >
2021-01-17 00:15:45 +01:00
< / div >
2022-02-19 23:34:32 -08:00
< div class = "form-check" >
< input type = "radio" id = "dateFormatMedium" name = "dateFormat" class = "form-check-input" formControlName = "dateFormat" value = "mediumDate" >
< label class = "form-check-label" for = "dateFormatMedium" i18n > Medium: {{today | customDate:'mediumDate':null:computedDateLocale}}< / label >
2021-01-17 00:15:45 +01:00
< / div >
2022-02-19 23:34:32 -08:00
< div class = "form-check" >
< input type = "radio" id = "dateFormatLong" name = "dateFormat" class = "form-check-input" formControlName = "dateFormat" value = "longDate" >
< label class = "form-check-label" for = "dateFormatLong" i18n > Long: {{today | customDate:'longDate':null:computedDateLocale}}< / label >
2021-01-17 00:15:45 +01:00
< / div >
< / div >
< / div >
2022-02-19 23:34:32 -08:00
< div class = "row mb-3" >
2020-11-04 19:28:08 +01:00
< div class = "col-md-3 col-form-label" >
2020-12-23 15:09:39 +01:00
< span i18n > Items per page< / span >
2020-11-04 19:28:08 +01:00
< / div >
< div class = "col" >
2020-12-27 23:05:19 -08:00
2022-03-01 12:25:22 -08:00
< select class = "form-select" formControlName = "documentListItemPerPage" >
2020-11-04 19:28:08 +01:00
< option [ ngValue ] = " 10 " > 10< / option >
< option [ ngValue ] = " 25 " > 25< / option >
< option [ ngValue ] = " 50 " > 50< / option >
< option [ ngValue ] = " 100 " > 100< / option >
< / select >
2020-12-27 23:05:19 -08:00
< / div >
< / div >
2022-02-19 23:34:32 -08:00
< div class = "row mb-3" >
2021-01-14 13:35:21 +01:00
< div class = "col-md-3 col-form-label" >
< span i18n > Document editor< / span >
< / div >
< div class = "col" >
< app-input-check i18n-title title = "Use PDF viewer provided by the browser" i18n-hint hint = "This is usually faster for displaying large PDF documents, but it might not work on some browsers." formControlName = "useNativePdfViewer" > < / app-input-check >
< / div >
< / div >
2022-02-19 23:34:32 -08:00
< div class = "row mb-3" >
2020-12-27 23:05:19 -08:00
< div class = "col-md-3 col-form-label" >
< span i18n > Dark mode< / span >
< / div >
< div class = "col" >
2021-01-14 13:35:21 +01:00
< app-input-check i18n-title title = "Use system settings" formControlName = "darkModeUseSystem" > < / app-input-check >
< app-input-check [ hidden ] = " settingsForm . value . darkModeUseSystem " i18n-title title = "Enable dark mode" formControlName = "darkModeEnabled" > < / app-input-check >
2021-02-28 12:42:46 +01:00
< app-input-check i18n-title title = "Invert thumbnails in dark mode" formControlName = "darkModeInvertThumbs" > < / app-input-check >
2020-11-04 19:28:08 +01:00
< / div >
< / div >
2022-03-09 14:12:28 -08:00
< div class = "row mb-3" >
< div class = "col-md-3 col-form-label" >
< span i18n > Theme Color< / span >
< / div >
2022-04-17 00:36:47 -07:00
< div class = "col col-md-3" >
2022-03-09 15:34:26 -08:00
< app-input-color i18n-title formControlName = "themeColor" [ error ] = " error ? . color " > < / app-input-color >
2022-03-09 14:12:28 -08:00
< / div >
< div class = "col-2" >
< button class = "btn btn-link btn-sm pt-2 ps-0" [ disabled ] = " ! this . settingsForm . get ( ' themeColor ' ) . value " ( click ) = " clearThemeColor ( ) " >
< svg width = "1em" height = "1em" viewBox = "0 0 16 16" class = "bi bi-x me-1" fill = "currentColor" xmlns = "http://www.w3.org/2000/svg" >
< path fill-rule = "evenodd" d = "M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z" / >
< / svg > < ng-container i18n > Reset< / ng-container >
< / button >
< / div >
< / div >
2022-09-30 12:30:23 -07:00
< h4 class = "mt-4" id = "update-checking" i18n > Update checking< / h4 >
< div class = "row mb-3" >
< div class = "offset-md-3 col" >
< p i18n >
Update checking works by pinging the the public < a href = "https://api.github.com/repos/paperless-ngx/paperless-ngx/releases/latest" target = "_blank" rel = "noopener noreferrer" > Github API< / a > for the latest release to determine whether a new version is available.< br / >
Actual updating of the app must still be performed manually.
< / p >
< p i18n >
< em > No tracking data is collected by the app in any way.< / em >
< / p >
< app-input-check i18n-title title = "Enable update checking" formControlName = "updateCheckingEnabled" i18n-hint hint = "Note that for users of thirdy-party containers e.g. linuxserver.io this notification may be 'ahead' of the current third-party release." > < / app-input-check >
< / div >
< / div >
2020-12-29 16:58:19 -08:00
< h4 class = "mt-4" i18n > Bulk editing< / h4 >
2020-12-29 17:09:07 +01:00
2022-02-19 23:34:32 -08:00
< div class = "row mb-3" >
2020-12-29 16:58:19 -08:00
< div class = "offset-md-3 col" >
< app-input-check i18n-title title = "Show confirmation dialogs" formControlName = "bulkEditConfirmationDialogs" i18n-hint hint = "Deleting documents will always ask for confirmation." > < / app-input-check >
< app-input-check i18n-title title = "Apply on close" formControlName = "bulkEditApplyOnClose" > < / app-input-check >
< / div >
2022-08-07 15:05:58 -07:00
< / div >
< h4 class = "mt-4" i18n > Comments< / h4 >
< div class = "row mb-3" >
< div class = "offset-md-3 col" >
< app-input-check i18n-title title = "Enable comments" formControlName = "commentsEnabled" > < / app-input-check >
< / div >
2020-12-29 16:58:19 -08:00
< / div >
2020-12-29 17:09:07 +01:00
2020-11-04 19:28:08 +01:00
< / ng-template >
< / li >
2021-03-06 14:50:38 -08:00
2020-11-04 19:28:08 +01:00
< li [ ngbNavItem ] = " 2 " >
2021-02-02 14:06:16 +01:00
< a ngbNavLink i18n > Notifications< / a >
< ng-template ngbNavContent >
2021-03-06 14:50:38 -08:00
2021-02-02 14:06:16 +01:00
< h4 i18n > Document processing< / h4 >
2020-12-29 17:09:07 +01:00
2022-02-19 23:34:32 -08:00
< div class = "row mb-3" >
2020-12-29 16:58:19 -08:00
< div class = "offset-md-3 col" >
2021-02-02 14:06:16 +01:00
< app-input-check i18n-title title = "Show notifications when new documents are detected" formControlName = "notificationsConsumerNewDocument" > < / app-input-check >
< app-input-check i18n-title title = "Show notifications when document processing completes successfully" formControlName = "notificationsConsumerSuccess" > < / app-input-check >
< app-input-check i18n-title title = "Show notifications when document processing fails" formControlName = "notificationsConsumerFailed" > < / app-input-check >
< app-input-check i18n-title title = "Suppress notifications on dashboard" formControlName = "notificationsConsumerSuppressOnDashboard" i18n-hint hint = "This will suppress all messages about document processing status on the dashboard." > < / app-input-check >
2020-12-29 16:58:19 -08:00
< / div >
< / div >
2020-12-29 17:09:07 +01:00
2020-11-04 19:28:08 +01:00
< / ng-template >
< / li >
2021-02-02 14:06:16 +01:00
< li [ ngbNavItem ] = " 3 " >
2020-12-23 15:09:39 +01:00
< a ngbNavLink i18n > Saved views< / a >
2020-11-04 19:28:08 +01:00
< ng-template ngbNavContent >
2020-12-15 02:35:04 +01:00
< div formGroupName = "savedViews" >
2020-12-27 23:05:19 -08:00
2022-02-19 23:34:32 -08:00
< div * ngFor = "let view of savedViews" [ formGroupName ] = " view . id " class = "row" >
2022-02-20 01:32:24 -08:00
< div class = "mb-3 col" >
2022-02-19 23:34:32 -08:00
< label class = "form-label" for = "name_{{view.id}}" i18n > Name< / label >
2020-12-15 02:35:04 +01:00
< input type = "text" class = "form-control" formControlName = "name" id = "name_{{view.id}}" >
< / div >
2022-02-20 01:32:24 -08:00
< div class = "mb-2 col" >
2022-02-19 23:34:32 -08:00
< label class = "form-label" for = "show_on_dashboard_{{view.id}}" i18n > Appears on< / label >
< div class = "form-check form-switch" >
< input type = "checkbox" class = "form-check-input" id = "show_on_dashboard_{{view.id}}" formControlName = "show_on_dashboard" >
< label class = "form-check-label" for = "show_on_dashboard_{{view.id}}" i18n > Show on dashboard< / label >
2020-12-15 02:35:04 +01:00
< / div >
2022-02-19 23:34:32 -08:00
< div class = "form-check form-switch" >
< input type = "checkbox" class = "form-check-input" id = "show_in_sidebar_{{view.id}}" formControlName = "show_in_sidebar" >
< label class = "form-check-label" for = "show_in_sidebar_{{view.id}}" i18n > Show in sidebar< / label >
2020-12-15 02:35:04 +01:00
< / div >
< / div >
2022-02-19 23:34:32 -08:00
< div class = "mb-2 col-auto" >
< label class = "form-label" for = "name_{{view.id}}" i18n > Actions< / label >
2020-12-23 15:09:39 +01:00
< button type = "button" class = "btn btn-sm btn-outline-danger form-control" ( click ) = " deleteSavedView ( view ) " i18n > Delete< / button >
2020-12-15 02:35:04 +01:00
< / div >
< / div >
2020-12-23 15:09:39 +01:00
< div * ngIf = "savedViews.length == 0" i18n > No saved views defined.< / div >
2020-12-27 23:05:19 -08:00
2020-12-15 02:35:04 +01:00
< / div >
2020-11-04 19:28:08 +01:00
< / ng-template >
< / li >
< / ul >
2022-02-20 01:21:30 +01:00
< div [ ngbNavOutlet ] = " nav " class = "border-start border-end border-bottom p-3 mb-3 shadow-sm" > < / div >
2020-11-04 19:28:08 +01:00
2022-09-30 14:03:59 -07:00
< button type = "submit" class = "btn btn-primary mb-2" [ disabled ] = " ! ( isDirty $ | async ) " i18n > Save< / button >
2020-12-27 23:05:19 -08:00
< / form >