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 : '',
vt:'string'
}
this.props = [payload,topic];
}
@ -499,12 +498,6 @@
},
oneditsave: function() {
/* Cleanup Legacy */
delete this.payload;
delete this.payloadType
delete this.topic
/* */
var repeat = "";
var crontab = "";
var type = $("#inject-time-type-select").val();
@ -599,6 +592,9 @@
var props = $("#node-input-property-container").editableList('items');
var node = this;
node.props= [];
delete node.payloadType;
delete node.payload;
delete node.topic;
props.each(function(i) {
var prop = $(this);
var p = {
@ -607,7 +603,17 @@
if (p.p) {
p.v = prop.find(".node-input-prop-property-value").typedInput('value');
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.interval_id = 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;
node.props.forEach(function (prop) {
@ -64,29 +67,29 @@ module.exports = function(RED) {
}
node.repeaterSetup = function () {
if (this.repeat && !isNaN(this.repeat) && this.repeat > 0) {
this.repeat = this.repeat * 1000;
if (RED.settings.verbose) {
this.log(RED._("inject.repeat", this));
if (this.repeat && !isNaN(this.repeat) && this.repeat > 0) {
this.repeat = this.repeat * 1000;
if (RED.settings.verbose) {
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) {
this.onceTimeout = setTimeout( function() {
node.emit("input",{});
node.repeaterSetup();
node.emit("input",{});
node.repeaterSetup();
}, this.onceDelay);
} else {
node.repeaterSetup();
node.repeaterSetup();
}
this.on("input", function(msg) {