Dark mode
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 0cf336a01..7a1f31820 100644
--- a/src-ui/src/app/components/manage/settings/settings.component.ts
+++ b/src-ui/src/app/components/manage/settings/settings.component.ts
@@ -28,6 +28,7 @@ import {
import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
import { ActivatedRoute } from '@angular/router'
import { ViewportScroller } from '@angular/common'
+import { ForwardRefHandling } from '@angular/compiler'
@Component({
selector: 'app-settings',
@@ -43,6 +44,7 @@ export class SettingsComponent
bulkEditConfirmationDialogs: new FormControl(null),
bulkEditApplyOnClose: new FormControl(null),
documentListItemPerPage: new FormControl(null),
+ slimSidebarEnabled: new FormControl(null),
darkModeUseSystem: new FormControl(null),
darkModeEnabled: new FormControl(null),
darkModeInvertThumbs: new FormControl(null),
@@ -99,17 +101,8 @@ export class SettingsComponent
}
}
- ngOnInit() {
- this.savedViewService.listAll().subscribe((r) => {
- this.savedViews = r.results
- this.initialize()
- })
- }
-
- initialize() {
- this.unsubscribeNotifier.next(true)
-
- let storeData = {
+ private getCurrentSettings() {
+ return {
bulkEditConfirmationDialogs: this.settings.get(
SETTINGS_KEYS.BULK_EDIT_CONFIRMATION_DIALOGS
),
@@ -119,6 +112,7 @@ export class SettingsComponent
documentListItemPerPage: this.settings.get(
SETTINGS_KEYS.DOCUMENT_LIST_SIZE
),
+ slimSidebarEnabled: this.settings.get(SETTINGS_KEYS.SLIM_SIDEBAR),
darkModeUseSystem: this.settings.get(SETTINGS_KEYS.DARK_MODE_USE_SYSTEM),
darkModeEnabled: this.settings.get(SETTINGS_KEYS.DARK_MODE_ENABLED),
darkModeInvertThumbs: this.settings.get(
@@ -149,6 +143,19 @@ export class SettingsComponent
SETTINGS_KEYS.UPDATE_CHECKING_ENABLED
),
}
+ }
+
+ ngOnInit() {
+ this.savedViewService.listAll().subscribe((r) => {
+ this.savedViews = r.results
+ this.initialize()
+ })
+ }
+
+ initialize() {
+ this.unsubscribeNotifier.next(true)
+
+ let storeData = this.getCurrentSettings()
for (let view of this.savedViews) {
storeData.savedViews[view.id.toString()] = {
@@ -232,6 +239,10 @@ export class SettingsComponent
SETTINGS_KEYS.DOCUMENT_LIST_SIZE,
this.settingsForm.value.documentListItemPerPage
)
+ this.settings.set(
+ SETTINGS_KEYS.SLIM_SIDEBAR,
+ this.settingsForm.value.slimSidebarEnabled
+ )
this.settings.set(
SETTINGS_KEYS.DARK_MODE_USE_SYSTEM,
this.settingsForm.value.darkModeUseSystem
diff --git a/src-ui/src/app/data/paperless-uisettings.ts b/src-ui/src/app/data/paperless-uisettings.ts
index b32315e62..403d11f08 100644
--- a/src-ui/src/app/data/paperless-uisettings.ts
+++ b/src-ui/src/app/data/paperless-uisettings.ts
@@ -37,6 +37,7 @@ export const SETTINGS_KEYS = {
NOTIFICATIONS_CONSUMER_SUPPRESS_ON_DASHBOARD:
'general-settings:notifications:consumer-suppress-on-dashboard',
COMMENTS_ENABLED: 'general-settings:comments-enabled',
+ SLIM_SIDEBAR: 'general-settings:slim-sidebar',
UPDATE_CHECKING_ENABLED: 'general-settings:update-checking:enabled',
UPDATE_CHECKING_BACKEND_SETTING:
'general-settings:update-checking:backend-setting',
@@ -58,6 +59,11 @@ export const SETTINGS: PaperlessUiSetting[] = [
type: 'boolean',
default: false,
},
+ {
+ key: SETTINGS_KEYS.SLIM_SIDEBAR,
+ type: 'boolean',
+ default: false,
+ },
{
key: SETTINGS_KEYS.DOCUMENT_LIST_SIZE,
type: 'number',
diff --git a/src-ui/src/styles.scss b/src-ui/src/styles.scss
index d85fb7dc7..b66710dcd 100644
--- a/src-ui/src/styles.scss
+++ b/src-ui/src/styles.scss
@@ -1,9 +1,9 @@
// bs options
$enable-negative-margins: true;
+@import "theme";
@import "node_modules/bootstrap/scss/bootstrap";
@import "~@ng-select/ng-select/themes/default.theme.css";
-@import "theme";
@import "print";
// Paperless-ngx styles
@@ -84,6 +84,15 @@ svg.logo {
}
}
+.btn-dark {
+ --bs-btn-color: var(--bs-gray-600);
+ --bs-btn-bg: var(--bs-gray-200);
+ --bs-btn-border-color: var(--bs-gray-200);
+ --bs-btn-hover-bg: var(--bs-gray-400);
+ --bs-btn-hover-border-color: var(--bs-gray-500);
+ --bs-btn-active-bg: var(--bs-gray-200);
+}
+
.text-primary {
color: var(--bs-primary) !important;
}
@@ -405,6 +414,11 @@ textarea,
vertical-align: text-bottom;
}
+.sidebaricon-sm {
+ width: 12px;
+ height: 12px;
+}
+
table.table {
color: var(--bs-body-color);
diff --git a/src-ui/src/theme.scss b/src-ui/src/theme.scss
index bf9be6662..99dcb8bab 100644
--- a/src-ui/src/theme.scss
+++ b/src-ui/src/theme.scss
@@ -79,6 +79,15 @@ $form-check-radio-checked-bg-image-dark: url("data:image/svg+xml,