@cryptotaxi247 / netdata-1 / commits / c82a0d0b6

force zero to always be included in gauge and easypiechart

Costa Tsaousis (ktsaou) committed Dec 20, 2016 at 01:48 UTC c82a0d0b61286810f6ff9fbfcd144e49be981827
1 file changed +49 -12
web/dashboard.js
+49 -12
@@ -5016,25 +5016,28 @@
5016
5017 // ----------------------------------------------------------------------------------------------------------------
5018
5019 - NETDATA.percentFromValueMinMax = function(value, min, max) {
5019 + NETDATA.easypiechartPercentFromValueMinMax = function(value, min, max) {
5020 if(typeof value !== 'number') value = 0;
5021 if(typeof min !== 'number') min = 0;
5022 if(typeof max !== 'number') max = 0;
5023
5024 + if(min > value) min = value;
5025 + if(max < value) max = value;
5026 +
5027 + // make sure it is zero based
5028 + if(min > 0) min = 0;
5029 + if(max < 0) max = 0;
5030 +
5031 var pcent = 0;
5032 if(value >= 0) {
5026 - if(max < value) max = value;
5027 - if(max !== 0) {
5033 + if(max !== 0)
5034 pcent = Math.round(value * 100 / max);
5029 - if(pcent === 0 && value > 0) pcent = 1;
5030 - }
5035 + if(pcent === 0) pcent = 0.1;
5036 }
5037 else {
5033 - if(min > value) min = value;
5034 - if(min !== 0) {
5038 + if(min !== 0)
5039 pcent = Math.round(-value * 100 / min);
5036 - if(pcent === 0 && value < 0) pcent = -1;
5037 - }
5040 + if(pcent === 0) pcent = -0.1;
5041 }
5042
5043 return pcent;
@@ -5109,7 +5112,7 @@
5112 var value = state.data.result[state.data.result.length - 1 - slot];
5113 var min = (state.easyPieChartMin === null)?NETDATA.commonMin.get(state):state.easyPieChartMin;
5114 var max = (state.easyPieChartMax === null)?NETDATA.commonMax.get(state):state.easyPieChartMax;
5112 - var pcent = NETDATA.percentFromValueMinMax(value, min, max);
5115 + var pcent = NETDATA.easypiechartPercentFromValueMinMax(value, min, max);
5116
5117 state.easyPieChartEvent.value = value;
5118 state.easyPieChartEvent.pcent = pcent;
@@ -5138,7 +5141,7 @@
5141 value = data.result[0];
5142 min = (state.easyPieChartMin === null)?NETDATA.commonMin.get(state):state.easyPieChartMin;
5143 max = (state.easyPieChartMax === null)?NETDATA.commonMax.get(state):state.easyPieChartMax;
5141 - pcent = NETDATA.percentFromValueMinMax(value, min, max);
5144 + pcent = NETDATA.easypiechartPercentFromValueMinMax(value, min, max);
5145 }
5146
5147 state.easyPieChartLabel.innerHTML = state.legendFormatValue(value);
@@ -5169,7 +5172,7 @@
5172 else
5173 state.easyPieChartMax = max;
5174
5172 - var pcent = NETDATA.percentFromValueMinMax(value, min, max);
5175 + var pcent = NETDATA.easypiechartPercentFromValueMinMax(value, min, max);
5176
5177 chart.data('data-percent', pcent);
5178
@@ -5388,6 +5391,17 @@
5391 var min = (state.gaugeMin === null)?NETDATA.commonMin.get(state):state.gaugeMin;
5392 var max = (state.gaugeMax === null)?NETDATA.commonMax.get(state):state.gaugeMax;
5393
5394 + // make sure it is zero based
5395 + if(min > 0) min = 0;
5396 + if(max < 0) max = 0;
5397 +
5398 + // make sure zero is in the middle
5399 + if(min < 0 && max > 0) {
5400 + min = -min;
5401 + if(min > max) max = min;
5402 + min = -max;
5403 + }
5404 +
5405 state.gaugeEvent.value = value;
5406 state.gaugeEvent.min = min;
5407 state.gaugeEvent.max = max;
@@ -5420,6 +5434,18 @@
5434 max = (state.gaugeMax === null)?NETDATA.commonMax.get(state):state.gaugeMax;
5435 if(value < min) min = value;
5436 if(value > max) max = value;
5437 +
5438 + // make sure it is zero based
5439 + if(min > 0) min = 0;
5440 + if(max < 0) max = 0;
5441 +
5442 + // make sure zero is in the middle
5443 + if(min < 0 && max > 0) {
5444 + min = -min;
5445 + if(min > max) max = min;
5446 + min = -max;
5447 + }
5448 +
5449 NETDATA.gaugeSetLabels(state, value, min, max);
5450 }
5451
@@ -5455,6 +5481,17 @@
5481 else
5482 state.gaugeMax = max;
5483
5484 + // make sure it is zero based
5485 + if(min > 0) min = 0;
5486 + if(max < 0) max = 0;
5487 +
5488 + // make sure zero is in the middle
5489 + if(min < 0 && max > 0) {
5490 + min = -min;
5491 + if(min > max) max = min;
5492 + min = -max;
5493 + }
5494 +
5495 var width = state.chartWidth(), height = state.chartHeight(); //, ratio = 1.5;
5496 //switch(adjust) {
5497 // case 'width': width = height * ratio; break;