No inline JS/styles in templates: app.js delegation (data-action/data-modal/data-confirm/data-auto-submit), B3 confirm/alert dialogs, theme-init file
This commit is contained in:
@@ -520,7 +520,10 @@ function openVariant(btn) {
|
||||
fetch('/admin/labs/' + encodeURIComponent(lab) + '/schema')
|
||||
.then(function (r) { return r.ok && !r.redirected ? r.json() : { levels: [] }; })
|
||||
.catch(function () {
|
||||
alert('Не удалось загрузить уровни и варианты (возможно, сессия истекла). Обновите страницу и откройте модалку заново.');
|
||||
window.showAlert({
|
||||
title: 'Не удалось открыть',
|
||||
text: 'Не удалось загрузить уровни и варианты (возможно, сессия истекла). Обновите страницу и откройте модалку заново.'
|
||||
});
|
||||
return { levels: [] };
|
||||
})
|
||||
.then(function (data) {
|
||||
@@ -637,14 +640,21 @@ window.openLabAssign = function (btn) {
|
||||
window.confirmAssignVariant = function (sel) {
|
||||
var opt = sel.selectedOptions[0];
|
||||
var taken = opt ? parseInt(opt.getAttribute('data-taken') || '0', 10) : 0;
|
||||
var submit = function () {
|
||||
sel.dataset.prev = sel.value;
|
||||
sel.closest('form').requestSubmit();
|
||||
};
|
||||
if (opt && opt.value && taken > 0 && sel.value !== sel.dataset.prev) {
|
||||
if (!confirm('Вариант уже занят (' + taken + '). Назначить всё равно?')) {
|
||||
sel.value = sel.dataset.prev;
|
||||
return;
|
||||
}
|
||||
window.showConfirm({
|
||||
text: 'Вариант уже занят (' + taken + '). Назначить всё равно?',
|
||||
okText: 'Назначить'
|
||||
}).then(function (ok) {
|
||||
if (ok) submit();
|
||||
else sel.value = sel.dataset.prev;
|
||||
});
|
||||
return;
|
||||
}
|
||||
sel.dataset.prev = sel.value;
|
||||
sel.closest('form').requestSubmit();
|
||||
submit();
|
||||
};
|
||||
|
||||
/* Формы внутри модалки сохраняются через fetch — модалка не закрывается и обновляется */
|
||||
|
||||
Reference in New Issue
Block a user