v1.0.177: блокировка ВСЕХ кнопок сравнения пока идёт процесс

This commit is contained in:
2026-06-24 19:52:23 +04:00
parent 7f6d912010
commit 0562c16897
+9 -1
View File
@@ -461,6 +461,8 @@ window.runCompareForGroup = async function(gi, btn) {
btn.disabled = true;
btn.innerHTML = '<span class="spinner"></span> Применяю...';
// Заблокировать ВСЕ кнопки сравнения пока идёт процесс
document.querySelectorAll('.cmp-btn').forEach(function(b) { b.disabled = true; });
var ar = await fetch(VM_API + '/api/apply-groups', {
method: 'POST',
@@ -469,7 +471,9 @@ window.runCompareForGroup = async function(gi, btn) {
});
var ad = await ar.json();
if (!ad.ok || !ad.contract_ids || !ad.contract_ids.length) {
btn.innerHTML = '✗ ошибка'; btn.disabled = false; return;
btn.innerHTML = '✗ ошибка'; btn.disabled = false;
document.querySelectorAll('.cmp-btn').forEach(function(b) { b.disabled = false; });
return;
}
var cid = ad.contract_ids[0];
@@ -543,6 +547,8 @@ window.runCompareForGroup = async function(gi, btn) {
span.textContent = '✓ Готово (' + d.total_time_s + 'с)';
span.style.cssText = 'display:inline-block;margin-top:6px;font-size:12px;height:28px;line-height:28px;padding:0 12px;background:var(--green);color:#fff;border-radius:6px;';
btn.parentNode.replaceChild(span, btn);
// Разблокировать остальные кнопки
document.querySelectorAll('.cmp-btn').forEach(function(b) { b.disabled = false; });
stepDone('stepCompare');
}
else if (d.type === 'error') {
@@ -550,12 +556,14 @@ window.runCompareForGroup = async function(gi, btn) {
es.close(); _activeCompareES = null;
cmpBody.innerHTML += '<div style="color:var(--destructive);">✗ ' + d.message + '</div>';
btn.innerHTML = '✗'; btn.disabled = false;
document.querySelectorAll('.cmp-btn').forEach(function(b) { b.disabled = false; });
}
};
es.onerror = function() {
clearInterval(_activeCompareTimer); _activeCompareTimer = null;
es.close(); _activeCompareES = null;
btn.innerHTML = '✗ соединение'; btn.disabled = false;
document.querySelectorAll('.cmp-btn').forEach(function(b) { b.disabled = false; });
};
};