diff --git a/app/src/i18n/locales/en.json b/app/src/i18n/locales/en.json
index 58d3e07e..06b3039d 100644
--- a/app/src/i18n/locales/en.json
+++ b/app/src/i18n/locales/en.json
@@ -455,7 +455,7 @@
"update": "Update user '{name}'"
},
"settings": {
- "update": "Update global settings"
+ "update": "Update '{panel}' global settings panel"
}
},
"run": "Run",
diff --git a/app/src/views/tool/ToolSettings.vue b/app/src/views/tool/ToolSettings.vue
index 8cf6dfa6..4fb99059 100644
--- a/app/src/views/tool/ToolSettings.vue
+++ b/app/src/views/tool/ToolSettings.vue
@@ -3,7 +3,7 @@
:queries="queries" @queries-response="onQueriesResponse"
ref="view" skeleton="card-form-skeleton"
>
-
+
@@ -39,23 +39,21 @@ export default {
this.config = formatYunoHostConfigPanels(config)
},
- async applyConfig (id_) {
- const formatedData = await formatFormData(
- this.config.forms[id_],
- { removeEmpty: false, removeNull: true, multipart: false }
- )
+ async onConfigSubmit ({ id, form }) {
+ const args = await formatFormData(form, { removeEmpty: false, removeNull: true })
+ // FIXME no route for potential action
api.put(
- 'settings',
- { key: id_, args: objectToParams(formatedData) },
- { key: 'settings.update', name: this.name }
+ `settings/${id}`,
+ { args: objectToParams(args) },
+ { key: 'settings.update', panel: id }
).then(() => {
this.$refs.view.fetchQueries({ triggerLoading: true })
}).catch(err => {
if (err.name !== 'APIBadRequestError') throw err
- const panel = this.config.panels.find(({ id }) => id_ === id)
+ const panel = this.config.panels.find(panel => panel.id === id)
if (err.data.name) {
- this.config.errors[id_][err.data.name].message = err.message
+ this.config.errors[id][err.data.name].message = err.message
} else this.$set(panel, 'serverError', err.message)
})
}