mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-07-08 13:05:10 +00:00
Add signal handling to app frame, global search
This commit is contained in:
@@ -210,10 +210,12 @@ export class AppFrameComponent
|
||||
}
|
||||
|
||||
get versionString(): string {
|
||||
this.settingsService.trackChanges()
|
||||
return `${environment.appTitle} v${this.settingsService.get(SETTINGS_KEYS.VERSION)}${environment.tag === 'prod' ? '' : ` #${environment.tag}`}`
|
||||
}
|
||||
|
||||
get customAppTitle(): string {
|
||||
this.settingsService.trackChanges()
|
||||
return this.settingsService.get(SETTINGS_KEYS.APP_TITLE)
|
||||
}
|
||||
|
||||
@@ -256,6 +258,7 @@ export class AppFrameComponent
|
||||
}
|
||||
|
||||
get slimSidebarEnabled(): boolean {
|
||||
this.settingsService.trackChanges()
|
||||
return this.settingsService.get(SETTINGS_KEYS.SLIM_SIDEBAR)
|
||||
}
|
||||
|
||||
@@ -275,6 +278,7 @@ export class AppFrameComponent
|
||||
}
|
||||
|
||||
get attributesSectionsCollapsed(): boolean {
|
||||
this.settingsService.trackChanges()
|
||||
return this.settingsService
|
||||
.get(SETTINGS_KEYS.ATTRIBUTES_SECTIONS_COLLAPSED)
|
||||
?.includes(CollapsibleSection.ATTRIBUTES)
|
||||
@@ -300,6 +304,7 @@ export class AppFrameComponent
|
||||
}
|
||||
|
||||
get aiEnabled(): boolean {
|
||||
this.settingsService.trackChanges()
|
||||
return this.settingsService.get(SETTINGS_KEYS.AI_ENABLED)
|
||||
}
|
||||
|
||||
@@ -451,6 +456,7 @@ export class AppFrameComponent
|
||||
}
|
||||
|
||||
get showSidebarCounts(): boolean {
|
||||
this.settingsService.trackChanges()
|
||||
return (
|
||||
this.settingsService.get(SETTINGS_KEYS.SIDEBAR_VIEWS_SHOW_COUNT) &&
|
||||
!this.settingsService.organizingSidebarSavedViews
|
||||
|
||||
@@ -121,6 +121,7 @@ export class GlobalSearchComponent implements OnInit {
|
||||
@ViewChildren('secondaryButton') secondaryButtons: QueryList<ElementRef>
|
||||
|
||||
get useAdvancedForFullSearch(): boolean {
|
||||
this.settingsService.trackChanges()
|
||||
return (
|
||||
this.settingsService.get(SETTINGS_KEYS.SEARCH_FULL_TYPE) ===
|
||||
GlobalSearchType.ADVANCED
|
||||
|
||||
@@ -296,7 +296,15 @@ export class SettingsService {
|
||||
|
||||
private settings: Record<string, any> = {}
|
||||
private settingsVersion = signal(0)
|
||||
currentUser: User
|
||||
private currentUserSignal = signal<User>(undefined)
|
||||
|
||||
get currentUser(): User {
|
||||
return this.currentUserSignal()
|
||||
}
|
||||
|
||||
set currentUser(value: User) {
|
||||
this.currentUserSignal.set(value)
|
||||
}
|
||||
|
||||
public settingsSaved: EventEmitter<any> = new EventEmitter()
|
||||
|
||||
@@ -305,11 +313,42 @@ export class SettingsService {
|
||||
return this._renderer
|
||||
}
|
||||
|
||||
public dashboardIsEmpty: boolean = false
|
||||
private dashboardIsEmptySignal = signal(false)
|
||||
private globalDropzoneEnabledSignal = signal(true)
|
||||
private globalDropzoneActiveSignal = signal(false)
|
||||
private organizingSidebarSavedViewsSignal = signal(false)
|
||||
|
||||
public globalDropzoneEnabled: boolean = true
|
||||
public globalDropzoneActive: boolean = false
|
||||
public organizingSidebarSavedViews: boolean = false
|
||||
public get dashboardIsEmpty(): boolean {
|
||||
return this.dashboardIsEmptySignal()
|
||||
}
|
||||
|
||||
public set dashboardIsEmpty(value: boolean) {
|
||||
this.dashboardIsEmptySignal.set(value)
|
||||
}
|
||||
|
||||
public get globalDropzoneEnabled(): boolean {
|
||||
return this.globalDropzoneEnabledSignal()
|
||||
}
|
||||
|
||||
public set globalDropzoneEnabled(value: boolean) {
|
||||
this.globalDropzoneEnabledSignal.set(value)
|
||||
}
|
||||
|
||||
public get globalDropzoneActive(): boolean {
|
||||
return this.globalDropzoneActiveSignal()
|
||||
}
|
||||
|
||||
public set globalDropzoneActive(value: boolean) {
|
||||
this.globalDropzoneActiveSignal.set(value)
|
||||
}
|
||||
|
||||
public get organizingSidebarSavedViews(): boolean {
|
||||
return this.organizingSidebarSavedViewsSignal()
|
||||
}
|
||||
|
||||
public set organizingSidebarSavedViews(value: boolean) {
|
||||
this.organizingSidebarSavedViewsSignal.set(value)
|
||||
}
|
||||
|
||||
private _allDisplayFields: Array<{ id: DisplayField; name: string }> =
|
||||
DEFAULT_DISPLAY_FIELDS
|
||||
@@ -444,8 +483,8 @@ export class SettingsService {
|
||||
|
||||
get displayName(): string {
|
||||
return (
|
||||
this.currentUser.first_name ??
|
||||
this.currentUser.username ??
|
||||
this.currentUser?.first_name ??
|
||||
this.currentUser?.username ??
|
||||
''
|
||||
).trim()
|
||||
}
|
||||
@@ -578,7 +617,7 @@ export class SettingsService {
|
||||
|
||||
// special case to fallback
|
||||
if (key === SETTINGS_KEYS.DEFAULT_PERMS_OWNER && value === undefined) {
|
||||
return this.currentUser.id
|
||||
return this.currentUser?.id
|
||||
}
|
||||
|
||||
if (value !== undefined) {
|
||||
|
||||
Reference in New Issue
Block a user