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 d2fbf4efe..b7ec2708d 100644 --- a/src-ui/src/app/services/document-list-view.service.ts +++ b/src-ui/src/app/services/document-list-view.service.ts @@ -10,7 +10,7 @@ import { PaperlessDocument } from '../data/paperless-document' import { PaperlessSavedView } from '../data/paperless-saved-view' import { SETTINGS_KEYS } from '../data/paperless-uisettings' import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys' -import { generateParams, getStateFromQueryParams } from '../utils/query-params' +import { generateParams, parseParams } from '../utils/query-params' import { DocumentService, DOCUMENT_SORT_FIELDS } from './rest/document.service' import { SettingsService } from './settings.service' @@ -169,7 +169,7 @@ export class DocumentListViewService { loadFromQueryParams(queryParams: ParamMap) { const paramsEmpty: boolean = queryParams.keys.length == 0 let newState: ListViewState = this.listViewStates.get(null) - if (!paramsEmpty) newState = getStateFromQueryParams(queryParams) + if (!paramsEmpty) newState = parseParams(queryParams) if (newState == undefined) newState = this.defaultListViewState() // if nothing in local storage this.activeListViewState.filterRules = newState.filterRules @@ -200,12 +200,7 @@ export class DocumentListViewService { if (updateQueryParams && !this._activeSavedViewId) { let base = ['/documents'] this.router.navigate(base, { - queryParams: generateParams( - activeListViewState.filterRules, - activeListViewState.sortField, - activeListViewState.sortReverse, - activeListViewState.currentPage - ), + queryParams: generateParams(activeListViewState), }) } diff --git a/src-ui/src/app/utils/query-params.ts b/src-ui/src/app/utils/query-params.ts index 5c5dae8d5..6af44e8c9 100644 --- a/src-ui/src/app/utils/query-params.ts +++ b/src-ui/src/app/utils/query-params.ts @@ -7,23 +7,17 @@ const SORT_FIELD_PARAMETER = 'sort' const SORT_REVERSE_PARAMETER = 'reverse' const PAGE_PARAMETER = 'page' -export function generateParams( - filterRules: FilterRule[], - sortField: string, - sortReverse: boolean, - currentPage: number -): Params { - let params = {} - params[SORT_FIELD_PARAMETER] = sortField - params[SORT_REVERSE_PARAMETER] = sortReverse ? 1 : undefined - params[PAGE_PARAMETER] = isNaN(currentPage) ? 1 : currentPage - return { - ...queryParamsFromFilterRules(filterRules), - ...params, - } +export function generateParams(viewState: ListViewState): Params { + let params = queryParamsFromFilterRules(viewState.filterRules) + params[SORT_FIELD_PARAMETER] = viewState.sortField + params[SORT_REVERSE_PARAMETER] = viewState.sortReverse ? 1 : undefined + params[PAGE_PARAMETER] = isNaN(viewState.currentPage) + ? 1 + : viewState.currentPage + return params } -export function getStateFromQueryParams(queryParams: ParamMap): ListViewState { +export function parseParams(queryParams: ParamMap): ListViewState { let filterRules = filterRulesFromQueryParams(queryParams) let sortField = queryParams.get(SORT_FIELD_PARAMETER) let sortReverse =