]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix quick filtering
authorMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Sun, 27 Mar 2022 07:09:09 +0000 (00:09 -0700)
committerMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Sun, 27 Mar 2022 07:09:09 +0000 (00:09 -0700)
src-ui/src/app/components/app-frame/app-frame.component.ts
src-ui/src/app/components/document-list/document-list.component.ts
src-ui/src/app/services/document-list-view.service.ts
src-ui/src/app/services/rest/document.service.ts

index 5a4521e1298273ec1eb27da6f95479ae1a5db5ec..a038c9a3169a895035c4415ba3c93d447bd82a61 100644 (file)
@@ -81,7 +81,10 @@ export class AppFrameComponent {
   search() {
     this.closeMenu()
     this.list.quickFilter([
-      { rule_type: FILTER_FULLTEXT_QUERY, value: this.searchField.value },
+      {
+        rule_type: FILTER_FULLTEXT_QUERY,
+        value: (this.searchField.value as string).trim(),
+      },
     ])
   }
 
index f9135d27fabecc52ff1f56c0d63f543a51e155fd..ea1fa831dd84f1071a4a1cea3afbd7af6cd86193 100644 (file)
@@ -151,8 +151,9 @@ export class DocumentListComponent implements OnInit, OnDestroy, AfterViewInit {
 
   ngAfterViewInit(): void {
     this.filterEditor.filterRulesChange.subscribe({
-      next: (rules) => {
-        const params = this.documentService.queryParams
+      next: (filterRules) => {
+        const params =
+          this.documentService.filterRulesToQueryParams(filterRules)
 
         // if we were on a saved view we navigate 'away' to /documents
         let base = []
index e33dea1d6325ab11a82829d7ba9f455b560b67c9..fa07649afc2b181ce29d86534fead43f60e4d07a 100644 (file)
@@ -249,20 +249,11 @@ export class DocumentListViewService {
   }
 
   quickFilter(filterRules: FilterRule[]) {
-    this._activeSavedViewId = null
-    this.activeListViewState.filterRules = filterRules
-    this.activeListViewState.currentPage = 1
-    if (isFullTextFilterRule(filterRules)) {
-      this.activeListViewState.sortField = 'score'
-      this.activeListViewState.sortReverse = false
-    }
-    this.reduceSelectionToFilter()
-    this.saveDocumentListView()
-    if (this.router.url == '/documents') {
-      this.reload()
-    } else {
-      this.router.navigate(['documents'])
-    }
+    const params = this.documentService.filterRulesToQueryParams(filterRules)
+    this.router.navigate(['/documents'], {
+      relativeTo: this.route,
+      queryParams: params,
+    })
   }
 
   getLastPage(): number {
index 9694d63b064ea73d48165dfe9b468f55c89a627f..d06282bb80b5695de11417666733a251650aebcc 100644 (file)
@@ -47,7 +47,6 @@ export interface SelectionData {
 })
 export class DocumentService extends AbstractPaperlessService<PaperlessDocument> {
   private _searchQuery: string
-  public queryParams: Object = {}
 
   constructor(
     http: HttpClient,
@@ -58,7 +57,7 @@ export class DocumentService extends AbstractPaperlessService<PaperlessDocument>
     super(http, 'documents')
   }
 
-  private filterRulesToQueryParams(filterRules: FilterRule[]): Object {
+  public filterRulesToQueryParams(filterRules: FilterRule[]): Object {
     if (filterRules) {
       let params = {}
       for (let rule of filterRules) {
@@ -102,13 +101,12 @@ export class DocumentService extends AbstractPaperlessService<PaperlessDocument>
     filterRules?: FilterRule[],
     extraParams = {}
   ): Observable<Results<PaperlessDocument>> {
-    this.queryParams = this.filterRulesToQueryParams(filterRules)
     return this.list(
       page,
       pageSize,
       sortField,
       sortReverse,
-      Object.assign(extraParams, this.queryParams)
+      Object.assign(extraParams, this.filterRulesToQueryParams(filterRules))
     ).pipe(
       map((results) => {
         results.results.forEach((doc) => this.addObservablesToDocument(doc))