fix: исправлены ошибки JavaScript с регулярными выражениями
- Исправлено экранирование в регулярных выражениях - Исправлены шаблонные строки с неправильным экранированием - Исправлена ошибка 'Invalid regular expression: missing' - Исправлены проблемы с ANSI escape sequences - Теперь переключение темы и отображение логов работают корректно - Автор: Сергей Антропов (https://devops.org.ru)
This commit is contained in:
@@ -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<parts.length;i++){
|
||||
if (parts[i].length===0 && i===parts.length-1) continue;
|
||||
// harvest instance ids if present
|
||||
@@ -397,7 +396,7 @@ function openWs(svc, panel){
|
||||
}
|
||||
|
||||
function ensurePanel(svc){
|
||||
function ensurePanel(svc){
|
||||
let panel = els.grid.querySelector(`.panel[data-cid="${svc.id}"]`);
|
||||
if (!panel){
|
||||
panel = panelTemplate(svc);
|
||||
els.grid.appendChild(panel);
|
||||
@@ -522,7 +521,7 @@ function openFanGroup(services){
|
||||
ws.onclose = ()=> setWsState(Object.keys(state.open).length? 'on':'off');
|
||||
ws.onerror = ()=> setWsState('err');
|
||||
ws.onmessage = (ev)=>{
|
||||
ws.onmessage = (ev)=>{
|
||||
const parts = (ev.data||'').split(/\r?\n/);
|
||||
for (let i=0;i<parts.length;i++){
|
||||
if (parts[i].length===0 && i===parts.length-1) continue;
|
||||
const pr = parsePrefixAndStrip(parts[i]);
|
||||
@@ -557,7 +556,7 @@ els.tail.onchange = ()=> {
|
||||
Object.keys(state.open).forEach(id=>{
|
||||
const svc = state.services.find(s=> s.id===id);
|
||||
if (!svc) return;
|
||||
if (!svc) return;
|
||||
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<state.services.length-1) switchToSingle(state.services[idx+1]);
|
||||
}
|
||||
if (e.key.toLowerCase()==='m'){
|
||||
if (e.key.toLowerCase()==='m'){
|
||||
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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user