mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Merge pull request #4941 from GogoVega/fix-4599
Fix import of module list
This commit is contained in:
		| @@ -1564,6 +1564,7 @@ RED.nodes = (function() { | ||||
|     // Create the Flow JSON for the current configuration | ||||
|     // opts.credentials (whether to include (known) credentials) - default: true | ||||
|     // opts.dimensions (whether to include node dimensions) - default: false | ||||
|     // opts.includeModuleConfig (whether to include modules) - default: false | ||||
|     function createCompleteNodeSet(opts) { | ||||
|         var nns = []; | ||||
|         var i; | ||||
| @@ -1595,7 +1596,9 @@ RED.nodes = (function() { | ||||
|         RED.nodes.eachNode(function(n) { | ||||
|             nns.push(convertNode(n, opts)); | ||||
|         }) | ||||
|         updateGlobalConfigModuleList(nns) | ||||
|         if (opts?.includeModuleConfig) { | ||||
|             updateGlobalConfigModuleList(nns); | ||||
|         } | ||||
|         return nns; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -747,7 +747,7 @@ RED.clipboard = (function() { | ||||
|                 nodes.unshift(parentNode); | ||||
|                 nodes = RED.nodes.createExportableNodeSet(nodes, { includeModuleConfig: true }); | ||||
|             } else if (type === 'full') { | ||||
|                 nodes = RED.nodes.createCompleteNodeSet({ credentials: false }); | ||||
|                 nodes = RED.nodes.createCompleteNodeSet({ credentials: false, includeModuleConfig: true }); | ||||
|             } | ||||
|             if (nodes !== null) { | ||||
|                 if (format === "red-ui-clipboard-dialog-export-fmt-full") { | ||||
|   | ||||
| @@ -5676,17 +5676,38 @@ RED.view = (function() { | ||||
|                 filteredNodesToImport = nodesToImport.filter(function (n) { | ||||
|                     if (n.type === "global-config") { | ||||
|                         importedGlobalConfig = n | ||||
|                         // Do not import it if one exists | ||||
|                         // The properties of this one will be merged after import | ||||
|                         return false | ||||
|                     } | ||||
|                     return true | ||||
|                 }); | ||||
|             } else { | ||||
|                 filteredNodesToImport = nodesToImport.filter(function (n) { | ||||
|                     if (n.type === "global-config") { | ||||
|                         importedGlobalConfig = n | ||||
|                         if (n.env && n.env.length) { | ||||
|                             // No existing global-config | ||||
|                             // Contains env and maybe modules, so import it | ||||
|                             return true | ||||
|                         } | ||||
|                         // Contains modules only - do not import it | ||||
|                         return false | ||||
|                     } | ||||
|                     return true | ||||
|                 }); | ||||
|             } | ||||
|  | ||||
|             const modules = importedGlobalConfig?.modules || {} | ||||
|             // Ensure do not import modules - since it can contain it | ||||
|             delete importedGlobalConfig?.modules | ||||
|  | ||||
|             var result = RED.nodes.import(filteredNodesToImport,{ | ||||
|                 generateIds: options.generateIds, | ||||
|                 addFlow: addNewFlow, | ||||
|                 importMap: options.importMap, | ||||
|                 markChanged: true, | ||||
|                 modules: importedGlobalConfig ? (importedGlobalConfig.modules || {}) : {} | ||||
|                 modules: modules | ||||
|             }); | ||||
|             if (result) { | ||||
|                 var new_nodes = result.nodes; | ||||
| @@ -5810,7 +5831,7 @@ RED.view = (function() { | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 if (importedGlobalConfig) { | ||||
|                 if (importedGlobalConfig && existingGlobalConfig) { | ||||
|                     // merge global env to existing global-config | ||||
|                     var existingEnv = existingGlobalConfig.env || []; | ||||
|                     var importedEnv = importedGlobalConfig.env || [] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user