mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Merge pull request #4500 from kazuhitoyokoi/master-disablemenuitems
Add handling to disable items on context menu
This commit is contained in:
commit
68dcf7bceb
@ -30,8 +30,26 @@ RED.contextMenu = (function () {
|
|||||||
const isGroup = hasSelection && selection.nodes.length === 1 && selection.nodes[0].type === 'group'
|
const isGroup = hasSelection && selection.nodes.length === 1 && selection.nodes[0].type === 'group'
|
||||||
const canEdit = !RED.workspaces.isLocked()
|
const canEdit = !RED.workspaces.isLocked()
|
||||||
const canRemoveFromGroup = hasSelection && !!selection.nodes[0].g
|
const canRemoveFromGroup = hasSelection && !!selection.nodes[0].g
|
||||||
const isAllGroups = hasSelection && selection.nodes.filter(n => n.type !== 'group').length === 0
|
let hasGroup, isAllGroups = true, hasDisabledNode, hasEnabledNode, hasLabeledNode, hasUnlabeledNode;
|
||||||
const hasGroup = hasSelection && selection.nodes.filter(n => n.type === 'group' ).length > 0
|
if (hasSelection) {
|
||||||
|
selection.nodes.forEach(n => {
|
||||||
|
if (n.type === 'group') {
|
||||||
|
hasGroup = true;
|
||||||
|
} else {
|
||||||
|
isAllGroups = false;
|
||||||
|
}
|
||||||
|
if (n.d) {
|
||||||
|
hasDisabledNode = true;
|
||||||
|
} else {
|
||||||
|
hasEnabledNode = true;
|
||||||
|
}
|
||||||
|
if (n.l === undefined || n.l) {
|
||||||
|
hasLabeledNode = true;
|
||||||
|
} else {
|
||||||
|
hasUnlabeledNode = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
const offset = $("#red-ui-workspace-chart").offset()
|
const offset = $("#red-ui-workspace-chart").offset()
|
||||||
|
|
||||||
let addX = options.x - offset.left + $("#red-ui-workspace-chart").scrollLeft()
|
let addX = options.x - offset.left + $("#red-ui-workspace-chart").scrollLeft()
|
||||||
@ -113,11 +131,11 @@ RED.contextMenu = (function () {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
nodeOptions.push(
|
nodeOptions.push(
|
||||||
{ onselect: 'core:enable-selected-nodes', label: RED._('menu.label.enableSelectedNodes') },
|
{ onselect: 'core:enable-selected-nodes', label: RED._('menu.label.enableSelectedNodes'), disabled: !hasDisabledNode },
|
||||||
{ onselect: 'core:disable-selected-nodes', label: RED._('menu.label.disableSelectedNodes') },
|
{ onselect: 'core:disable-selected-nodes', label: RED._('menu.label.disableSelectedNodes'), disabled: !hasEnabledNode },
|
||||||
null,
|
null,
|
||||||
{ onselect: 'core:show-selected-node-labels', label: RED._('menu.label.showSelectedNodeLabels') },
|
{ onselect: 'core:show-selected-node-labels', label: RED._('menu.label.showSelectedNodeLabels'), disabled: !hasUnlabeledNode },
|
||||||
{ onselect: 'core:hide-selected-node-labels', label: RED._('menu.label.hideSelectedNodeLabels') }
|
{ onselect: 'core:hide-selected-node-labels', label: RED._('menu.label.hideSelectedNodeLabels'), disabled: !hasLabeledNode }
|
||||||
)
|
)
|
||||||
menuItems.push({
|
menuItems.push({
|
||||||
label: RED._('sidebar.info.node'),
|
label: RED._('sidebar.info.node'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user