mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Merge pull request #3766 from Steve-Mcl/fix-split-with
Fix "split with" on virtual links
This commit is contained in:
commit
952cfaec14
@ -30,11 +30,14 @@ RED.contextMenu = (function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const selection = RED.view.selection()
|
const selection = RED.view.selection()
|
||||||
|
const noSelection = !selection || Object.keys(selection).length === 0
|
||||||
const hasSelection = (selection.nodes && selection.nodes.length > 0);
|
const hasSelection = (selection.nodes && selection.nodes.length > 0);
|
||||||
const hasMultipleSelection = hasSelection && selection.nodes.length > 1;
|
const hasMultipleSelection = hasSelection && selection.nodes.length > 1;
|
||||||
const hasLinks = selection.links && selection.links.length > 0;
|
const virtulLinks = (selection.links && selection.links.filter(e => !!e.link)) || [];
|
||||||
const isSingleLink = !hasSelection && hasLinks && selection.links.length === 1
|
const wireLinks = (selection.links && selection.links.filter(e => !e.link)) || [];
|
||||||
const isMultipleLinks = !hasSelection && hasLinks && selection.links.length > 1
|
const hasLinks = wireLinks.length > 0;
|
||||||
|
const isSingleLink = !hasSelection && hasLinks && wireLinks.length === 1
|
||||||
|
const isMultipleLinks = !hasSelection && hasLinks && wireLinks.length > 1
|
||||||
const canDelete = hasSelection || hasLinks
|
const canDelete = hasSelection || hasLinks
|
||||||
const isGroup = hasSelection && selection.nodes.length === 1 && selection.nodes[0].type === 'group'
|
const isGroup = hasSelection && selection.nodes.length === 1 && selection.nodes[0].type === 'group'
|
||||||
|
|
||||||
@ -66,7 +69,7 @@ RED.contextMenu = (function () {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
(hasSelection || hasLinks) ? {
|
(hasLinks) ? { // has least 1 wire selected
|
||||||
label: RED._("contextMenu.junction"),
|
label: RED._("contextMenu.junction"),
|
||||||
onselect: 'core:split-wires-with-junctions',
|
onselect: 'core:split-wires-with-junctions',
|
||||||
disabled: !hasLinks
|
disabled: !hasLinks
|
||||||
@ -93,6 +96,7 @@ RED.contextMenu = (function () {
|
|||||||
RED.nodes.addJunction(nn);
|
RED.nodes.addJunction(nn);
|
||||||
RED.history.push(historyEvent);
|
RED.history.push(historyEvent);
|
||||||
RED.nodes.dirty(true);
|
RED.nodes.dirty(true);
|
||||||
|
RED.view.select({nodes: [nn] });
|
||||||
RED.view.redraw(true)
|
RED.view.redraw(true)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -823,7 +823,7 @@ RED.view.tools = (function() {
|
|||||||
* @param {Object || Object[]} wires The wire(s) to split and replace with link-out, link-in nodes.
|
* @param {Object || Object[]} wires The wire(s) to split and replace with link-out, link-in nodes.
|
||||||
*/
|
*/
|
||||||
function splitWiresWithLinkNodes(wires) {
|
function splitWiresWithLinkNodes(wires) {
|
||||||
let wiresToSplit = wires || RED.view.selection().links;
|
let wiresToSplit = wires || (RED.view.selection().links && RED.view.selection().links.filter(e => !e.link));
|
||||||
if (!wiresToSplit) {
|
if (!wiresToSplit) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -1061,7 +1061,7 @@ RED.view.tools = (function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function addJunctionsToWires(wires) {
|
function addJunctionsToWires(wires) {
|
||||||
let wiresToSplit = wires || RED.view.selection().links;
|
let wiresToSplit = wires || (RED.view.selection().links && RED.view.selection().links.filter(e => !e.link));
|
||||||
if (!wiresToSplit) {
|
if (!wiresToSplit) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -1187,6 +1187,7 @@ RED.view.tools = (function() {
|
|||||||
removedLinks: Array.from(removedLinks)
|
removedLinks: Array.from(removedLinks)
|
||||||
})
|
})
|
||||||
RED.nodes.dirty(true)
|
RED.nodes.dirty(true)
|
||||||
|
RED.view.select({nodes: addedJunctions });
|
||||||
}
|
}
|
||||||
RED.view.redraw(true);
|
RED.view.redraw(true);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user