aboutsummaryrefslogtreecommitdiff
path: root/src/modules/adminSettings.js
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2023-03-27 22:57:50 +0300
committerHenry Jameson <me@hjkos.com>2023-03-27 22:57:50 +0300
commit4c3af5c362574aad4d851990265ebc7252c6f990 (patch)
tree7d934c815717cfe6e2fd3c825b9e2f5350389f9e /src/modules/adminSettings.js
parentdf9fe6d261ca554b8f886e45ccf70b44b47e53f5 (diff)
handle db config disabled case
Diffstat (limited to 'src/modules/adminSettings.js')
-rw-r--r--src/modules/adminSettings.js30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/modules/adminSettings.js b/src/modules/adminSettings.js
index 25fb8e50..fef73974 100644
--- a/src/modules/adminSettings.js
+++ b/src/modules/adminSettings.js
@@ -1,11 +1,13 @@
import { set, get, cloneDeep, differenceWith, isEqual, flatten } from 'lodash'
export const defaultState = {
+ loaded: false,
needsReboot: null,
config: null,
modifiedPaths: null,
descriptions: null,
- draft: null
+ draft: null,
+ dbConfigEnabled: null
}
export const newUserFlags = {
@@ -17,7 +19,13 @@ const adminSettingsStorage = {
...cloneDeep(defaultState)
},
mutations: {
+ setInstanceAdminNoDbConfig (state) {
+ state.loaded = false
+ state.dbConfigEnabled = false
+ },
updateAdminSettings (state, { config, modifiedPaths }) {
+ state.loaded = true
+ state.dbConfigEnabled = true
state.config = config
state.modifiedPaths = modifiedPaths
},
@@ -40,6 +48,26 @@ const adminSettingsStorage = {
}
},
actions: {
+ loadAdminStuff ({ state, rootState, dispatch, commit }) {
+ rootState.api.backendInteractor.fetchInstanceDBConfig()
+ .then(backendDbConfig => {
+ if (backendDbConfig.error) {
+ if (backendDbConfig.error.status === 400) {
+ backendDbConfig.error.json().then(errorJson => {
+ if (/configurable_from_database/.test(errorJson.error)) {
+ commit('setInstanceAdminNoDbConfig')
+ }
+ })
+ }
+ } else {
+ dispatch('setInstanceAdminSettings', { backendDbConfig })
+ }
+ })
+ if (state.descriptions === null) {
+ rootState.api.backendInteractor.fetchInstanceConfigDescriptions()
+ .then(backendDescriptions => this.$store.dispatch('setInstanceAdminDescriptions', { backendDescriptions }))
+ }
+ },
setInstanceAdminSettings ({ state, commit, dispatch }, { backendDbConfig }) {
const config = state.config || {}
const modifiedPaths = new Set()