diff --git a/packages/node_modules/@node-red/nodes/core/common/21-debug.html b/packages/node_modules/@node-red/nodes/core/common/21-debug.html index a85a4892b..88d51b283 100644 --- a/packages/node_modules/@node-red/nodes/core/common/21-debug.html +++ b/packages/node_modules/@node-red/nodes/core/common/21-debug.html @@ -245,47 +245,37 @@ // complete parentage of the node that generated this message. // flow-id/subflow-A-instance/subflow-B-instance - // If it has one id, that is a top level flow + // If it has one id, that is a top level flow or config node/global // each subsequent id is the instance id of a subflow node // pathParts = o.path.split("/"); if (pathParts.length === 1) { - // The source node is on a flow - so can use its id to find + // The source node is on a flow or is a global/config - so can use its id to find sourceNode = RED.nodes.node(o.id); - if (pathParts[0] === "global") { - pathParts = []; - } } else if (pathParts.length > 1) { // Highlight the subflow instance node. sourceNode = RED.nodes.node(pathParts[1]); } + const getNodeLabel = (n) => n.name || (typeof n.label === "function" && n.label()) || (typeof n.label === "string" && n.label) || (n.type + ":" + n.id); pathHierarchy = pathParts.map((id,index) => { if (index === 0) { - return { - id: id, - label: RED.nodes.workspace(id).label - } + if (id === "global") { + return { id: sourceNode.id, label: getNodeLabel(sourceNode) } + } + return { id: id, label: RED.nodes.workspace(id).label } //flow id + name } else { - var instanceNode = RED.nodes.node(id) - return { - id: id, - label: (instanceNode.name || RED.nodes.subflow(instanceNode.type.substring(8)).name) - } + const instanceNode = RED.nodes.node(id) + const pathLabel = (instanceNode.name || RED.nodes.subflow(instanceNode.type.substring(8)).name) + return { id: id, label: pathLabel } } }) - if (pathParts.length === 1) { - pathHierarchy.push({ - id: o.id, - label: sourceNode.name || sourceNode.type+":"+sourceNode.id - }) + if (pathParts.length === 1 && pathParts[0] !== "global") { + pathHierarchy.push({ id: o.id, label: getNodeLabel(sourceNode) }) } if (o._alias) { let aliasNode = RED.nodes.node(o._alias) if (aliasNode) { - pathHierarchy.push({ - id: o._alias, - label: aliasNode.name || aliasNode.type+":"+aliasNode.id - }) + pathHierarchy.push({ id: o._alias, label: getNodeLabel(aliasNode) }) } } } else {