minor refactor query params utils

This commit is contained in:
Michael Shamoon 2022-05-20 23:32:30 -07:00
parent 1c83f489d1
commit 48f9cb09af
2 changed files with 12 additions and 23 deletions

View File

@ -10,7 +10,7 @@ import { PaperlessDocument } from '../data/paperless-document'
import { PaperlessSavedView } from '../data/paperless-saved-view' import { PaperlessSavedView } from '../data/paperless-saved-view'
import { SETTINGS_KEYS } from '../data/paperless-uisettings' import { SETTINGS_KEYS } from '../data/paperless-uisettings'
import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys' 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 { DocumentService, DOCUMENT_SORT_FIELDS } from './rest/document.service'
import { SettingsService } from './settings.service' import { SettingsService } from './settings.service'
@ -169,7 +169,7 @@ export class DocumentListViewService {
loadFromQueryParams(queryParams: ParamMap) { loadFromQueryParams(queryParams: ParamMap) {
const paramsEmpty: boolean = queryParams.keys.length == 0 const paramsEmpty: boolean = queryParams.keys.length == 0
let newState: ListViewState = this.listViewStates.get(null) 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 if (newState == undefined) newState = this.defaultListViewState() // if nothing in local storage
this.activeListViewState.filterRules = newState.filterRules this.activeListViewState.filterRules = newState.filterRules
@ -200,12 +200,7 @@ export class DocumentListViewService {
if (updateQueryParams && !this._activeSavedViewId) { if (updateQueryParams && !this._activeSavedViewId) {
let base = ['/documents'] let base = ['/documents']
this.router.navigate(base, { this.router.navigate(base, {
queryParams: generateParams( queryParams: generateParams(activeListViewState),
activeListViewState.filterRules,
activeListViewState.sortField,
activeListViewState.sortReverse,
activeListViewState.currentPage
),
}) })
} }

View File

@ -7,23 +7,17 @@ const SORT_FIELD_PARAMETER = 'sort'
const SORT_REVERSE_PARAMETER = 'reverse' const SORT_REVERSE_PARAMETER = 'reverse'
const PAGE_PARAMETER = 'page' const PAGE_PARAMETER = 'page'
export function generateParams( export function generateParams(viewState: ListViewState): Params {
filterRules: FilterRule[], let params = queryParamsFromFilterRules(viewState.filterRules)
sortField: string, params[SORT_FIELD_PARAMETER] = viewState.sortField
sortReverse: boolean, params[SORT_REVERSE_PARAMETER] = viewState.sortReverse ? 1 : undefined
currentPage: number params[PAGE_PARAMETER] = isNaN(viewState.currentPage)
): Params { ? 1
let params = {} : viewState.currentPage
params[SORT_FIELD_PARAMETER] = sortField return params
params[SORT_REVERSE_PARAMETER] = sortReverse ? 1 : undefined
params[PAGE_PARAMETER] = isNaN(currentPage) ? 1 : currentPage
return {
...queryParamsFromFilterRules(filterRules),
...params,
}
} }
export function getStateFromQueryParams(queryParams: ParamMap): ListViewState { export function parseParams(queryParams: ParamMap): ListViewState {
let filterRules = filterRulesFromQueryParams(queryParams) let filterRules = filterRulesFromQueryParams(queryParams)
let sortField = queryParams.get(SORT_FIELD_PARAMETER) let sortField = queryParams.get(SORT_FIELD_PARAMETER)
let sortReverse = let sortReverse =