From 7f6d912010dc22ab658cc2b7d7ef7341f91cb735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Wed, 24 Jun 2026 19:47:34 +0400 Subject: [PATCH] =?UTF-8?q?v1.0.177:=20=D0=93=D0=BE=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=D0=BE=20=E2=86=92=20span,=20=D0=BD=D0=B5=20=D0=BA=D0=BD=D0=BE?= =?UTF-8?q?=D0=BF=D0=BA=D0=B0=20=E2=80=94=20=D0=BD=D0=B5=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B7=D0=B0=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D1=82=D0=B8=D1=82=D1=8C=20=D1=81=D1=80=D0=B0=D0=B2=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/app.js | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/deploy/app.js b/deploy/app.js index 39db311..be12cc9 100644 --- a/deploy/app.js +++ b/deploy/app.js @@ -423,7 +423,6 @@ async function loadGroups() { // Один обработчик на все кнопки сравнения diffBody.querySelectorAll('.cmp-btn').forEach(function(btn) { btn.addEventListener('click', function() { - if (this.getAttribute('data-done') === '1') return; var gi = parseInt(this.getAttribute('data-gi')); runCompareForGroup(gi, this); }); @@ -445,11 +444,19 @@ window.runCompareForGroup = async function(gi, btn) { // Свернуть все раскрытые сравнения document.querySelectorAll('.cmp-body').forEach(function(el) { el.style.display = 'none'; }); - document.querySelectorAll('.cmp-btn').forEach(function(b) { - b.disabled = false; - b.removeAttribute('data-done'); - b.innerHTML = '▶ Сравнить эту группу'; - b.style.background = ''; b.style.color = ''; b.style.borderColor = ''; b.style.cursor = ''; + document.querySelectorAll('.cmp-done').forEach(function(span) { + // Заменить span обратно на кнопку + var newBtn = document.createElement('button'); + newBtn.className = 'btn btn-primary cmp-btn'; + newBtn.setAttribute('data-gi', span.getAttribute('data-gi')); + newBtn.textContent = '▶ Сравнить эту группу'; + newBtn.style.cssText = 'margin-top:6px;font-size:12px;height:28px;'; + newBtn.addEventListener('click', function() { + if (this.getAttribute('data-done') === '1') return; + var gi = parseInt(this.getAttribute('data-gi')); + runCompareForGroup(gi, this); + }); + span.parentNode.replaceChild(newBtn, span); }); btn.disabled = true; @@ -529,13 +536,13 @@ window.runCompareForGroup = async function(gi, btn) { es.close(); _activeCompareES = null; statusEl.textContent = '✓ ' + d.total_time_s + 'с'; statusEl.style.color = 'var(--green)'; - btn.innerHTML = '✓ Готово (' + d.total_time_s + 'с)'; - btn.style.background = 'var(--green)'; - btn.style.color = '#fff'; - btn.style.borderColor = 'var(--green)'; - btn.style.cursor = 'default'; - btn.disabled = true; - btn.setAttribute('data-done', '1'); + // Заменить кнопку на неактивный span — нельзя перезапустить + var span = document.createElement('span'); + span.className = 'cmp-done'; + span.setAttribute('data-gi', gi); + 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); stepDone('stepCompare'); } else if (d.type === 'error') {