Files
FEDEO/frontend/stores/temp.js
2026-01-06 12:09:31 +01:00

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
}
})