diff --git a/nodes/core/core/58-debug.html b/nodes/core/core/58-debug.html index daeacf3d1..6f1bbf03d 100644 --- a/nodes/core/core/58-debug.html +++ b/nodes/core/core/58-debug.html @@ -129,9 +129,13 @@ }, onpaletteadd: function() { var content = $("
").css({"position":"relative","height":"100%"}); - var toolbar = $('').appendTo(content); + var toolbar = $('').appendTo(content); var messages = $('
').appendTo(content); + content.i18n(); RED.sidebar.addTab({ id: "debug", @@ -146,7 +150,7 @@ } var sbc = document.getElementById("debug-content"); - + var filter = false; var messageCount = 0; var that = this; RED._debug = function(msg) { @@ -158,11 +162,21 @@ function sanitize(m) { return m.replace(/&/g,"&").replace(//g,">"); } + + var refreshMessageList = function() { + $(".debug-message").each(function() { + $(this).toggleClass('hide',filter&&!$(this).hasClass('debug-message-flow-'+RED.workspaces.active())); + }); + } + this.handleDebugMessage = function(t,o) { var msg = document.createElement("div"); + + var sourceNode = RED.nodes.node(o.id) || RED.nodes.node(o.z); + msg.onmouseover = function() { msg.style.borderRightColor = "#999"; - var n = RED.nodes.node(o.id); + var n = RED.nodes.node(o.id) || RED.nodes.node(o.z); if (n) { n.highlighted = true; n.dirty = true; @@ -171,7 +185,7 @@ }; msg.onmouseout = function() { msg.style.borderRightColor = ""; - var n = RED.nodes.node(o.id); + var n = RED.nodes.node(o.id) || RED.nodes.node(o.z); if (n) { n.highlighted = false; n.dirty = true; @@ -179,7 +193,7 @@ RED.view.redraw(); }; msg.onclick = function() { - var node = RED.nodes.node(o.id); + var node = RED.nodes.node(o.id) || RED.nodes.node(o.z); if (node) { RED.workspaces.show(node.z); } @@ -192,7 +206,8 @@ var payload = sanitize((o.msg||"").toString()); var format = sanitize((o.format||"").toString()); - msg.className = 'debug-message'+(o.level?(' debug-message-level-'+o.level):''); + msg.className = 'debug-message'+(o.level?(' debug-message-level-'+o.level):'') + + ((sourceNode&&sourceNode.z)?((" debug-message-flow-"+sourceNode.z+((filter&&(RED.workspaces.active()!==sourceNode.z))?" hide":""))):""); msg.innerHTML = ''+ getTimestamp()+''+ (name?''+name:'')+ @@ -238,10 +253,31 @@ }); RED.view.redraw(); }); + $('#debug-tab-filter-all').on("click",function(e) { + e.preventDefault(); + if (filter) { + $(this).addClass('selected'); + $('#debug-tab-filter-current').removeClass('selected'); + filter = !filter; + refreshMessageList(); + } + }); + $('#debug-tab-filter-current').on("click",function(e) { + e.preventDefault(); + if (!filter) { + $(this).addClass('selected'); + $('#debug-tab-filter-all').removeClass('selected'); + filter = !filter; + refreshMessageList(); + } + }); + RED.events.on("workspace:change", refreshMessageList); + }, onpaletteremove: function() { RED.comms.unsubscribe("debug",this.handleDebugMessage); RED.sidebar.removeTab("debug"); + RED.events.off("workspace:change", refreshMessageList); delete RED._debug; }, oneditprepare: oneditprepare diff --git a/nodes/core/core/58-debug.js b/nodes/core/core/58-debug.js index e0bae3ca1..53f56eb06 100644 --- a/nodes/core/core/58-debug.js +++ b/nodes/core/core/58-debug.js @@ -69,7 +69,7 @@ module.exports = function(RED) { } } if (this.active) { - sendDebug({id:this.id,name:this.name,topic:msg.topic,property:property,msg:output,_path:msg._path}); + sendDebug({id:this.id,z:this.z,name:this.name,topic:msg.topic,property:property,msg:output,_path:msg._path}); } } }); diff --git a/nodes/core/locales/en-US/messages.json b/nodes/core/locales/en-US/messages.json index 3e81e5632..c8c6bff1d 100644 --- a/nodes/core/locales/en-US/messages.json +++ b/nodes/core/locales/en-US/messages.json @@ -111,7 +111,9 @@ }, "sidebar": { "label": "debug", - "name": "Debug messages" + "name": "Debug messages", + "filterAll": "all flows", + "filterCurrent": "current flow" } }, "link": {