mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-08-21 02:03:30 +00:00
Chorehancement: update to Angular v22, 'zoneless' / 'reactive' (#13114)
This commit is contained in:
@@ -96,7 +96,7 @@ describe(`Additional service tests for SavedViewService`, () => {
|
||||
})
|
||||
|
||||
it('should sort dashboard views', () => {
|
||||
service['savedViews'] = saved_views
|
||||
service['savedViews'].set(saved_views)
|
||||
jest.spyOn(settingsService, 'get').mockImplementation((key) => {
|
||||
if (key === SETTINGS_KEYS.DASHBOARD_VIEWS_VISIBLE_IDS) return [1, 2, 3]
|
||||
if (key === SETTINGS_KEYS.DASHBOARD_VIEWS_SORT_ORDER) return [3, 1, 2]
|
||||
@@ -110,7 +110,7 @@ describe(`Additional service tests for SavedViewService`, () => {
|
||||
})
|
||||
|
||||
it('should use user-specific dashboard visibility when configured', () => {
|
||||
service['savedViews'] = saved_views
|
||||
service['savedViews'].set(saved_views)
|
||||
jest.spyOn(settingsService, 'get').mockImplementation((key) => {
|
||||
if (key === SETTINGS_KEYS.DASHBOARD_VIEWS_VISIBLE_IDS) return [4, 2]
|
||||
if (key === SETTINGS_KEYS.DASHBOARD_VIEWS_SORT_ORDER) return []
|
||||
@@ -119,7 +119,7 @@ describe(`Additional service tests for SavedViewService`, () => {
|
||||
})
|
||||
|
||||
it('should sort sidebar views', () => {
|
||||
service['savedViews'] = saved_views
|
||||
service['savedViews'].set(saved_views)
|
||||
jest.spyOn(settingsService, 'get').mockImplementation((key) => {
|
||||
if (key === SETTINGS_KEYS.SIDEBAR_VIEWS_VISIBLE_IDS) return [1, 2, 3]
|
||||
if (key === SETTINGS_KEYS.SIDEBAR_VIEWS_SORT_ORDER) return [3, 1, 2]
|
||||
@@ -133,7 +133,7 @@ describe(`Additional service tests for SavedViewService`, () => {
|
||||
})
|
||||
|
||||
it('should use user-specific sidebar visibility when configured', () => {
|
||||
service['savedViews'] = saved_views
|
||||
service['savedViews'].set(saved_views)
|
||||
jest.spyOn(settingsService, 'get').mockImplementation((key) => {
|
||||
if (key === SETTINGS_KEYS.SIDEBAR_VIEWS_VISIBLE_IDS) return [4, 2]
|
||||
if (key === SETTINGS_KEYS.SIDEBAR_VIEWS_SORT_ORDER) return []
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { inject, Injectable } from '@angular/core'
|
||||
import { inject, Injectable, signal } from '@angular/core'
|
||||
import { combineLatest, Observable, Subject } from 'rxjs'
|
||||
import { takeUntil, tap } from 'rxjs/operators'
|
||||
import { Results } from 'src/app/data/results'
|
||||
@@ -17,8 +17,10 @@ export class SavedViewService extends AbstractPaperlessService<SavedView> {
|
||||
private settingsService = inject(SettingsService)
|
||||
private documentService = inject(DocumentService)
|
||||
|
||||
private savedViews: SavedView[] = []
|
||||
private savedViewDocumentCounts: Map<number, number> = new Map()
|
||||
private readonly savedViews = signal<SavedView[]>([])
|
||||
private readonly savedViewDocumentCounts = signal<Map<number, number>>(
|
||||
new Map()
|
||||
)
|
||||
private unsubscribeNotifier: Subject<void> = new Subject<void>()
|
||||
|
||||
constructor() {
|
||||
@@ -37,15 +39,16 @@ export class SavedViewService extends AbstractPaperlessService<SavedView> {
|
||||
tap({
|
||||
next: (r) => {
|
||||
const views = r.results.map((view) => this.withUserVisibility(view))
|
||||
this.savedViews = views
|
||||
this.savedViews.set(views)
|
||||
r.results = views
|
||||
this._loading = false
|
||||
this.settingsService.dashboardIsEmpty =
|
||||
this.settingsService.dashboardIsEmpty.set(
|
||||
this.dashboardViews.length === 0
|
||||
)
|
||||
},
|
||||
error: () => {
|
||||
this._loading = false
|
||||
this.settingsService.dashboardIsEmpty = true
|
||||
this.settingsService.dashboardIsEmpty.set(true)
|
||||
},
|
||||
})
|
||||
)
|
||||
@@ -63,8 +66,8 @@ export class SavedViewService extends AbstractPaperlessService<SavedView> {
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
get allViews() {
|
||||
return this.savedViews
|
||||
get allViews(): SavedView[] {
|
||||
return this.savedViews()
|
||||
}
|
||||
|
||||
private getVisibleViewIds(setting: string): number[] {
|
||||
@@ -95,7 +98,9 @@ export class SavedViewService extends AbstractPaperlessService<SavedView> {
|
||||
}
|
||||
|
||||
get sidebarViews(): SavedView[] {
|
||||
const sidebarViews = this.savedViews.filter((v) => this.isSidebarVisible(v))
|
||||
const sidebarViews = this.savedViews().filter((v) =>
|
||||
this.isSidebarVisible(v)
|
||||
)
|
||||
|
||||
const sorted: number[] = this.settingsService.get(
|
||||
SETTINGS_KEYS.SIDEBAR_VIEWS_SORT_ORDER
|
||||
@@ -110,7 +115,7 @@ export class SavedViewService extends AbstractPaperlessService<SavedView> {
|
||||
}
|
||||
|
||||
get dashboardViews(): SavedView[] {
|
||||
const dashboardViews = this.savedViews.filter((v) =>
|
||||
const dashboardViews = this.savedViews().filter((v) =>
|
||||
this.isDashboardVisible(v)
|
||||
)
|
||||
|
||||
@@ -176,10 +181,12 @@ export class SavedViewService extends AbstractPaperlessService<SavedView> {
|
||||
}
|
||||
|
||||
public setDocumentCount(view: SavedView, count: number) {
|
||||
this.savedViewDocumentCounts.set(view.id, count)
|
||||
const counts = new Map(this.savedViewDocumentCounts())
|
||||
counts.set(view.id, count)
|
||||
this.savedViewDocumentCounts.set(counts)
|
||||
}
|
||||
|
||||
public getDocumentCount(view: SavedView): number {
|
||||
return this.savedViewDocumentCounts.get(view.id)
|
||||
return this.savedViewDocumentCounts().get(view.id)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user