mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-07-08 21:15:09 +00:00
Fix sidebar via saved view + tasks service signals
This commit is contained in:
@@ -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,8 @@ 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 savedViewsSignal = signal<SavedView[]>([])
|
||||
private savedViewDocumentCountsSignal = signal<Map<number, number>>(new Map())
|
||||
private unsubscribeNotifier: Subject<void> = new Subject<void>()
|
||||
|
||||
constructor() {
|
||||
@@ -26,6 +26,22 @@ export class SavedViewService extends AbstractPaperlessService<SavedView> {
|
||||
this.resourceName = 'saved_views'
|
||||
}
|
||||
|
||||
private get savedViews(): SavedView[] {
|
||||
return this.savedViewsSignal()
|
||||
}
|
||||
|
||||
private set savedViews(views: SavedView[]) {
|
||||
this.savedViewsSignal.set(views)
|
||||
}
|
||||
|
||||
private get savedViewDocumentCounts(): Map<number, number> {
|
||||
return this.savedViewDocumentCountsSignal()
|
||||
}
|
||||
|
||||
private set savedViewDocumentCounts(counts: Map<number, number>) {
|
||||
this.savedViewDocumentCountsSignal.set(counts)
|
||||
}
|
||||
|
||||
public list(
|
||||
page?: number,
|
||||
pageSize?: number,
|
||||
@@ -176,7 +192,9 @@ 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 = counts
|
||||
}
|
||||
|
||||
public getDocumentCount(view: SavedView): number {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable, inject } from '@angular/core'
|
||||
import { Injectable, inject, signal } from '@angular/core'
|
||||
import { Observable, Subject } from 'rxjs'
|
||||
import { first, map, takeUntil, tap } from 'rxjs/operators'
|
||||
import {
|
||||
@@ -23,10 +23,18 @@ export class TasksService {
|
||||
|
||||
public loading: boolean = false
|
||||
|
||||
private fileTasks: PaperlessTask[] = []
|
||||
private fileTasksSignal = signal<PaperlessTask[]>([])
|
||||
|
||||
private unsubscribeNotifer: Subject<any> = new Subject()
|
||||
|
||||
private get fileTasks(): PaperlessTask[] {
|
||||
return this.fileTasksSignal()
|
||||
}
|
||||
|
||||
private set fileTasks(tasks: PaperlessTask[]) {
|
||||
this.fileTasksSignal.set(tasks)
|
||||
}
|
||||
|
||||
public get total(): number {
|
||||
return this.fileTasks.length
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user