add storage key for viewlet view options

Signed-off-by: Nikolay Chunosov <Chunosov.N@gmail.com>
This commit is contained in:
Nikolay Chunosov 2024-12-24 23:48:15 +07:00
parent a86fafd5a3
commit e676b75e7f
3 changed files with 13 additions and 8 deletions

View File

@ -361,7 +361,8 @@ export function createModel (builder: Builder): void {
viewOptions: {
groupBy: [],
orderBy: [],
other: [vacancyHideArchivedOption]
other: [vacancyHideArchivedOption],
storageKey: 'vacancyViewOptions'
}
},
recruit.viewlet.TableVacancy
@ -502,7 +503,8 @@ export function createModel (builder: Builder): void {
viewOptions: {
groupBy: [],
orderBy: [],
other: [applicationDoneOption, hideApplicantsFromArchivedVacanciesOption]
other: [applicationDoneOption, hideApplicantsFromArchivedVacanciesOption],
storageKey: 'applicantViewOptions'
}
},
recruit.viewlet.ApplicantTable
@ -559,7 +561,8 @@ export function createModel (builder: Builder): void {
action: view.function.ShowEmptyGroups,
label: view.string.ShowEmptyGroups
}
]
],
storageKey: 'applicantViewOptions'
}
if (colors) {
model.other.push(showColorsViewOption)
@ -784,7 +787,8 @@ export function createModel (builder: Builder): void {
['modifiedOn', SortingOrder.Descending],
['createdOn', SortingOrder.Descending]
],
other: [vacancyHideArchivedOption]
other: [vacancyHideArchivedOption],
storageKey: 'vacancyViewOptions'
}
},
recruit.viewlet.ListVacancy

View File

@ -31,8 +31,8 @@ export function isDropdownType (viewOption: ViewOptionModel): viewOption is Drop
return viewOption.type === 'dropdown'
}
export function makeViewOptionsKey (viewlet: Ref<Viewlet>, variant?: string): string {
const prefix = viewlet + (variant !== undefined ? `-${variant}` : '')
function makeViewOptionsKey (viewlet: Viewlet, variant?: string): string {
const prefix = viewlet.viewOptions?.storageKey ?? viewlet._id + (variant !== undefined ? `-${variant}` : '')
const loc = getCurrentResolvedLocation()
loc.fragment = undefined
loc.query = undefined
@ -40,7 +40,7 @@ export function makeViewOptionsKey (viewlet: Ref<Viewlet>, variant?: string): st
}
export function setViewOptions (viewlet: Viewlet, options: ViewOptions): void {
const key = makeViewOptionsKey(viewlet._id, viewlet.variant)
const key = makeViewOptionsKey(viewlet, viewlet.variant)
localStorage.setItem(key, JSON.stringify(options))
setStore(key, options)
}
@ -52,7 +52,7 @@ function setStore (key: string, options: ViewOptions): void {
}
function _getViewOptions (viewlet: Viewlet, viewOptionStore: Map<string, ViewOptions>): ViewOptions | null {
const key = makeViewOptionsKey(viewlet._id, viewlet.variant)
const key = makeViewOptionsKey(viewlet, viewlet.variant)
const store = viewOptionStore.get(key)
if (store !== undefined) {
return store

View File

@ -794,6 +794,7 @@ export interface ViewOptionsModel {
orderBy: OrderOption[]
other: ViewOptionModel[]
groupDepth?: number
storageKey?: string
}
/**