parent
55ea6df40b
commit
9632b77786
@ -0,0 +1,48 @@
|
||||
import { set, cloneDeep } from 'lodash'
|
||||
|
||||
export const defaultState = {
|
||||
needsReboot: null,
|
||||
config: null,
|
||||
modifiedPaths: null
|
||||
}
|
||||
|
||||
export const newUserFlags = {
|
||||
...defaultState.flagStorage
|
||||
}
|
||||
|
||||
const serverSideStorage = {
|
||||
state: {
|
||||
...cloneDeep(defaultState)
|
||||
},
|
||||
mutations: {
|
||||
updateAdminSettings (state, { config, modifiedPaths }) {
|
||||
state.config = config
|
||||
state.modifiedPaths = modifiedPaths
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
setInstanceAdminSettings ({ state, commit, dispatch }, { backendDbConfig }) {
|
||||
const config = {}
|
||||
const modifiedPaths = new Set()
|
||||
backendDbConfig.configs.forEach(c => {
|
||||
const path = c.group + '.' + c.key
|
||||
if (c.db) {
|
||||
c.db.forEach(x => modifiedPaths.add(path + '.' + x))
|
||||
}
|
||||
const convert = (value) => {
|
||||
if (Array.isArray(value) && value.length > 0 && value[0].tuple) {
|
||||
return value.reduce((acc, c) => {
|
||||
return { ...acc, [c.tuple[0]]: convert(c.tuple[1]) }
|
||||
}, {})
|
||||
} else {
|
||||
return value
|
||||
}
|
||||
}
|
||||
set(config, path, convert(c.value))
|
||||
})
|
||||
commit('updateAdminSettings', { config, modifiedPaths })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default serverSideStorage
|
Loading…
Reference in new issue