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) }) }