86 lines
2.0 KiB
JavaScript
86 lines
2.0 KiB
JavaScript
import {defineStore} from 'pinia'
|
|
|
|
// @ts-ignore
|
|
export const useTempStore = defineStore('temp', () => {
|
|
|
|
const auth = useAuthStore()
|
|
|
|
const searchStrings = ref({})
|
|
const filters = ref({})
|
|
const columns = ref({})
|
|
const pages = ref({})
|
|
const settings = ref({})
|
|
|
|
const storeTempConfig = async () => {
|
|
const config = {
|
|
searchStrings: searchStrings.value,
|
|
columns: columns.value,
|
|
pages: pages.value,
|
|
settings: settings.value,
|
|
filters: filters.value
|
|
}
|
|
|
|
await useNuxtApp().$api(`/api/profiles/${auth.profile.id}`,{
|
|
method: 'PUT',
|
|
body: {temp_config: config}
|
|
})
|
|
}
|
|
|
|
function setStoredTempConfig (config) {
|
|
searchStrings.value = config.searchStrings
|
|
columns.value = config.columns
|
|
pages.value = config.pages
|
|
settings.value = config.settings
|
|
filters.value = config.filters || {}
|
|
}
|
|
|
|
function modifySearchString(type,input) {
|
|
searchStrings.value[type] = input
|
|
storeTempConfig()
|
|
}
|
|
|
|
function clearSearchString(type) {
|
|
searchStrings.value[type] = ""
|
|
storeTempConfig()
|
|
}
|
|
|
|
function modifyFilter(domain,type,input) {
|
|
if(!filters.value[domain]) filters.value[domain] = {}
|
|
|
|
filters.value[domain][type] = input
|
|
storeTempConfig()
|
|
}
|
|
|
|
function modifyColumns(type,input) {
|
|
columns.value[type] = input
|
|
storeTempConfig()
|
|
}
|
|
|
|
function modifyPages(type,input) {
|
|
pages.value[type] = input
|
|
storeTempConfig()
|
|
}
|
|
|
|
function modifySettings(type,input) {
|
|
settings.value[type] = input
|
|
storeTempConfig()
|
|
}
|
|
|
|
|
|
return {
|
|
setStoredTempConfig,
|
|
searchStrings,
|
|
modifySearchString,
|
|
clearSearchString,
|
|
filters,
|
|
modifyFilter,
|
|
columns,
|
|
modifyColumns,
|
|
modifyPages,
|
|
pages,
|
|
modifySettings,
|
|
settings
|
|
}
|
|
|
|
|
|
}) |