1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Track subflow instances on the subflow node itself

This commit is contained in:
Nick O'Leary 2020-06-08 11:49:43 +01:00
parent 34dfd50702
commit 21866634b3
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
3 changed files with 25 additions and 12 deletions

View File

@ -196,6 +196,11 @@ RED.nodes = (function() {
if (n.type.indexOf("subflow") !== 0) { if (n.type.indexOf("subflow") !== 0) {
n["_"] = n._def._; n["_"] = n._def._;
} else { } else {
var subflowId = n.type.substring(8);
var sf = RED.nodes.subflow(subflowId);
if (sf) {
sf.instances.push(sf);
}
n["_"] = RED._; n["_"] = RED._;
} }
if (n._def.category == "config") { if (n._def.category == "config") {
@ -284,6 +289,15 @@ RED.nodes = (function() {
} }
} }
} }
if (node.type.indexOf("subflow:") === 0) {
var subflowId = node.type.substring(8);
var sf = RED.nodes.subflow(subflowId);
if (sf) {
sf.instances.splice(sf.instances.indexOf(node),1);
}
}
if (updatedConfigNode) { if (updatedConfigNode) {
RED.workspaces.refresh(); RED.workspaces.refresh();
} }
@ -297,6 +311,9 @@ RED.nodes = (function() {
RED.events.emit('nodes:remove',node); RED.events.emit('nodes:remove',node);
} }
} }
if (node && node._def.onremove) { if (node && node._def.onremove) {
// Deprecated: never documented but used by some early nodes // Deprecated: never documented but used by some early nodes
console.log("Deprecated API warning: node type ",node.type," has an onremove function - should be oneditremove - please report"); console.log("Deprecated API warning: node type ",node.type," has an onremove function - should be oneditremove - please report");
@ -459,6 +476,7 @@ RED.nodes = (function() {
module: "node-red" module: "node-red"
} }
}); });
sf.instances = [];
sf._def = RED.nodes.getType("subflow:"+sf.id); sf._def = RED.nodes.getType("subflow:"+sf.id);
RED.events.emit("subflows:add",sf); RED.events.emit("subflows:add",sf);
} }

View File

@ -883,13 +883,13 @@ RED.editor = (function() {
var userCount = 0; var userCount = 0;
var subflowType = "subflow:"+node.id; var subflowType = "subflow:"+node.id;
RED.nodes.eachNode(function(n) { // RED.nodes.eachNode(function(n) {
if (n.type === subflowType) { // if (n.type === subflowType) {
userCount++; // userCount++;
} // }
}); // });
$("#red-ui-editor-subflow-user-count") $("#red-ui-editor-subflow-user-count")
.text(RED._("subflow.subflowInstances", {count:userCount})).show(); .text(RED._("subflow.subflowInstances", {count:node.instances.length})).show();
} }
$('<div class="form-row">'+ $('<div class="form-row">'+

View File

@ -240,13 +240,8 @@ RED.sidebar.info = (function() {
subflowNode = node; subflowNode = node;
} }
subflowUserCount = 0;
var subflowType = "subflow:"+subflowNode.id; var subflowType = "subflow:"+subflowNode.id;
RED.nodes.eachNode(function(n) { subflowUserCount = subflowNode.instances.length;
if (n.type === subflowType) {
subflowUserCount++;
}
});
} }
propertiesPanelHeaderIcon.empty(); propertiesPanelHeaderIcon.empty();