Improve the filter to handle all cases + comments

Co-authored-by: Nick O'Leary <nick.oleary@gmail.com>
This commit is contained in:
Gauthier Dandele 2024-09-11 17:02:18 +02:00 committed by GitHub
parent 2c4dc3334d
commit 912a30b28d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2406,15 +2406,25 @@ RED.nodes = (function() {
} else {
delete n.g
}
// If importing a subflow, ensure an outbound-link doesn't get added
// If importing a link node, ensure both ends of each link are either:
// - not in a subflow
// - both in the same subflow
if (/^link /.test(n.type) && n.links) {
const isSubflow = !!getSubflow(n.z);
if (isSubflow) {
n.links = n.links.filter(function(id) {
const otherNode = node_map[id] || RED.nodes.node(id);
return (otherNode && otherNode.z === n.z);
});
if (!otherNode) {
// Cannot find other end - remove the link
return false
}
if (otherNode.z === n.z) {
// Both ends in the same flow/subflow
return true
} else if (!!getSubflow(n.z) || !!getSubflow(otherNode.z)) {
// One end is in a subflow - remove the link
return false
}
return true
});
}
for (var d3 in n._def.defaults) {
if (n._def.defaults.hasOwnProperty(d3)) {