29 lines
1.6 KiB
Django/Jinja
29 lines
1.6 KiB
Django/Jinja
{% 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 %} |