kb / assets /js /components /chart-project-cumulative-flow.js
Xv Zan
ULFS
e4f4821
raw
history blame
1.71 kB
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++) {
var currentValue = metrics[i][j];
if (i === 0) {
if (j > 0) {
groups.push(currentValue);
columns.push([currentValue]);
}
} else {
if (j > 0) {
columns[j - 1].push(currentValue);
} else {
categories.push(outputFormat(inputFormat.parse(currentValue)));
}
}
}
}
KB.dom(containerElement).add(KB.dom('div').attr('id', 'chart').build());
c3.generate({
data: {
// Example: [["Column1", 1, 2, 3], ["Column2", 1, 2, 3]]
// Note: values are reversed to make sure the columns are stacked in the right order
columns: columns.reverse(),
type: 'area-spline',
groups: [groups],
// Note: Use specified order otherwise C3js reorder series
order: null
},
axis: {
x: {
type: 'category',
categories: categories
}
}
});
};
});