diff --git a/templates/index.html b/templates/index.html
index e857325..7383cf8 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -236,7 +236,7 @@ function parsePrefixAndStrip(line){
}
function ansiToHtml(text){
- const ESC = '\\u001b[';
+ const ESC = '\u001b[';
const parts = text.split(ESC);
if (parts.length === 1) return escapeHtml(text);
let html = escapeHtml(parts[0]);
@@ -360,8 +360,7 @@ function openWs(svc, panel){
ws.onclose = ()=> setWsState(Object.keys(state.open).length? 'on':'off');
ws.onerror = ()=> setWsState('err');
ws.onmessage = (ev)=>{
- const parts = (ev.data||'').split(/
?
-/);
+ const parts = (ev.data||'').split(/\r?\n/);
for (let i=0;i setWsState(Object.keys(state.open).length? 'on':'off');
ws.onerror = ()=> setWsState('err');
ws.onmessage = (ev)=>{
- const parts = (ev.data||'').split(/\\r?\\n/);
+ const parts = (ev.data||'').split(/\r?\n/);
for (let i=0;i {
Object.keys(state.open).forEach(id=>{
const svc = state.services.find(s=> s.id===id);
if (!svc) return;
- const panel = els.grid.querySelector(\`.panel[data-cid="\${id}"]\`);
+ const panel = els.grid.querySelector(`.panel[data-cid="${id}"]`);
if (!panel) return;
state.open[id].logEl.textContent='';
closeWs(id); openWs(svc, panel);
@@ -583,7 +582,7 @@ window.addEventListener('keydown', (e)=>{
if (idx>=0 && idx \`\${s.id}:\${s.service}\`).join(', ');
+ const list = state.services.map(s=> `${s.id}:${s.service}`).join(', ');
const ans = prompt('IDs через запятую:\n'+list);
if (ans) openMulti(ans.split(',').map(x=>x.trim()).filter(Boolean));
}