// utils.js — общие хелперы: _esc, busy lock, validateJson, лог-панель function _esc(s){ /* HTML-экранирование: " → " & → & < → < */ return String(s||'').replace(/&/g,'&').replace(/"/g,'"').replace(/{ const el=document.getElementById('log-panel'); if(!el||el.style.display==='none') return; try{ const r=await fetch('/api/log'); const lines=await r.json(); el.innerHTML=lines.map(l=>`
${_esc(l)}
`).join(''); el.scrollTop=el.scrollHeight; }catch(e){} },2000); } function toggleLog(){ const el=document.getElementById('log-panel'); if(!el) return; if(el.style.display==='none'){ el.style.display='block'; startLogPoll(); } else el.style.display='none'; }