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 94eac288a..42d9ef67d 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 @@ -176,10 +176,27 @@ RED.group = (function() { function init() { RED.events.on("view:selection-changed",function(selection) { - RED.menu.setDisabled("menu-item-group-group",!!!selection.nodes); - RED.menu.setDisabled("menu-item-group-ungroup",!!!selection.nodes || selection.nodes.filter(function(n) { return n.type==='group'}).length === 0); - RED.menu.setDisabled("menu-item-group-merge", !!!selection.nodes || (selection.nodes.length <= 1) || selection.nodes.filter(function(n) { return n.type==='group'}).length === 0); - RED.menu.setDisabled("menu-item-group-remove",!!!selection.nodes || selection.nodes.filter(function(n) { return !!n.g }).length === 0); + var activateGroup = !!selection.nodes; + var activateUngroup = false; + var activateMerge = false; + var activateRemove = false; + if (activateGroup) { + selection.nodes.forEach(function (n) { + if (n.type === "group") { + activateUngroup = true; + } + if (!!n.g) { + activateRemove = true; + } + }); + if (activateUngroup) { + activateMerge = (selection.nodes.length > 1); + } + } + RED.menu.setDisabled("menu-item-group-group", !activateGroup); + RED.menu.setDisabled("menu-item-group-ungroup", !activateUngroup); + RED.menu.setDisabled("menu-item-group-merge", !activateMerge); + RED.menu.setDisabled("menu-item-group-remove", !activateRemove); }); RED.actions.add("core:group-selection", function() { groupSelection() })