1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Fix inject so more backwards compatible

reuse old payload property and copy over topic if a string.
This commit is contained in:
Dave Conway-Jones 2020-05-11 14:37:19 +01:00
parent 13932b2cfb
commit 247fa0ce7c
No known key found for this signature in database
GPG Key ID: 302A6725C594817F
2 changed files with 33 additions and 24 deletions

View File

@ -485,7 +485,6 @@
v: this.topic ? this.topic : '', v: this.topic ? this.topic : '',
vt:'string' vt:'string'
} }
this.props = [payload,topic]; this.props = [payload,topic];
} }
@ -499,12 +498,6 @@
}, },
oneditsave: function() { oneditsave: function() {
/* Cleanup Legacy */
delete this.payload;
delete this.payloadType
delete this.topic
/* */
var repeat = ""; var repeat = "";
var crontab = ""; var crontab = "";
var type = $("#inject-time-type-select").val(); var type = $("#inject-time-type-select").val();
@ -599,6 +592,9 @@
var props = $("#node-input-property-container").editableList('items'); var props = $("#node-input-property-container").editableList('items');
var node = this; var node = this;
node.props= []; node.props= [];
delete node.payloadType;
delete node.payload;
delete node.topic;
props.each(function(i) { props.each(function(i) {
var prop = $(this); var prop = $(this);
var p = { var p = {
@ -607,7 +603,17 @@
if (p.p) { if (p.p) {
p.v = prop.find(".node-input-prop-property-value").typedInput('value'); p.v = prop.find(".node-input-prop-property-value").typedInput('value');
p.vt = prop.find(".node-input-prop-property-value").typedInput('type'); p.vt = prop.find(".node-input-prop-property-value").typedInput('type');
node.props.push(p); if (p.p === "payload") { // save payload to old "legacy" property
node.payloadType = p.vt;
node.payload = p.v;
}
else if (p.p === "topic" && p.vt === "str") {
node.topic = p.v;
node.props.push(p);
}
else {
node.props.push(p);
}
} }
}); });
}, },

View File

@ -43,6 +43,9 @@ module.exports = function(RED) {
this.onceDelay = (n.onceDelay || 0.1) * 1000; this.onceDelay = (n.onceDelay || 0.1) * 1000;
this.interval_id = null; this.interval_id = null;
this.cronjob = null; this.cronjob = null;
if (n.payload && n.payloadType) { // load up original payload
this.props.unshift({p:"payload",v:n.payload,vt:n.payloadType});
}
var node = this; var node = this;
node.props.forEach(function (prop) { node.props.forEach(function (prop) {
@ -64,29 +67,29 @@ module.exports = function(RED) {
} }
node.repeaterSetup = function () { node.repeaterSetup = function () {
if (this.repeat && !isNaN(this.repeat) && this.repeat > 0) { if (this.repeat && !isNaN(this.repeat) && this.repeat > 0) {
this.repeat = this.repeat * 1000; this.repeat = this.repeat * 1000;
if (RED.settings.verbose) { if (RED.settings.verbose) {
this.log(RED._("inject.repeat", this)); this.log(RED._("inject.repeat", this));
}
this.interval_id = setInterval(function() {
node.emit("input", {});
}, this.repeat);
} else if (this.crontab) {
if (RED.settings.verbose) {
this.log(RED._("inject.crontab", this));
}
this.cronjob = new cron.CronJob(this.crontab, function() { node.emit("input", {}); }, null, true);
} }
this.interval_id = setInterval(function() {
node.emit("input", {});
}, this.repeat);
} else if (this.crontab) {
if (RED.settings.verbose) {
this.log(RED._("inject.crontab", this));
}
this.cronjob = new cron.CronJob(this.crontab, function() { node.emit("input", {}); }, null, true);
}
}; };
if (this.once) { if (this.once) {
this.onceTimeout = setTimeout( function() { this.onceTimeout = setTimeout( function() {
node.emit("input",{}); node.emit("input",{});
node.repeaterSetup(); node.repeaterSetup();
}, this.onceDelay); }, this.onceDelay);
} else { } else {
node.repeaterSetup(); node.repeaterSetup();
} }
this.on("input", function(msg) { this.on("input", function(msg) {