analytics: Fix pie chart sorting computations in stats.js.

This commit is contained in:
Rishi Gupta
2017-02-02 18:16:19 -08:00
parent 621e3f68ba
commit aafb1c70f0

View File

@@ -385,36 +385,43 @@ function round_percentages(values) {
} }
function get_labels_and_data(names, data_subgroup, time_frame_integer) { function get_labels_and_data(names, data_subgroup, time_frame_integer) {
var labels = []; var data = [];
var values = [];
for (var key in data_subgroup) { for (var key in data_subgroup) {
if (data_subgroup.hasOwnProperty(key)) { if (data_subgroup[key].length < time_frame_integer) {
var sum = 0; time_frame_integer = data_subgroup[key].length;
for (var i = time_frame_integer - 1; i >= 0; i-=1) { }
sum += data_subgroup[key][i]; var sum = 0;
} for (var i=1; i<=time_frame_integer; i+=1) {
if (sum > 0) { sum += data_subgroup[key][data_subgroup[key].length-i];
values.push(sum); }
labels.push(names[key]); if (sum > 0) {
} data.push({
value: sum,
label: names.hasOwnProperty(key) ? names[key] : key,
});
} }
} }
labels = labels.sort(function (a, b) { data.sort(function (a, b) {
return values[labels.indexOf(b)] - values[labels.indexOf(a)]; return b.value - a.value;
}); });
// Sort descending, using numeric comparison instead of the default string var labels = [];
// comparison var values = [];
values = values.sort(function (a, b) { var j;
return b - a; if (data.length <= 6) {
}); for (j=0; j<data.length; j+=1) {
if (values.length > 6) { labels.push(data[j].label);
labels = labels.slice(0, 5); values.push(data[j].value);
labels.push("Other");
var sum_remaining = 0;
for (var j=5; j<values.length; j+=1) {
sum_remaining += values[j];
} }
values = values.slice(0, 5); } else {
for (j=0; j<5; j+=1) {
labels.push(data[j].label);
values.push(data[j].value);
}
var sum_remaining = 0;
for (j=5; j<data.length; j+=1) {
sum_remaining += data[j].value;
}
labels.push("Other");
values.push(sum_remaining); values.push(sum_remaining);
} }
return [labels, values]; return [labels, values];