aboutsummaryrefslogtreecommitdiff
path: root/src/site/pages/dashboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/site/pages/dashboard')
-rw-r--r--src/site/pages/dashboard/admin/settings.vue23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/site/pages/dashboard/admin/settings.vue b/src/site/pages/dashboard/admin/settings.vue
index 7346729..51e5ea8 100644
--- a/src/site/pages/dashboard/admin/settings.vue
+++ b/src/site/pages/dashboard/admin/settings.vue
@@ -15,7 +15,7 @@
<h5 class="title is-5 has-text-grey-lighter">
{{ sectionName }}
</h5>
- <JoiObject ref="jois" :settings="fields" />
+ <JoiObject ref="jois" :settings="fields" :errors="validationErrors" />
</div>
<div class="mb2 mt2 text-center">
@@ -42,6 +42,11 @@ export default {
JoiObject
},
middleware: ['auth', 'admin'],
+ data() {
+ return {
+ validationErrors: {}
+ };
+ },
computed: {
...mapState({
settings: state => state.admin.settings,
@@ -74,16 +79,24 @@ export default {
onConfirm: () => this.saveSettings()
});
},
- saveSettings() {
+ async saveSettings() {
// handle refs
let settings = {};
for (const joiComponent of this.$refs.jois) {
settings = { ...settings, ...joiComponent.getValues() };
}
- this.$handler.executeAction('admin/saveSettings', settings);
- // restart service
- // this.$handler.executeAction('admin/restartService');
+ try {
+ await this.$store.dispatch('admin/saveSettings', settings);
+ this.$set(this, 'validationErrors', {});
+
+ await this.$store.dispatch('config/fetchSettings');
+ this.$handler.executeAction('admin/restartService');
+ } catch (e) {
+ if (e.response?.data?.errors) {
+ this.$set(this, 'validationErrors', e.response.data.errors);
+ }
+ }
}
},
head() {