From 9a0c843f29393e7bd871bd88aecbdc71f9114712 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Thu, 5 Mar 2020 22:49:31 +0000 Subject: [PATCH] [groups] Support deleting groups as part of selection --- .../node_modules/@node-red/editor-client/src/js/nodes.js | 9 +++++++++ .../@node-red/editor-client/src/js/ui/group.js | 4 ---- .../@node-red/editor-client/src/js/ui/view.js | 4 ++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js index fdd6886d1..5c0004d8c 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js +++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js @@ -1455,6 +1455,15 @@ RED.nodes = (function() { function removeGroup(group) { var i = groupsByZ[group.z].indexOf(group); groupsByZ[group.z].splice(i,1); + + if (group.g) { + if (groups[group.g]) { + var index = groups[group.g].nodes.indexOf(group); + groups[group.g].nodes.splice(index,1); + groups[group.g].dirty = true; + } + } + delete groups[group.id]; } diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/group.js b/packages/node_modules/@node-red/editor-client/src/js/ui/group.js index 22deb3f32..e4aaf699e 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/group.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/group.js @@ -92,10 +92,6 @@ RED.group = (function() { function ungroup(g) { var nodes = []; var parentGroup = RED.nodes.group(g.g); - if (parentGroup) { - var index = parentGroup.nodes.indexOf(g); - parentGroup.nodes.splice(index,1); - } g.nodes.forEach(function(n) { nodes.push(n); if (parentGroup) { diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js index aaa92fa70..4d99f7b87 100755 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js @@ -1823,6 +1823,10 @@ if (DEBUG_EVENTS) { console.warn("clearSelection", mouse_mode); } node.dirty = true; } } + var selectedGroups = activeGroups.filter(function(g) { return !g.active && g.selected }); + selectedGroups.forEach(function(g) { + RED.nodes.removeGroup(g); + }); if (removedSubflowOutputs.length > 0) { result = RED.subflow.removeOutput(removedSubflowOutputs); if (result) {