{% for g in paramGroups %} settingsSubmit{{ g['group'] | title }}() { if (this.submitStatus.{{ g['group'] }}) { return } {% if g['group'] in dangerousParamGroups %} { if (!confirm("{{ dangerousParamGroups[g['group']] }}")) return } {% endif %} let query = { {% for p in g['params'] %} "{{ p['name'] }}": this.param{{ g['group'] | title }}.{{ p['name'] }}, {% endfor %} } this.submitStatus.{{ g['group'] }} = true fetch('/api/set/{{ g["group"] }}', {method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(query), credentials: 'same-origin' }) .then(async (resp) => { let vals = await resp.json(); if (vals['status'] !== 'ok') { throw new Error(vals['error'] ? vals['error'] : "Server returns undefined error") } this.update{{ g['group'] | title }}Settings(vals) }) .catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) }) .finally(() => { this.submitStatus.{{ g['group'] }} = false }) }, {% endfor %} {% for g in paramGroups %} update{{ g['group'] | title }}Settings(vals) { this.submitStatus.{{ g['group'] }} = false {% for p in g['params'] %} this.param{{ g['group'] | title }}.{{ p['name'] }} = vals["settings"]["{{ p['name'] }}"] {% endfor %} }, {% endfor %}