From 1a873b8389b3772585842e051bac8a6df9930c1e Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Thu, 19 Jun 2025 15:17:56 +0100 Subject: [PATCH] Add event-log widget to status bar --- .../editor-client/src/js/ui/event-log.js | 34 ++++++++++++++++--- .../node_modules/@node-red/util/lib/exec.js | 2 +- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/event-log.js b/packages/node_modules/@node-red/editor-client/src/js/ui/event-log.js index 54ed0a27b..a641740f6 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/event-log.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/event-log.js @@ -15,11 +15,14 @@ **/ RED.eventLog = (function() { - var template = ''; + const template = ''; + + let eventLogEditor; + let backlog = []; + let shown = false; + + const activeLogs = new Set() - var eventLogEditor; - var backlog = []; - var shown = false; function appendLogLine(line) { backlog.push(line); @@ -38,6 +41,18 @@ RED.eventLog = (function() { init: function() { $(template).appendTo("#red-ui-editor-node-configs"); RED.actions.add("core:show-event-log",RED.eventLog.show); + + const statusWidget = $(''); + statusWidget.on("click", function(evt) { + RED.actions.invoke("core:show-event-log"); + }) + RED.statusBar.add({ + id: "red-ui-event-log-status", + align: "right", + element: statusWidget + }); + // RED.statusBar.hide("red-ui-event-log-status"); + }, show: function() { if (shown) { @@ -98,6 +113,12 @@ RED.eventLog = (function() { }, log: function(id,payload) { var ts = (new Date(payload.ts)).toISOString()+" "; + if (!payload.end) { + activeLogs.add(id) + } else { + activeLogs.delete(id); + } + if (payload.type) { ts += "["+payload.type+"] " } @@ -111,6 +132,11 @@ RED.eventLog = (function() { appendLogLine(ts+line); }) } + if (activeLogs.size > 0) { + RED.statusBar.show("red-ui-event-log-status"); + } else { + RED.statusBar.hide("red-ui-event-log-status"); + } }, startEvent: function(name) { backlog.push(""); diff --git a/packages/node_modules/@node-red/util/lib/exec.js b/packages/node_modules/@node-red/util/lib/exec.js index c7197ef65..15b81aa89 100644 --- a/packages/node_modules/@node-red/util/lib/exec.js +++ b/packages/node_modules/@node-red/util/lib/exec.js @@ -78,7 +78,7 @@ module.exports = { stdout: stdout, stderr: stderr } - emit && events.emit("event-log", {id:invocationId,payload:{ts: Date.now(),data:"rc="+code}}); + emit && events.emit("event-log", {id:invocationId,payload:{ts: Date.now(), data:"rc="+code, end: true}}); if (code === 0) { resolve(result)