From 9b2e9ec41a037e6be3789dab076dd109b8862511 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 16 Mar 2020 22:51:54 +0000 Subject: [PATCH] [groups] Support undo of convert to subflow from inside group --- .../@node-red/editor-client/src/js/history.js | 15 +++-- .../@node-red/editor-client/src/js/nodes.js | 2 +- .../editor-client/src/js/ui/group.js | 12 ++-- .../editor-client/src/js/ui/subflow.js | 56 +++++++++++++++++-- .../@node-red/editor-client/src/js/ui/view.js | 2 +- 5 files changed, 70 insertions(+), 17 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 dc7107c30..37a5f2c34 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 @@ -279,7 +279,7 @@ RED.history = (function() { } } if (ev.addToGroup) { - RED.group.removeFromGroup(ev.addToGroup,ev.nodes.map(function(n) { return n.n })); + RED.group.removeFromGroup(ev.addToGroup,ev.nodes.map(function(n) { return n.n }),true); inverseEv.removeFromGroup = ev.addToGroup; } else if (ev.removeFromGroup) { RED.group.addToGroup(ev.removeFromGroup,ev.nodes.map(function(n) { return n.n })); @@ -438,6 +438,9 @@ RED.history = (function() { if (ev.subflow) { RED.nodes.addSubflow(ev.subflow.subflow); inverseEv.subflow = ev.subflow; + if (ev.subflow.subflow.g) { + RED.group.addToGroup(RED.nodes.group(ev.subflow.subflow.g),ev.subflow.subflow); + } } if (ev.subflows) { inverseEv.nodes = []; @@ -465,7 +468,7 @@ RED.history = (function() { RED.nodes.addLink(ev.links[i]); } } - if (ev.createdLinks) { + if (ev.createdLinks) { inverseEv.removedLinks = []; for (i=0;i 0) { n = tmplist.shift(); if (n.type === "group") { + includedGroups.add(n.id); tmplist = tmplist.concat(n.nodes); } nodeList.add(n); @@ -579,7 +581,20 @@ RED.subflow = (function() { nodeList = Array.from(nodeList); + var containingGroup = nodeList[0].g; + var nodesMovedFromGroup = []; + for (i=0; i