From 9afb4a9315de531a1ecbe7714af53aa621745533 Mon Sep 17 00:00:00 2001 From: dceejay Date: Thu, 19 Mar 2015 21:25:43 +0000 Subject: [PATCH] reverse overide behaviour on file, http and email. Node properties now have priority. Warn user if msg.property tries to override. Warning should be removed at next major verion bump. --- nodes/core/io/21-httpin.js | 34 +++++++++---------------- nodes/core/social/61-email.html | 3 +-- nodes/core/social/61-email.js | 4 +-- nodes/core/storage/50-file.html | 4 +-- nodes/core/storage/50-file.js | 45 +++++++++++++++------------------ 5 files changed, 37 insertions(+), 53 deletions(-) diff --git a/nodes/core/io/21-httpin.js b/nodes/core/io/21-httpin.js index 4644f4b1b..e52a47599 100644 --- a/nodes/core/io/21-httpin.js +++ b/nodes/core/io/21-httpin.js @@ -177,34 +177,24 @@ module.exports = function(RED) { this.on("input",function(msg) { var preRequestTimestamp = process.hrtime(); node.status({fill:"blue",shape:"dot",text:"requesting"}); - var url; - if (msg.url) { - if (n.url && (n.url !== msg.url)) { - node.warn("Deprecated: msg properties should not override set node properties. See bit.ly/nr-override-msg-props"); - } - url = msg.url; - } else if (isTemplatedUrl) { + var url = nodeUrl || msg.url; + if (msg.url && nodeUrl && (nodeUrl !== msg.url)) { // revert change below when warning is finally removed + node.warn("Warning: msg properties can no longer override set node properties. See bit.ly/nr-override-msg-props"); + } + if (isTemplatedUrl) { url = mustache.render(nodeUrl,msg); - } else { - url = nodeUrl; } // url must start http:// or https:// so assume http:// if not set if (!((url.indexOf("http://")===0) || (url.indexOf("https://")===0))) { url = "http://"+url; } - var method; - if (msg.method) { // if method set in msg - if (n.method && (n.method !== "use")) { // warn if override option not set - node.warn("Deprecated: msg properties should not override fixed node properties. Use explicit override option. See bit.ly/nr-override-msg-props"); - } - method = msg.method.toUpperCase(); // but use it anyway - } else { - if (n.method !== "use") { - method = nodeMethod.toUpperCase(); // otherwise use the selected method - } else { // unless they selected override - method = "GET"; // - in which case default to GET - } + var method = nodeMethod.toUpperCase() || "GET"; + if (msg.method && n.method && (n.method !== "use")) { // warn if override option not set + node.warn("Warning: msg properties can no longer override fixed node properties. Use explicit override option. See bit.ly/nr-override-msg-props"); + } + if (msg.method && n.method && (n.method === "use")) { + method = msg.method.toUpperCase(); // use the msg parameter } var opts = urllib.parse(url); opts.method = method; @@ -251,7 +241,7 @@ module.exports = function(RED) { msg.statusCode = res.statusCode; msg.headers = res.headers; msg.payload = ""; - // msg.url = url; // revert when fully deprecated + // msg.url = url; // revert when warning above finally removed res.on('data',function(chunk) { msg.payload += chunk; }); diff --git a/nodes/core/social/61-email.html b/nodes/core/social/61-email.html index cc660ee40..6a021e675 100644 --- a/nodes/core/social/61-email.html +++ b/nodes/core/social/61-email.html @@ -87,7 +87,7 @@ defaults: { server: {value:"smtp.gmail.com",required:true}, port: {value:"465",required:true}, - name: {value:"",required:true}, + name: {value:""}, dname: {value:""} }, credentials: { @@ -95,7 +95,6 @@ password: {type: "password"}, global: { type:"boolean"} }, - inputs:1, outputs:0, icon: "envelope.png", diff --git a/nodes/core/social/61-email.js b/nodes/core/social/61-email.js index 0d393c8ef..75defb5a6 100644 --- a/nodes/core/social/61-email.js +++ b/nodes/core/social/61-email.js @@ -72,10 +72,10 @@ module.exports = function(RED) { if (smtpTransport) { node.status({fill:"blue",shape:"dot",text:"sending"}); if (msg.to && node.name && (msg.to !== node.name)) { - node.warn("Deprecated: msg properties should not override set node properties. See bit.ly/nr-override-msg-props"); + node.warn("Warning: msg properties can no longer override set node properties. See bit.ly/nr-override-msg-props"); } var sendopts = { from: node.userid }; // sender address - sendopts.to = msg.to || node.name; // comma separated list of addressees + sendopts.to = node.name || msg.to; // comma separated list of addressees sendopts.subject = msg.topic || msg.title || "Message from Node-RED"; // subject line if (Buffer.isBuffer(msg.payload)) { // if it's a buffer in the payload then auto create an attachment instead sendopts.attachments = [ { content: msg.payload, filename:(msg.filename.replace(/^.*[\\\/]/, '') || "file.bin") } ]; diff --git a/nodes/core/storage/50-file.html b/nodes/core/storage/50-file.html index 434440a5a..234a8a94c 100644 --- a/nodes/core/storage/50-file.html +++ b/nodes/core/storage/50-file.html @@ -85,7 +85,7 @@ align: "right", label: function() { if (this.overwriteFile === "delete") { return this.name||"delete "+this.filename; } - else { return this.name||this.filename; } + else { return this.name||this.filename||"file"; } }, labelStyle: function() { return this.name?"node_label_italic":""; @@ -110,7 +110,7 @@ outputs:1, icon: "file.png", label: function() { - return this.name||this.filename; + return this.name||this.filename||"file"; }, labelStyle: function() { return this.name?"node_label_italic":""; diff --git a/nodes/core/storage/50-file.js b/nodes/core/storage/50-file.js index 4c8cea5a1..b5c09133b 100644 --- a/nodes/core/storage/50-file.js +++ b/nodes/core/storage/50-file.js @@ -20,29 +20,26 @@ module.exports = function(RED) { function FileNode(n) { RED.nodes.createNode(this,n); - this.filename = n.filename || ""; + this.filename = n.filename; this.appendNewline = n.appendNewline; this.overwriteFile = n.overwriteFile.toString(); var node = this; this.on("input",function(msg) { - var filename; - if (msg.filename) { - if (n.filename && (n.filename !== msg.filename)) { - node.warn("Deprecated: msg properties should not override set node properties. See bit.ly/nr-override-msg-props"); - } - filename = msg.filename; - node.status({fill:"grey",shape:"dot",text:msg.filename}); - } else { - filename = this.filename; + var filename = this.filename || msg.filename || ""; + if (msg.filename && n.filename && (n.filename !== msg.filename)) { + node.warn("Warning: msg properties can no longer override set node properties. See bit.ly/nr-override-msg-props"); + } + if (!this.filename) { + node.status({fill:"grey",shape:"dot",text:filename}); } if (filename === "") { node.warn('No filename specified'); - } else if (msg.hasOwnProperty('delete')) { - node.warn("Deprecated: please use specific delete option in config dialog."); - fs.unlink(filename, function (err) { - if (err) { node.error('Failed to delete file : '+err,msg); } - }); - } else if (typeof msg.payload != "undefined") { + } else if (msg.hasOwnProperty('delete')) { // remove warning at some point in future + node.warn("Warning: Invalid delete. Please use specific delete option in config dialog."); + //fs.unlink(filename, function (err) { + //if (err) { node.error('Failed to delete file : '+err,msg); } + //}); + } else if (msg.payload && (typeof msg.payload != "undefined")) { var data = msg.payload; if ((typeof data === "object")&&(!Buffer.isBuffer(data))) { data = JSON.stringify(data); @@ -80,7 +77,7 @@ module.exports = function(RED) { function FileInNode(n) { RED.nodes.createNode(this,n); - this.filename = n.filename || ""; + this.filename = n.filename; this.format = n.format; var node = this; var options = {}; @@ -88,14 +85,12 @@ module.exports = function(RED) { options['encoding'] = this.format; } this.on("input",function(msg) { - var filename; - if (msg.filename) { - if (n.filename && (n.filename !== msg.filename)) { - node.warn("Deprecated: msg properties should not override set node properties. See bit.ly/nr-override-msg-props"); - } - filename = msg.filename; - } else { - filename = this.filename; + var filename = this.filename || msg.filename || ""; + if (msg.filename && n.filename && (n.filename !== msg.filename)) { + node.warn("Warning: msg properties can no longer override set node properties. See bit.ly/nr-override-msg-props"); + } + if (!this.filename) { + node.status({fill:"grey",shape:"dot",text:filename}); } if (filename === "") { node.warn('No filename specified');