=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/core.js' --- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/core.js 2014-03-25 14:13:37 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/core.js 2014-03-25 15:06:12 +0000 @@ -1833,6 +1833,25 @@ return false; }; + store.getNumberOfDecimals = function() { + var records = store.getRange(), + values = []; + + for (var i = 0; i < records.length; i++) { + for (var j = 0, value; j < store.rangeFields.length; j++) { + value = records[i].data[store.rangeFields[j]]; + + if (Ext.isNumber(value) && (value % 1)) { + value = value.toString(); + + values.push(value.length - value.indexOf('.') - 1); + } + } + } + + return Ext.Array.max(values); + }; + if (DV.isDebug) { console.log("data", data); console.log("rangeFields", store.rangeFields); @@ -1849,9 +1868,19 @@ var typeConf = conf.finals.chart, minimum = store.getMinimum(), maximum, - renderer, + numberOfDecimals, axis; + getRenderer = function(numberOfDecimals) { + var renderer = '0.'; + + for (var i = 0; i < numberOfDecimals; i++) { + renderer += '0'; + } + + return renderer; + }; + // set maximum if stacked + extra line if ((xLayout.type === typeConf.stackedcolumn || xLayout.type === typeConf.stackedbar) && (xLayout.showTrendLine || xLayout.targetLineValue || xLayout.baseLineValue)) { @@ -1861,7 +1890,8 @@ } // renderer - renderer = store.hasDecimals() && (store.getMaximum() < 20) ? '0.0' : '0,0'; + numberOfDecimals = store.getNumberOfDecimals(); + renderer = !!numberOfDecimals && (store.getMaximum() < 20) ? getRenderer(numberOfDecimals) : '0,0'; axis = { type: 'Numeric',