Repository: ignite Updated Branches: refs/heads/ignite-843 2b271fc5c -> 2be50b76b
IGNITE-843: WIP charts. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2be50b76 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2be50b76 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2be50b76 Branch: refs/heads/ignite-843 Commit: 2be50b76bc2ba929677a26c419ce1ee65da33e78 Parents: 2b271fc Author: Alexey Kuznetsov <[email protected]> Authored: Fri Sep 4 10:49:36 2015 +0700 Committer: Alexey Kuznetsov <[email protected]> Committed: Fri Sep 4 10:49:36 2015 +0700 ---------------------------------------------------------------------- .../src/main/js/controllers/sql-controller.js | 63 +++++++++++--------- 1 file changed, 36 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2be50b76/modules/control-center-web/src/main/js/controllers/sql-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/sql-controller.js b/modules/control-center-web/src/main/js/controllers/sql-controller.js index e0bdc81..5be782f 100644 --- a/modules/control-center-web/src/main/js/controllers/sql-controller.js +++ b/modules/control-center-web/src/main/js/controllers/sql-controller.js @@ -183,19 +183,19 @@ controlCenterModule.controller('sqlController', ['$scope', '$window','$controlle break; case 'bar': - barChart(paragraph); + _barChart(paragraph); break; case 'pie': - pieChart(paragraph); + _pieChart(paragraph); break; case 'line': - lineChart(paragraph); + _lineChart(paragraph); break; case 'area': - areaChart(paragraph); + _areaChart(paragraph); break; default: @@ -355,7 +355,28 @@ controlCenterModule.controller('sqlController', ['$scope', '$window','$controlle return value; }; - function barChart(paragraph) { + function _isNumber(arr, idx, dflt) { + if (arr && arr.length > idx) { + var val = arr[idx]; + + if (_.isNumber(val)) + return val; + } + + return dflt; + } + + function _datum(key, rows) { + var index = 0; + + var values = _.map(rows, function (row) { + return {x: _isNumber(row, 1, index++), y: _isNumber(row, 0, 0)} + }); + + return [{key: key, values: values}]; + } + + function _barChart(paragraph) { var index = 0; nv.addGraph(function() { @@ -368,7 +389,7 @@ controlCenterModule.controller('sqlController', ['$scope', '$window','$controlle }); var values = _.map(paragraph.rows, function (row) { - return {label: (row.length > 1) ? row[1] : index++, value: (row.length > 0) ? row[0] : 0} + return {label: (row.length > 1) ? row[1] : index++, value: _isNumber(row, 0, 0)} }); d3.selectAll("#chart svg > *").remove(); @@ -382,7 +403,7 @@ controlCenterModule.controller('sqlController', ['$scope', '$window','$controlle }); } - function pieChart(paragraph) { + function _pieChart(paragraph) { var index = 0; nv.addGraph(function() { @@ -410,25 +431,19 @@ controlCenterModule.controller('sqlController', ['$scope', '$window','$controlle }); } - function lineChart(paragraph) { - var index = 0; - + function _lineChart(paragraph) { nv.addGraph(function() { var chart = nv.models.lineChart() .x(function (d) { - return d.label; + return d.x; }) .y(function (d) { - return d.value; + return d.y; }); - var values = _.map(paragraph.rows, function (row) { - return {label: (row.length > 1) ? row[1] : index++, value: (row.length > 0) ? row[0] : 0} - }); - d3.selectAll("#chart svg > *").remove(); d3.select('#chart svg') - .datum([{key: 'bar', values: values}]) + .datum(_datum('Line chart', paragraph.rows)) .call(chart); nv.utils.windowResize(chart.update); @@ -437,25 +452,19 @@ controlCenterModule.controller('sqlController', ['$scope', '$window','$controlle }); } - function areaChart(paragraph) { - var index = 0; - + function _areaChart(paragraph) { nv.addGraph(function() { var chart = nv.models.stackedAreaChart() .x(function (d) { - return d.label; + return d.x; }) .y(function (d) { - return d.value; + return d.y; }); - var values = _.map(paragraph.rows, function (row) { - return {label: (row.length > 1) ? row[1] : index++, value: (row.length > 0) ? row[0] : 0} - }); - d3.selectAll("#chart svg > *").remove(); d3.select('#chart svg') - .datum([{key: 'bar', values: values}]) + .datum(_datum('Area chart', paragraph.rows)) .call(chart); nv.utils.windowResize(chart.update);
