From 6057a5e990dc2ae564465c532a38abba51f61bd7 Mon Sep 17 00:00:00 2001 From: Sergey Tarnavskiy Date: Fri, 15 Dec 2017 10:57:57 +0200 Subject: [PATCH] minor fix in digital-gauge widgets --- ui/src/app/widget/lib/CanvasDigitalGauge.js | 18 ++++++++++++++++-- ui/src/app/widget/lib/canvas-digital-gauge.js | 5 ++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ui/src/app/widget/lib/CanvasDigitalGauge.js b/ui/src/app/widget/lib/CanvasDigitalGauge.js index a1cfca281d..bd3ff986a8 100644 --- a/ui/src/app/widget/lib/CanvasDigitalGauge.js +++ b/ui/src/app/widget/lib/CanvasDigitalGauge.js @@ -155,6 +155,15 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge { return result; } + set timestamp(timestamp) { + this.options.timestamp = timestamp; + this.draw(); + } + + get timestamp() { + return this.options.timestamp; + } + draw() { try { @@ -195,7 +204,9 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge { canvas.elementClone.initialized = true; } - if (!this.elementValueClone.initialized || this.elementValueClone.renderedValue !== this.value) { + var valueChanged = false; + + if (!this.elementValueClone.initialized || this.elementValueClone.renderedValue !== this.value || (options.showTimestamp && this.elementValueClone.renderedTimestamp !== this.timestamp)) { let context = this.contextValueClone; // clear the cache context.clearRect(x, y, w, h); @@ -208,10 +219,13 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge { if (options.showTimestamp) { drawDigitalLabel(context, options); + this.elementValueClone.renderedTimestamp = this.timestamp; } this.elementValueClone.initialized = true; this.elementValueClone.renderedValue = this.value; + + valueChanged = true; } var progress = (canvasGauges.drawings.normalizedValue(options).normal - options.minValue) / @@ -219,7 +233,7 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge { var fixedProgress = progress.toFixed(3); - if (!this.elementProgressClone.initialized || this.elementProgressClone.renderedProgress !== fixedProgress) { + if (!this.elementProgressClone.initialized || this.elementProgressClone.renderedProgress !== fixedProgress || valueChanged) { let context = this.contextProgressClone; // clear the cache context.clearRect(x, y, w, h); diff --git a/ui/src/app/widget/lib/canvas-digital-gauge.js b/ui/src/app/widget/lib/canvas-digital-gauge.js index cf0f682efa..231fb6fb2d 100644 --- a/ui/src/app/widget/lib/canvas-digital-gauge.js +++ b/ui/src/app/widget/lib/canvas-digital-gauge.js @@ -197,8 +197,9 @@ export default class TbCanvasDigitalGauge { if (cellData.data.length > 0) { var tvPair = cellData.data[cellData.data.length - 1]; + var timestamp; if (this.localSettings.showTimestamp) { - var timestamp = tvPair[0]; + timestamp = tvPair[0]; var filter= this.ctx.$scope.$injector.get('$filter'); var timestampDisplayValue = filter('date')(timestamp, this.localSettings.timestampFormat); this.gauge.options.label = timestampDisplayValue; @@ -206,6 +207,8 @@ export default class TbCanvasDigitalGauge { var value = tvPair[1]; if(value !== this.gauge.value) { this.gauge.value = value; + } else if (this.localSettings.showTimestamp && this.gauge.timestamp != timestamp) { + this.gauge.timestamp = timestamp; } } }