From 2c702eb568dff1d4d0a3e5cff0b7f07e96abc2a6 Mon Sep 17 00:00:00 2001 From: jonaswinkler Date: Fri, 11 Dec 2020 14:46:38 +0100 Subject: [PATCH] fixed some issues with the data access service, support for requesting all IDs of filtered documents (required for selection) --- .../app/services/document-list-view.service.ts | 2 +- .../services/rest/abstract-paperless-service.ts | 6 +++--- src-ui/src/app/services/rest/document.service.ts | 16 +++++++++++----- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src-ui/src/app/services/document-list-view.service.ts b/src-ui/src/app/services/document-list-view.service.ts index 811ac3c4b..149096591 100644 --- a/src-ui/src/app/services/document-list-view.service.ts +++ b/src-ui/src/app/services/document-list-view.service.ts @@ -90,7 +90,7 @@ export class DocumentListViewService { reload(onFinish?) { this.isReloading = true - this.documentService.list( + this.documentService.listFiltered( this.currentPage, this.currentPageSize, this.view.sortField, diff --git a/src-ui/src/app/services/rest/abstract-paperless-service.ts b/src-ui/src/app/services/rest/abstract-paperless-service.ts index 3feed320e..d05b4aced 100644 --- a/src-ui/src/app/services/rest/abstract-paperless-service.ts +++ b/src-ui/src/app/services/rest/abstract-paperless-service.ts @@ -54,9 +54,9 @@ export abstract class AbstractPaperlessService { private _listAll: Observable> - listAll(ordering?: string, extraParams?): Observable> { + listAll(sortField?: string, sortDirection?: string, extraParams?): Observable> { if (!this._listAll) { - this._listAll = this.list(1, 100000, ordering, extraParams).pipe( + this._listAll = this.list(1, 100000, sortField, sortDirection, extraParams).pipe( publishReplay(1), refCount() ) @@ -94,4 +94,4 @@ export abstract class AbstractPaperlessService { this._listAll = null return this.http.put(this.getResourceUrl(o.id), o) } -} \ No newline at end of file +} diff --git a/src-ui/src/app/services/rest/document.service.ts b/src-ui/src/app/services/rest/document.service.ts index 4979ba8be..99ec1f3ee 100644 --- a/src-ui/src/app/services/rest/document.service.ts +++ b/src-ui/src/app/services/rest/document.service.ts @@ -64,8 +64,8 @@ export class DocumentService extends AbstractPaperlessService return doc } - list(page?: number, pageSize?: number, sortField?: string, sortDirection?: string, filterRules?: FilterRule[]): Observable> { - return super.list(page, pageSize, sortField, sortDirection, this.filterRulesToQueryParams(filterRules)).pipe( + listFiltered(page?: number, pageSize?: number, sortField?: string, sortDirection?: string, filterRules?: FilterRule[], extraParams = {}): Observable> { + return this.list(page, pageSize, sortField, sortDirection, Object.assign(extraParams, this.filterRulesToQueryParams(filterRules))).pipe( map(results => { results.results.forEach(doc => this.addObservablesToDocument(doc)) return results @@ -73,6 +73,12 @@ export class DocumentService extends AbstractPaperlessService ) } + listAllFilteredIds(filterRules?: FilterRule[]): Observable { + return this.listFiltered(1, 100000, null, null, filterRules, {"fields": "id"}).pipe( + map(response => response.results.map(doc => doc.id)) + ) + } + getPreviewUrl(id: number, original: boolean = false): string { let url = this.getResourceUrl(id, 'preview') if (original) { @@ -101,11 +107,11 @@ export class DocumentService extends AbstractPaperlessService return this.http.get(this.getResourceUrl(id, 'metadata')) } - bulk_edit(ids: number[], method: string, args: any[]) { + bulkEdit(ids: number[], method: string, args: any) { return this.http.post(this.getResourceUrl(null, 'bulk_edit'), { - 'ids': ids, + 'documents': ids, 'method': method, - 'args': args + 'parameters': args }) }