mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-07-28 18:24:38 -05:00
Merge pull request #540 from paperless-ngx/filtering-query-params
Feature: Filtering query params aka browser navigation for filtering
This commit is contained in:
@@ -143,8 +143,8 @@ export class DocumentListViewService {
|
||||
activeListViewState.sortReverse,
|
||||
activeListViewState.filterRules
|
||||
)
|
||||
.subscribe(
|
||||
(result) => {
|
||||
.subscribe({
|
||||
next: (result) => {
|
||||
this.isReloading = false
|
||||
activeListViewState.collectionSize = result.count
|
||||
activeListViewState.documents = result.results
|
||||
@@ -153,7 +153,7 @@ export class DocumentListViewService {
|
||||
}
|
||||
this.rangeSelectionAnchorIndex = this.lastRangeSelectionToIndex = null
|
||||
},
|
||||
(error) => {
|
||||
error: (error) => {
|
||||
this.isReloading = false
|
||||
if (activeListViewState.currentPage != 1 && error.status == 404) {
|
||||
// this happens when applying a filter: the current page might not be available anymore due to the reduced result set.
|
||||
@@ -162,8 +162,8 @@ export class DocumentListViewService {
|
||||
} else {
|
||||
this.error = error.error
|
||||
}
|
||||
}
|
||||
)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
set filterRules(filterRules: FilterRule[]) {
|
||||
@@ -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 {
|
||||
|
@@ -57,7 +57,7 @@ export class DocumentService extends AbstractPaperlessService<PaperlessDocument>
|
||||
super(http, 'documents')
|
||||
}
|
||||
|
||||
private filterRulesToQueryParams(filterRules: FilterRule[]) {
|
||||
public filterRulesToQueryParams(filterRules: FilterRule[]): Object {
|
||||
if (filterRules) {
|
||||
let params = {}
|
||||
for (let rule of filterRules) {
|
||||
|
Reference in New Issue
Block a user