sync: UI animations, select styling, TLS verify flag via proxy second line, brand spacing

This commit is contained in:
2025-09-14 14:01:25 +03:00
parent 338e65624f
commit 563663f9f1
9 changed files with 255 additions and 48 deletions

View File

@@ -79,6 +79,7 @@
<button class="chip-btn" id="btn-vars">ПЕРЕМЕННЫЕ</button>
<button class="chip-btn" id="btn-scheme" title="Показать мини‑схему">СХЕМА</button>
<button class="chip-btn" id="btn-logs" title="Журнал HTTP запросов/ответов">ЛОГИ</button>
<button class="chip-btn" id="btn-cancel" title="Прервать текущее исполнение пайплайна">СТОП ⏹</button>
<a class="chip-btn" href="/" role="button">ДОМОЙ</a>
</div>
<!-- Danmaku overlay layer -->
@@ -1720,6 +1721,29 @@
loadPipeline();
refreshPresets();
// Wire manual cancel button
try {
const btnCancel = document.getElementById('btn-cancel');
if (btnCancel) {
btnCancel.addEventListener('click', async () => {
try {
btnCancel.disabled = true;
btnCancel.textContent = 'СТОП…';
const res = await fetch('/admin/cancel', { method: 'POST' });
if (res.ok) {
status('Отмена исполнения запрошена');
} else {
status('Ошибка запроса отмены: ' + res.status);
}
} catch (e) {
status('Ошибка запроса отмены');
} finally {
setTimeout(()=>{ try { btnCancel.disabled = false; btnCancel.textContent = 'СТОП ⏹'; } catch(_){} }, 600);
}
});
}
} catch(_) {}
// Run drawer wiring
(function(){
const openBtn = document.getElementById('btn-open-run');
@@ -2923,6 +2947,10 @@ el.style.top = Math.max(2, Math.min(vpH - 24, top)) + 'px';
es.onmessage = (e) => {
try {
const data = JSON.parse(e.data);
// Special handling for manual cancel notification
if (data && data.event === 'cancelled') {
try { status('Исполнение остановлено пользователем'); } catch(_){}
}
handleTraceEvent(data);
handleLogEvent(data);
} catch (_) {