From 3b12076d4bc8f42c3f824ef0be466649f1b4de39 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Sat, 3 Mar 2018 22:41:02 +0000 Subject: [PATCH] Ignore subflow debug nodes when building filter Fixes #1660 As the editor doesn't know the ids of subflow instance debug nodes there's no easy way to build a list of them as part of the filter options. So for now, disable the filter option if we don't know about the debug node. --- nodes/core/core/lib/debug/debug-utils.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/nodes/core/core/lib/debug/debug-utils.js b/nodes/core/core/lib/debug/debug-utils.js index 0c30d3ab9..ffb1c53f3 100644 --- a/nodes/core/core/lib/debug/debug-utils.js +++ b/nodes/core/core/lib/debug/debug-utils.js @@ -222,7 +222,6 @@ RED.debug = (function() { clearMessageList(false); }); - return { content: content, footer: footerToolbar @@ -238,6 +237,9 @@ RED.debug = (function() { workspaceOrder.forEach(function(ws,i) { workspaceOrderMap[ws] = i; }); + candidateNodes = candidateNodes.filter(function(node) { + return workspaceOrderMap.hasOwnProperty(node.z); + }) candidateNodes.sort(function(A,B) { var wsA = workspaceOrderMap[A.z]; var wsB = workspaceOrderMap[B.z]; @@ -339,7 +341,7 @@ RED.debug = (function() { activeMenuMessage.clearPinned(); }}, null, - {id:"debug-message-menu-item-filter",label:RED._("node-red:debug.messageMenu.filterNode"),onselect:function(){ + {id:"debug-message-menu-item-filter", label:RED._("node-red:debug.messageMenu.filterNode"),onselect:function(){ var candidateNodes = RED.nodes.filterNodes({type:'debug'}); candidateNodes.forEach(function(n) { filteredNodes[n.id] = true; @@ -361,6 +363,15 @@ RED.debug = (function() { menuOptionMenu.on('mouseup', function() { $(this).hide() }); menuOptionMenu.appendTo("body"); } + + var filterOptionDisabled = false; + var sourceNode = RED.nodes.node(sourceId); + if (sourceNode && sourceNode.type !== 'debug') { + filterOptionDisabled = true; + } + RED.menu.setDisabled('debug-message-menu-item-filter',filterOptionDisabled); + RED.menu.setDisabled('debug-message-menu-item-clear-filter',filterOptionDisabled); + var elementPos = button.offset(); menuOptionMenu.css({ top: elementPos.top+"px",