From 46ef63fb9f3c2688118a9d1511293128cfdfe4c9 Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Sun, 10 Jan 2021 02:04:35 +0200 Subject: feat: add dynamic settings page rendering based on the Joi object --- src/site/store/admin.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js index 0d0360b..e84a2b1 100644 --- a/src/site/store/admin.js +++ b/src/site/store/admin.js @@ -12,7 +12,8 @@ export const state = () => ({ }, file: {}, settings: {}, - statistics: {} + statistics: {}, + settingsSchema: {} }); export const actions = { @@ -25,10 +26,16 @@ export const actions = { async fetchStatistics({ commit }, category) { const url = category ? `service/statistics/${category}` : 'service/statistics'; const response = await this.$axios.$get(url); - commit('setStatistics', { statistics: response.statistics, category: category }); + commit('setStatistics', { statistics: response.statistics, category }); return response; }, + async getSettingsSchema({ commit }) { + // XXX: Maybe move to the config store? + const response = await this.$axios.$get('service/config/schema'); + + commit('setSettingsSchema', response); + }, async fetchUsers({ commit }) { const response = await this.$axios.$get('admin/users'); commit('setUsers', response); @@ -104,6 +111,9 @@ export const mutations = { state.statistics = statistics; } }, + setSettingsSchema(state, { schema }) { + state.settingsSchema = schema; + }, setUsers(state, { users }) { state.users = users; }, -- cgit v1.2.3 From dc4f3a6557cc5f4ddf3d9a9bc8fad4f3bdc40c72 Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Mon, 11 Jan 2021 18:57:19 +0200 Subject: fix: sections not rendering --- src/site/store/admin.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js index e84a2b1..72cd919 100644 --- a/src/site/store/admin.js +++ b/src/site/store/admin.js @@ -13,7 +13,10 @@ export const state = () => ({ file: {}, settings: {}, statistics: {}, - settingsSchema: {} + settingsSchema: { + type: null, + keys: {} + } }); export const actions = { -- cgit v1.2.3 From 334c3d1c34ce9261401fd1ab62ad2de8d561cc06 Mon Sep 17 00:00:00 2001 From: Pitu Date: Thu, 17 Jun 2021 00:51:09 +0900 Subject: feat: make frontend use database settings --- src/site/store/admin.js | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js index 4f814b5..51213b7 100644 --- a/src/site/store/admin.js +++ b/src/site/store/admin.js @@ -11,7 +11,6 @@ export const state = () => ({ files: [] }, file: {}, - settings: {}, statistics: {}, settingsSchema: { type: null, @@ -20,12 +19,6 @@ export const state = () => ({ }); export const actions = { - async fetchSettings({ commit }) { - const response = await this.$axios.$get('service/config'); - commit('setSettings', response); - - return response; - }, async fetchStatistics({ commit }, category) { const url = category ? `service/statistics/${category}` : 'service/statistics'; const response = await this.$axios.$get(url); @@ -105,9 +98,6 @@ export const actions = { }; export const mutations = { - setSettings(state, { config }) { - state.settings = config; - }, setStatistics(state, { statistics, category }) { if (category) { state.statistics[category] = statistics[category]; -- cgit v1.2.3 From 30808a3574bec0c3c9c240833d2fa78715862422 Mon Sep 17 00:00:00 2001 From: Pitu Date: Thu, 17 Jun 2021 03:39:58 +0900 Subject: feat: fetch all settings if admin --- src/site/store/admin.js | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js index 51213b7..9399345 100644 --- a/src/site/store/admin.js +++ b/src/site/store/admin.js @@ -11,6 +11,7 @@ export const state = () => ({ files: [] }, file: {}, + settings: {}, statistics: {}, settingsSchema: { type: null, @@ -19,6 +20,12 @@ export const state = () => ({ }); export const actions = { + async fetchSettings({ commit }) { + const response = await this.$axios.$get('service/config/all'); + commit('setSettings', response); + + return response; + }, async fetchStatistics({ commit }, category) { const url = category ? `service/statistics/${category}` : 'service/statistics'; const response = await this.$axios.$get(url); @@ -105,6 +112,9 @@ export const mutations = { state.statistics = statistics; } }, + setSettings(state, { config }) { + state.settings = config; + }, setSettingsSchema(state, { schema }) { state.settingsSchema = schema; }, -- cgit v1.2.3 From 6fe5055e9d62a6ae06128bf61a55960537e02091 Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Thu, 17 Jun 2021 01:13:15 +0300 Subject: feat: show setting values on the settings page and implement sending to backend (no saving yet) --- src/site/store/admin.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js index 9399345..0f946e9 100644 --- a/src/site/store/admin.js +++ b/src/site/store/admin.js @@ -26,6 +26,12 @@ export const actions = { return response; }, + async saveSettings({ commit }, settings) { + const response = await this.$axios.$post('service/config', { settings }); + commit('setSettings', response); + + return response; + }, async fetchStatistics({ commit }, category) { const url = category ? `service/statistics/${category}` : 'service/statistics'; const response = await this.$axios.$get(url); @@ -148,5 +154,12 @@ export const mutations = { state.user.isAdmin = isAdmin; } } + }, + populateSchemaWithValues({ settings, settingsSchema }) { + for (const [key, value] of Object.entries(settings)) { + if (settingsSchema.keys?.[key] !== undefined) { + settingsSchema.keys[key].value = value; + } + } } }; -- cgit v1.2.3 From 0cae7e9eda3b62c17cfa7ec620913f4a504bc5ee Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Thu, 17 Jun 2021 16:06:53 +0300 Subject: feat: show validation errors from joi on the frontend --- src/site/store/admin.js | 1 - 1 file changed, 1 deletion(-) (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js index 0f946e9..9b1d591 100644 --- a/src/site/store/admin.js +++ b/src/site/store/admin.js @@ -28,7 +28,6 @@ export const actions = { }, async saveSettings({ commit }, settings) { const response = await this.$axios.$post('service/config', { settings }); - commit('setSettings', response); return response; }, -- cgit v1.2.3