summaryrefslogtreecommitdiff
path: root/assets/js/components/chart-project-cumulative-flow.js
blob: 7b258230bfd1c7de167b82c6aa26e6bae78b7e1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
KB.component('chart-project-cumulative-flow', function (containerElement, options) {

    this.render = function () {
        var metrics = options.metrics;
        var columns = [];
        var groups = [];
        var categories = [];
        var inputFormat = d3.time.format("%Y-%m-%d");
        var outputFormat = d3.time.format(options.dateFormat);

        for (var i = 0; i < metrics.length; i++) {

            for (var j = 0; j < metrics[i].length; j++) {

                if (i === 0) {
                    columns.push([metrics[i][j]]);

                    if (j > 0) {
                        groups.push(metrics[i][j]);
                    }
                } else {

                    columns[j].push(metrics[i][j]);

                    if (j === 0) {
                        categories.push(outputFormat(inputFormat.parse(metrics[i][j])));
                    }
                }
            }
        }

        KB.dom(containerElement).add(KB.dom('div').attr('id', 'chart').build());

        c3.generate({
            data: {
                columns: columns,
                type: 'area-spline',
                groups: [groups]
            },
            axis: {
                x: {
                    type: 'category',
                    categories: categories
                }
            }
        });
    };
});