thingsboard-aplcache
Changes
ui/src/app/widget/lib/flot-widget.js 81(+53 -28)
Details
ui/src/app/widget/lib/flot-widget.js 81(+53 -28)
diff --git a/ui/src/app/widget/lib/flot-widget.js b/ui/src/app/widget/lib/flot-widget.js
index 4e5f99f..981cdd1 100644
--- a/ui/src/app/widget/lib/flot-widget.js
+++ b/ui/src/app/widget/lib/flot-widget.js
@@ -238,29 +238,23 @@ export default class TbFlot {
if (this.ticksFormatterFunction) {
return this.ticksFormatterFunction(value);
}
- if (this.tickDecimals) {
- value = value.toFixed(this.tickDecimals);
+ if (angular.isNumber(this.tickDecimals)) {
+ var factor = this.tickDecimals ? Math.pow(10, this.tickDecimals) : 1,
+ formatted = "" + Math.round(value * factor) / factor;
+ if (this.tickDecimals != null) {
+ var decimal = formatted.indexOf("."),
+ precision = decimal === -1 ? 0 : formatted.length - decimal - 1;
+
+ if (precision < this.tickDecimals) {
+ value = (precision ? formatted : formatted + ".") + ("" + factor).substr(1, this.tickDecimals - precision);
+ }
+ }
}
if (this.tickUnits) {
value = value + ' ' + this.tickUnits;
}
- if (this.tickSize) {
- return value;
- }
- // var factor = this.tickDecimals ? Math.pow(10, this.tickDecimals) : 1,
- // formatted = "" + Math.round(value * factor) / factor;
- // if (this.tickDecimals != null) {
- // var decimal = formatted.indexOf("."),
- // precision = decimal === -1 ? 0 : formatted.length - decimal - 1;
- //
- // if (precision < this.tickDecimals) {
- // formatted = (precision ? formatted : formatted + ".") + ("" + factor).substr(1, this.tickDecimals - precision);
- // }
- // }
- // formatted += ' ' + this.tickUnits;
return value;
-
};
this.yaxis.tickFormatter = ctx.yAxisTickFormatter;
@@ -273,8 +267,16 @@ export default class TbFlot {
this.yaxis.labelFont.color = this.yaxis.font.color;
this.yaxis.labelFont.size = this.yaxis.font.size+2;
this.yaxis.labelFont.weight = "bold";
- this.yaxis.tickSize = settings.yaxis.tickSize || null;
- this.yaxis.tickDecimals = settings.yaxis.tickDecimals || null;
+ if (angular.isNumber(settings.yaxis.tickSize)) {
+ this.yaxis.tickSize = settings.yaxis.tickSize;
+ } else {
+ this.yaxis.tickSize = null;
+ }
+ if (angular.isNumber(settings.yaxis.tickDecimals)) {
+ this.yaxis.tickDecimals = settings.yaxis.tickDecimals
+ } else {
+ this.yaxis.tickDecimals = null;
+ }
if (settings.yaxis.ticksFormatter && settings.yaxis.ticksFormatter.length) {
try {
this.yaxis.ticksFormatterFunction = new Function('value', settings.yaxis.ticksFormatter);
@@ -500,9 +502,19 @@ export default class TbFlot {
createYAxis(keySettings, units) {
var yaxis = angular.copy(this.yaxis);
+ var tickDecimals, tickSize;
var label = keySettings.axisTitle && keySettings.axisTitle.length ? keySettings.axisTitle : yaxis.label;
- //var tickDecimals = angular.isDefined(keySettings.axisTickDecimals) ? keySettings.axisTickDecimals : 0;
+ if (angular.isNumber(keySettings.axisTickDecimals)) {
+ tickDecimals = keySettings.axisTickDecimals;
+ } else {
+ tickDecimals = yaxis.tickDecimals;
+ }
+ if (angular.isNumber(keySettings.axisTickSize)) {
+ tickSize = keySettings.axisTickSize;
+ } else {
+ tickSize = yaxis.tickSize;
+ }
var position = keySettings.axisPosition && keySettings.axisPosition.length ? keySettings.axisPosition : "left";
var min = angular.isDefined(keySettings.axisMin) ? keySettings.axisMin : yaxis.min;
@@ -512,6 +524,8 @@ export default class TbFlot {
yaxis.min = min;
yaxis.max = max;
yaxis.tickUnits = units;
+ yaxis.tickDecimals = tickDecimals;
+ yaxis.tickSize = tickSize;
yaxis.alignTicksWithAxis = position == "right" ? 1 : null;
yaxis.position = position;
@@ -557,7 +571,7 @@ export default class TbFlot {
}
}
yaxis.hidden = hidden;
- var newIndex = -1;
+ var newIndex = 1;
if (!yaxis.hidden) {
this.options.yaxes.push(yaxis);
newIndex = this.options.yaxes.length;
@@ -916,11 +930,6 @@ export default class TbFlot {
"type": "number",
"default": null
},
- "tickSize": {
- "title": "Step size between ticks",
- "type": "number",
- "default": null
- },
"showLabels": {
"title": "Show labels",
"type": "boolean",
@@ -950,8 +959,12 @@ export default class TbFlot {
"title": "The number of decimals to display",
"type": "number",
"default": 0
+ },
+ "tickSize": {
+ "title": "Step size between ticks",
+ "type": "number",
+ "default": null
}
-
}
}
},
@@ -1009,8 +1022,8 @@ export default class TbFlot {
"items": [
"yaxis.min",
"yaxis.max",
- "yaxis.tickSize",
"yaxis.tickDecimals",
+ "yaxis.tickSize",
"yaxis.showLabels",
"yaxis.title",
"yaxis.titleAngle",
@@ -1079,6 +1092,16 @@ export default class TbFlot {
"type": "string",
"default": ""
},
+ "axisTickDecimals": {
+ "title": "Axis tick number of digits after floating point",
+ "type": "number",
+ "default": 0
+ },
+ "axisTickSize": {
+ "title": "Axis step size between ticks",
+ "type": "number",
+ "default": null
+ },
"axisPosition": {
"title": "Axis position",
"type": "string",
@@ -1104,6 +1127,8 @@ export default class TbFlot {
"axisMin",
"axisMax",
"axisTitle",
+ "axisTickDecimals",
+ "axisTickSize",
{
"key": "axisPosition",
"type": "rc-select",