Add graph for user repartition

This commit is contained in:
Frédéric Guillot
2014-11-13 20:37:37 -05:00
parent e4efc73a90
commit 1487cb2763
22 changed files with 234 additions and 15 deletions

View File

@@ -4,15 +4,18 @@ Kanboard.Analytic = (function() {
return {
Init: function() {
if (Kanboard.Exists("analytic-repartition")) {
Kanboard.Analytic.Repartition.Init();
if (Kanboard.Exists("analytic-task-repartition")) {
Kanboard.Analytic.TaskRepartition.Init();
}
else if (Kanboard.Exists("analytic-user-repartition")) {
Kanboard.Analytic.UserRepartition.Init();
}
}
};
})();
Kanboard.Analytic.Repartition = (function() {
Kanboard.Analytic.TaskRepartition = (function() {
function fetchData()
{
@@ -56,3 +59,48 @@ Kanboard.Analytic.Repartition = (function() {
};
})();
Kanboard.Analytic.UserRepartition = (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", 700, 350);
var chart = new dimple.chart(svg, series);
chart.addMeasureAxis("p", labels["nb_tasks"]);
var ring = chart.addSeries(labels["user"], dimple.plot.pie);
ring.innerRadius = "50%";
chart.addLegend(0, 0, 100, 100, "left");
chart.draw();
}
function prepareSeries(metrics, labels)
{
var series = [];
for (var i = 0; i < metrics.length; i++) {
var serie = {};
serie[labels["nb_tasks"]] = metrics[i]["nb_tasks"];
serie[labels["user"]] = metrics[i]["user"];
series.push(serie);
}
return series;
}
return {
Init: fetchData
};
})();

View File

@@ -273,15 +273,18 @@ Kanboard.Analytic = (function() {
return {
Init: function() {
if (Kanboard.Exists("analytic-repartition")) {
Kanboard.Analytic.Repartition.Init();
if (Kanboard.Exists("analytic-task-repartition")) {
Kanboard.Analytic.TaskRepartition.Init();
}
else if (Kanboard.Exists("analytic-user-repartition")) {
Kanboard.Analytic.UserRepartition.Init();
}
}
};
})();
Kanboard.Analytic.Repartition = (function() {
Kanboard.Analytic.TaskRepartition = (function() {
function fetchData()
{
@@ -324,6 +327,51 @@ Kanboard.Analytic.Repartition = (function() {
Init: fetchData
};
})();
Kanboard.Analytic.UserRepartition = (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", 700, 350);
var chart = new dimple.chart(svg, series);
chart.addMeasureAxis("p", labels["nb_tasks"]);
var ring = chart.addSeries(labels["user"], dimple.plot.pie);
ring.innerRadius = "50%";
chart.addLegend(0, 0, 100, 100, "left");
chart.draw();
}
function prepareSeries(metrics, labels)
{
var series = [];
for (var i = 0; i < metrics.length; i++) {
var serie = {};
serie[labels["nb_tasks"]] = metrics[i]["nb_tasks"];
serie[labels["user"]] = metrics[i]["user"];
series.push(serie);
}
return series;
}
return {
Init: fetchData
};
})();
// Initialization
$(function() {