diff options
author | Frederic Guillot <fred@kanboard.net> | 2015-04-11 23:01:17 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2015-04-11 23:01:17 -0400 |
commit | 9ca2ba21272ddb1958e0b5b2f5842cde42508139 (patch) | |
tree | c6db297008d728a44040af5804386802b457219e /assets/js/src | |
parent | 7df055aff1e1056d87bb720531d60cb079805f94 (diff) |
Add burndown chart
Diffstat (limited to 'assets/js/src')
-rw-r--r-- | assets/js/src/analytic.js | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/assets/js/src/analytic.js b/assets/js/src/analytic.js index 26050a49..0912bbcb 100644 --- a/assets/js/src/analytic.js +++ b/assets/js/src/analytic.js @@ -2,7 +2,7 @@ Kanboard.Analytic = (function() { jQuery(document).ready(function() { - + if (Kanboard.Exists("analytic-task-repartition")) { Kanboard.Analytic.TaskRepartition.Init(); } @@ -12,12 +12,62 @@ Kanboard.Analytic = (function() { else if (Kanboard.Exists("analytic-cfd")) { Kanboard.Analytic.CFD.Init(); } + else if (Kanboard.Exists("analytic-burndown")) { + Kanboard.Analytic.Burndown.Init(); + } }); return {}; })(); +Kanboard.Analytic.Burndown = (function() { + + function fetchData() + { + jQuery.getJSON($("#chart").attr("data-url"), function(data) { + drawGraph(data.metrics, data.labels); + }); + } + + function drawGraph(metrics, labels) + { + var series = prepareSeries(metrics, labels); + + var svg = dimple.newSvg("#chart", "100%", 380); + var chart = new dimple.chart(svg, series); + + var x = chart.addCategoryAxis("x", labels['day']); + x.addOrderRule("Date"); + + chart.addMeasureAxis("y", labels['score']); + chart.addSeries(null, dimple.plot.line); + + chart.draw(); + } + + function prepareSeries(metrics, labels) + { + var series = []; + + for (var i = 0; i < metrics.length; i++) { + + var row = {}; + var score = parseInt(metrics[i]['score']); + row[labels['day']] = metrics[i]['day']; + row[labels['score']] = score; + series.push(row); + } + + return series; + } + + return { + Init: fetchData + }; + +})(); + Kanboard.Analytic.CFD = (function() { function fetchData() |