mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
[groups] Include groups when exporting
This commit is contained in:
parent
1bdbd31b96
commit
03e9522d98
@ -697,8 +697,18 @@ RED.nodes = (function() {
|
|||||||
/**
|
/**
|
||||||
* Converts the current node selection to an exportable JSON Object
|
* Converts the current node selection to an exportable JSON Object
|
||||||
**/
|
**/
|
||||||
function createExportableNodeSet(set, exportedSubflows, exportedConfigNodes) {
|
function createExportableNodeSet(set, exportedIds, exportedSubflows, exportedConfigNodes) {
|
||||||
var nns = [];
|
var nns = [];
|
||||||
|
|
||||||
|
exportedIds = exportedIds || {};
|
||||||
|
set = set.filter(function(n) {
|
||||||
|
if (exportedIds[n.id]) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
exportedIds[n.id] = true;
|
||||||
|
return true;
|
||||||
|
})
|
||||||
|
|
||||||
exportedConfigNodes = exportedConfigNodes || {};
|
exportedConfigNodes = exportedConfigNodes || {};
|
||||||
exportedSubflows = exportedSubflows || {};
|
exportedSubflows = exportedSubflows || {};
|
||||||
for (var n=0;n<set.length;n++) {
|
for (var n=0;n<set.length;n++) {
|
||||||
@ -714,11 +724,11 @@ RED.nodes = (function() {
|
|||||||
subflowSet.push(n);
|
subflowSet.push(n);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
var exportableSubflow = createExportableNodeSet(subflowSet, exportedSubflows, exportedConfigNodes);
|
var exportableSubflow = createExportableNodeSet(subflowSet, exportedIds, exportedSubflows, exportedConfigNodes);
|
||||||
nns = exportableSubflow.concat(nns);
|
nns = exportableSubflow.concat(nns);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (node.type != "subflow") {
|
if (node.type !== "subflow") {
|
||||||
var convertedNode = RED.nodes.convertNode(node);
|
var convertedNode = RED.nodes.convertNode(node);
|
||||||
for (var d in node._def.defaults) {
|
for (var d in node._def.defaults) {
|
||||||
if (node._def.defaults[d].type && node[d] in configNodes) {
|
if (node._def.defaults[d].type && node[d] in configNodes) {
|
||||||
@ -735,6 +745,9 @@ RED.nodes = (function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
nns.push(convertedNode);
|
nns.push(convertedNode);
|
||||||
|
if (node.type === "group") {
|
||||||
|
nns = nns.concat(createExportableNodeSet(node.nodes, exportedIds, exportedSubflows, exportedConfigNodes));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
var convertedSubflow = convertSubflow(node);
|
var convertedSubflow = convertSubflow(node);
|
||||||
nns.push(convertedSubflow);
|
nns.push(convertedSubflow);
|
||||||
|
@ -583,6 +583,7 @@ RED.clipboard = (function() {
|
|||||||
nodes = [];
|
nodes = [];
|
||||||
selection.forEach(function(n) {
|
selection.forEach(function(n) {
|
||||||
nodes.push(n);
|
nodes.push(n);
|
||||||
|
nodes = nodes.concat(RED.nodes.groups(n.id));
|
||||||
nodes = nodes.concat(RED.nodes.filterNodes({z:n.id}));
|
nodes = nodes.concat(RED.nodes.filterNodes({z:n.id}));
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@ -592,7 +593,8 @@ RED.clipboard = (function() {
|
|||||||
nodes = RED.nodes.createExportableNodeSet(nodes.filter(function(n) { return n.type !== 'subflow'}));
|
nodes = RED.nodes.createExportableNodeSet(nodes.filter(function(n) { return n.type !== 'subflow'}));
|
||||||
} else if (type === 'red-ui-clipboard-dialog-export-rng-flow') {
|
} else if (type === 'red-ui-clipboard-dialog-export-rng-flow') {
|
||||||
var activeWorkspace = RED.workspaces.active();
|
var activeWorkspace = RED.workspaces.active();
|
||||||
nodes = RED.nodes.filterNodes({z:activeWorkspace});
|
nodes = RED.nodes.groups(activeWorkspace);
|
||||||
|
nodes = nodes.concat(RED.nodes.filterNodes({z:activeWorkspace}));
|
||||||
var parentNode = RED.nodes.workspace(activeWorkspace)||RED.nodes.subflow(activeWorkspace);
|
var parentNode = RED.nodes.workspace(activeWorkspace)||RED.nodes.subflow(activeWorkspace);
|
||||||
nodes.unshift(parentNode);
|
nodes.unshift(parentNode);
|
||||||
nodes = RED.nodes.createExportableNodeSet(nodes);
|
nodes = RED.nodes.createExportableNodeSet(nodes);
|
||||||
|
Loading…
Reference in New Issue
Block a user