mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Add node module update api and expose in palette editor
This commit is contained in:
@@ -68,7 +68,8 @@
|
||||
"warnings": {
|
||||
"undeployedChanges": "node has undeployed changes",
|
||||
"nodeActionDisabled": "node actions disabled within subflow",
|
||||
"missing-types": "Flows stopped due to missing node types. Check logs for details."
|
||||
"missing-types": "Flows stopped due to missing node types. Check logs for details.",
|
||||
"restartRequired": "Node-RED must be restarted to enable upgraded modules"
|
||||
},
|
||||
|
||||
"error": "<strong>Error</strong>: __message__",
|
||||
@@ -250,7 +251,8 @@
|
||||
"nodeEnabled": "Node enabled:",
|
||||
"nodeEnabled_plural": "Nodes enabled:",
|
||||
"nodeDisabled": "Node disabled:",
|
||||
"nodeDisabled_plural": "Nodes disabled:"
|
||||
"nodeDisabled_plural": "Nodes disabled:",
|
||||
"nodeUpgraded": "Node module __module__ upgraded to version __version__"
|
||||
},
|
||||
"editor": {
|
||||
"title": "Manage palette",
|
||||
@@ -283,6 +285,7 @@
|
||||
"disable": "disable",
|
||||
"remove": "remove",
|
||||
"update": "update to __version__",
|
||||
"updated": "updated",
|
||||
"install": "install",
|
||||
"installed": "installed",
|
||||
"loading": "Loading catalogues...",
|
||||
@@ -295,7 +298,8 @@
|
||||
"errors": {
|
||||
"catalogLoadFailed": "Failed to load node catalogue.<br>Check the browser console for more information",
|
||||
"installFailed": "Failed to install: __module__<br>__message__<br>Check the log for more information",
|
||||
"removeFailed": "Failed to remove: __module__<br>__message__<br>Check the log for more information"
|
||||
"removeFailed": "Failed to remove: __module__<br>__message__<br>Check the log for more information",
|
||||
"updateFailed": "Failed to update: __module__<br>__message__<br>Check the log for more information"
|
||||
},
|
||||
"confirm": {
|
||||
"install": {
|
||||
@@ -306,10 +310,15 @@
|
||||
"body":"Removing the node will uninstall it from Node-RED. The node may continue to use resources until Node-RED is restarted.",
|
||||
"title": "Remove nodes"
|
||||
},
|
||||
"update": {
|
||||
"body":"Updating the node will require a restart of Node-RED to complete the update. This must be done manually.",
|
||||
"title": "Update nodes"
|
||||
},
|
||||
"button": {
|
||||
"review": "Open node information",
|
||||
"install": "Install",
|
||||
"remove": "Remove"
|
||||
"remove": "Remove",
|
||||
"update": "Update"
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -48,34 +48,42 @@ module.exports = {
|
||||
}
|
||||
var node = req.body;
|
||||
var promise;
|
||||
var isUpgrade = false;
|
||||
if (node.module) {
|
||||
var module = redNodes.getModuleInfo(node.module);
|
||||
if (module) {
|
||||
log.audit({event: "nodes.install",module:node.module,error:"module_already_loaded"},req);
|
||||
res.status(400).json({error:"module_already_loaded", message:"Module already loaded"});
|
||||
return;
|
||||
if (!node.version || module.version === node.version) {
|
||||
log.audit({event: "nodes.install",module:node.module, version:node.version, error:"module_already_loaded"},req);
|
||||
res.status(400).json({error:"module_already_loaded", message:"Module already loaded"});
|
||||
return;
|
||||
}
|
||||
isUpgrade = true;
|
||||
}
|
||||
promise = redNodes.installModule(node.module);
|
||||
promise = redNodes.installModule(node.module,node.version);
|
||||
} else {
|
||||
log.audit({event: "nodes.install",module:node.module,error:"invalid_request"},req);
|
||||
res.status(400).json({error:"invalid_request", message:"Invalid request"});
|
||||
return;
|
||||
}
|
||||
promise.then(function(info) {
|
||||
comms.publish("node/added",info.nodes,false);
|
||||
if (isUpgrade) {
|
||||
comms.publish("node/upgraded",{module:node.module,version:node.version},false);
|
||||
} else {
|
||||
comms.publish("node/added",info.nodes,false);
|
||||
}
|
||||
if (node.module) {
|
||||
log.audit({event: "nodes.install",module:node.module},req);
|
||||
log.audit({event: "nodes.install",module:node.module,version:node.version},req);
|
||||
res.json(info);
|
||||
}
|
||||
}).otherwise(function(err) {
|
||||
if (err.code === 404) {
|
||||
log.audit({event: "nodes.install",module:node.module,error:"not_found"},req);
|
||||
log.audit({event: "nodes.install",module:node.module,version:node.version,error:"not_found"},req);
|
||||
res.status(404).end();
|
||||
} else if (err.code) {
|
||||
log.audit({event: "nodes.install",module:node.module,error:err.code},req);
|
||||
log.audit({event: "nodes.install",module:node.module,version:node.version,error:err.code},req);
|
||||
res.status(400).json({error:err.code, message:err.message});
|
||||
} else {
|
||||
log.audit({event: "nodes.install",module:node.module,error:err.code||"unexpected_error",message:err.toString()},req);
|
||||
log.audit({event: "nodes.install",module:node.module,version:node.version,error:err.code||"unexpected_error",message:err.toString()},req);
|
||||
res.status(400).json({error:err.code||"unexpected_error", message:err.toString()});
|
||||
}
|
||||
});
|
||||
|
Reference in New Issue
Block a user