diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js b/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js index f285f77aa..07f893b03 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js @@ -20,6 +20,7 @@ RED.sidebar.info.outliner = (function() { children: [] }, { + id: "__subflow__", label: RED._("menu.label.subflows"), children: [] }, @@ -272,6 +273,9 @@ RED.sidebar.info.outliner = (function() { } }) + subflowList.treeList.addChild(getEmptyItem("__subflow__")); + globalConfigNodes.treeList.addChild(getEmptyItem("__global__")); + RED.events.on("projects:load", onProjectLoad) RED.events.on("flows:add", onFlowAdd) @@ -358,6 +362,10 @@ RED.sidebar.info.outliner = (function() { } else { objects[sf.id].children.push(getEmptyItem(sf.id)); } + if (empties["__subflow__"]) { + empties["__subflow__"].treeList.remove(); + delete empties["__subflow__"]; + } subflowList.treeList.addChild(objects[sf.id]) updateSearch(); } @@ -438,8 +446,8 @@ RED.sidebar.info.outliner = (function() { delete missingParents[n.id] } } - var parent = n.g||n.z; - if (parent) { + var parent = n.g||n.z||"__global__"; + if (parent !== "__global__") { if (objects[parent]) { if (empties[parent]) { empties[parent].treeList.remove(); @@ -455,8 +463,12 @@ RED.sidebar.info.outliner = (function() { missingParents[parent].push(objects[n.id]) } } else { + if (empties[parent]) { + empties[parent].treeList.remove(); + delete empties[parent]; + } // No parent - add to Global flow list - globalConfigNodes.treeList.addChild(objects[n.id]) + globalConfigNodes.treeList.addChild(objects[n.id]); } objects[n.id].element.toggleClass("red-ui-info-outline-item-disabled", !!n.d) updateSearch();