From b67e70e09f6d885b04e7d390110f8b2c76f63734 Mon Sep 17 00:00:00 2001 From: Dave C-J Date: Fri, 23 May 2014 23:15:28 +0100 Subject: [PATCH] Fix Delay node milliseconds label to read ms. (and add use strict) --- nodes/core/core/89-delay.html | 27 ++++++++++++++------------- nodes/core/core/89-delay.js | 32 +++++++++++++++++++------------- 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/nodes/core/core/89-delay.html b/nodes/core/core/89-delay.html index 08e4abec0..673f3b34f 100644 --- a/nodes/core/core/89-delay.html +++ b/nodes/core/core/89-delay.html @@ -36,7 +36,7 @@ - +
@@ -54,7 +54,7 @@
- +
- +
- + @@ -101,6 +101,7 @@ label: function() { // sets the default label contents if (this.pauseType == "delay") { var units = this.timeoutUnits ? this.timeoutUnits.charAt(0) : "s"; + if (this.timeoutUnits == "milliseconds") { units = "ms"; } return this.name||"delay "+this.timeout+" " + units; } else if (this.pauseType == "rate") { var units = this.rateUnits ? this.rateUnits.charAt(0) : "s"; @@ -116,10 +117,10 @@ oneditprepare: function() { $( "#node-input-timeout" ).spinner({min:1,max:60}); $( "#node-input-rate" ).spinner({min:1}); - + $( "#node-input-randomFirst" ).spinner({min:0}); $( "#node-input-randomLast" ).spinner({min:1}); - + if (this.pauseType == "delay") { $("#delay-details").show(); $("#rate-details").hide(); @@ -129,23 +130,23 @@ $("#rate-details").show(); $("#random-details").hide(); } else if (this.pauseType == "random") { - $("#delay-details").hide(); + $("#delay-details").hide(); $("#rate-details").hide(); $("#random-details").show(); } - + if (!this.timeoutUnits) { $("#node-input-timeoutUnits option").filter(function() { - return $(this).val() == 'seconds'; + return $(this).val() == 'seconds'; }).attr('selected', true); } - + if (!this.randomUnits) { - $("#node-input-randomUnits option").filter(function() { - return $(this).val() == 'seconds'; + $("#node-input-randomUnits option").filter(function() { + return $(this).val() == 'seconds'; }).attr('selected', true); } - + $("#node-input-pauseType").on("change",function() { if (this.value == "delay") { $("#delay-details").show(); diff --git a/nodes/core/core/89-delay.js b/nodes/core/core/89-delay.js index ddaee9f9c..cd0602ef5 100644 --- a/nodes/core/core/89-delay.js +++ b/nodes/core/core/89-delay.js @@ -16,6 +16,7 @@ //Simple node to introduce a pause into a flow module.exports = function(RED) { + "use strict"; function random(n) { var wait = n.randomFirst + (n.diff * Math.random()); if (n.buffer.length > 0) { @@ -25,15 +26,15 @@ module.exports = function(RED) { n.randomID = -1; } } - + function DelayNode(n) { RED.nodes.createNode(this,n); - + this.pauseType = n.pauseType; this.timeoutUnits = n.timeoutUnits; this.randomUnits = n.randomUnits; this.rateUnits = n.rateUnits; - + if (n.timeoutUnits === "milliseconds") { this.timeout = n.timeout; } else if (n.timeoutUnits === "seconds") { @@ -45,7 +46,7 @@ module.exports = function(RED) { } else if (n.timeoutUnits === "days") { this.timeout = n.timeout * (24 * 60 * 60 * 1000); } - + if (n.rateUnits === "second") { this.rate = 1000/n.rate; } else if (n.rateUnits === "minute") { @@ -55,7 +56,7 @@ module.exports = function(RED) { } else if (n.rateUnits === "day") { this.rate = (24 * 60 * 60 * 1000)/n.rate; } - + if (n.randomUnits === "milliseconds") { this.randomFirst = n.randomFirst; this.randomLast = n.randomLast; @@ -72,7 +73,7 @@ module.exports = function(RED) { this.randomFirst = n.randomFirst * (24 * 60 * 60 * 1000); this.randomLast = n.randomLast * (24 * 60 * 60 * 1000); } - + this.diff = this.randomLast - this.randomFirst; this.name = n.name; this.idList = []; @@ -82,7 +83,7 @@ module.exports = function(RED) { this.lastSent = Date.now(); this.drop = n.drop; var node = this; - + if (this.pauseType === "delay") { this.on("input", function(msg) { var id; @@ -92,19 +93,22 @@ module.exports = function(RED) { }, node.timeout); this.idList.push(id); }); - + this.on("close", function() { for (var i=0; i 0) { + node.status({text:node.buffer.length}); + } if (node.buffer.length > 1000) { node.warn(this.name + " buffer exceeded 1000 messages"); } @@ -114,10 +118,12 @@ module.exports = function(RED) { if (node.buffer.length === 0) { clearInterval(node.intervalID); node.intervalID = -1; + node.status({text:""}); } - + if (node.buffer.length > 0) { node.send(node.buffer.shift()); + node.status({text:node.buffer.length}); } },node.rate); } @@ -129,12 +135,12 @@ module.exports = function(RED) { } } }); - + this.on("close", function() { clearInterval(this.intervalID); this.buffer = []; }); - + } else if (this.pauseType === "random") { this.on("input",function(msg){ node.buffer.push(msg); @@ -143,7 +149,7 @@ module.exports = function(RED) { node.randomID = setTimeout(function() {random(node);},wait); } }); - + this.on("close", function (){ if (this.randomID !== -1) { clearTimeout(this.randomID);