|
@@ -65,10 +65,6 @@ function (angular, app, _, TimeSeries, kbn) {
|
|
|
$scope.$on('refresh', $scope.get_data);
|
|
$scope.$on('refresh', $scope.get_data);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- $scope.formatValue = function(value) {
|
|
|
|
|
- return kbn.valueFormats[$scope.panel.format](value, 0, -7);
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
$scope.updateTimeRange = function () {
|
|
$scope.updateTimeRange = function () {
|
|
|
$scope.range = timeSrv.timeRange();
|
|
$scope.range = timeSrv.timeRange();
|
|
|
$scope.rangeUnparsed = timeSrv.timeRange(false);
|
|
$scope.rangeUnparsed = timeSrv.timeRange(false);
|
|
@@ -132,6 +128,43 @@ function (angular, app, _, TimeSeries, kbn) {
|
|
|
$scope.render();
|
|
$scope.render();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ $scope.getDecimalsForValue = function(value) {
|
|
|
|
|
+ var opts = {};
|
|
|
|
|
+
|
|
|
|
|
+ var delta = value / 2;
|
|
|
|
|
+ var dec = -Math.floor(Math.log(delta) / Math.LN10);
|
|
|
|
|
+
|
|
|
|
|
+ var magn = Math.pow(10, -dec),
|
|
|
|
|
+ norm = delta / magn, // norm is between 1.0 and 10.0
|
|
|
|
|
+ size;
|
|
|
|
|
+
|
|
|
|
|
+ if (norm < 1.5) {
|
|
|
|
|
+ size = 1;
|
|
|
|
|
+ } else if (norm < 3) {
|
|
|
|
|
+ size = 2;
|
|
|
|
|
+ // special case for 2.5, requires an extra decimal
|
|
|
|
|
+ if (norm > 2.25) {
|
|
|
|
|
+ size = 2.5;
|
|
|
|
|
+ ++dec;
|
|
|
|
|
+ }
|
|
|
|
|
+ } else if (norm < 7.5) {
|
|
|
|
|
+ size = 5;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ size = 10;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ size *= magn;
|
|
|
|
|
+
|
|
|
|
|
+ if (opts.minTickSize != null && size < opts.minTickSize) {
|
|
|
|
|
+ size = opts.minTickSize;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var result = {};
|
|
|
|
|
+ result.decimals = Math.max(0, dec);
|
|
|
|
|
+ result.scaledDecimals = result.decimals - Math.floor(Math.log(size) / Math.LN10);
|
|
|
|
|
+ return result;
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
$scope.render = function() {
|
|
$scope.render = function() {
|
|
|
var data = {};
|
|
var data = {};
|
|
|
|
|
|
|
@@ -140,9 +173,11 @@ function (angular, app, _, TimeSeries, kbn) {
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
var series = $scope.series[0];
|
|
var series = $scope.series[0];
|
|
|
- series.updateLegendValues(kbn.valueFormats[$scope.panel.format], 2, -7);
|
|
|
|
|
data.mainValue = series.stats[$scope.panel.valueName];
|
|
data.mainValue = series.stats[$scope.panel.valueName];
|
|
|
- data.mainValueFormated = $scope.formatValue(data.mainValue);
|
|
|
|
|
|
|
+ var decimalInfo = $scope.getDecimalsForValue(data.mainValue);
|
|
|
|
|
+ var formatFunc = kbn.valueFormats[$scope.panel.format];
|
|
|
|
|
+
|
|
|
|
|
+ data.mainValueFormated = formatFunc(data.mainValue, decimalInfo.decimals, decimalInfo.scaledDecimals);
|
|
|
data.flotpairs = series.flotpairs;
|
|
data.flotpairs = series.flotpairs;
|
|
|
}
|
|
}
|
|
|
|
|
|