From 83df61018f2daac10661475227f834ea965783fb Mon Sep 17 00:00:00 2001 From: GogoVega <92022724+GogoVega@users.noreply.github.com> Date: Mon, 22 Sep 2025 09:53:09 +0200 Subject: [PATCH 1/2] Fix undo node output changes inside a Subflow --- .../node_modules/@node-red/editor-client/src/js/ui/editor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js index 70963e389..f804e6de2 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js @@ -1179,7 +1179,7 @@ RED.editor = (function() { if (editState.outputMap) { historyEvent.outputMap = editState.outputMap; } - if (subflowInstances) { + if (subflowInstances && subflowInstances.length) { historyEvent.subflow = { instances:subflowInstances } From cad105bbd1703a647a28cfa0d2b65a5d39840019 Mon Sep 17 00:00:00 2001 From: GogoVega <92022724+GogoVega@users.noreply.github.com> Date: Mon, 22 Sep 2025 10:33:22 +0200 Subject: [PATCH 2/2] Fix undo node output changes if instances exist --- .../@node-red/editor-client/src/js/history.js | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/history.js b/packages/node_modules/@node-red/editor-client/src/js/history.js index 8b9601fa6..142606822 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/history.js +++ b/packages/node_modules/@node-red/editor-client/src/js/history.js @@ -582,22 +582,23 @@ RED.history = (function() { RED.editor.updateNodeProperties(n); RED.editor.validateNode(n); }); - } else { - var outputMap; - if (ev.outputMap) { - outputMap = {}; - inverseEv.outputMap = {}; - for (var port in ev.outputMap) { - if (ev.outputMap.hasOwnProperty(port) && ev.outputMap[port] !== "-1") { - outputMap[ev.outputMap[port]] = port; - inverseEv.outputMap[ev.outputMap[port]] = port; - } + } + + let outputMap; + if (ev.outputMap) { + outputMap = {}; + inverseEv.outputMap = {}; + for (var port in ev.outputMap) { + if (ev.outputMap.hasOwnProperty(port) && ev.outputMap[port] !== "-1") { + outputMap[ev.outputMap[port]] = port; + inverseEv.outputMap[ev.outputMap[port]] = port; } } - ev.node.__outputs = inverseEv.changes.outputs; - RED.editor.updateNodeProperties(ev.node,outputMap); - RED.editor.validateNode(ev.node); } + ev.node.__outputs = inverseEv.changes.outputs; + RED.editor.updateNodeProperties(ev.node,outputMap); + RED.editor.validateNode(ev.node); + // If it's a Config Node, validate user nodes too. // NOTE: The Config Node must be validated before validating users. if (ev.node.users) {