Toggling of doughnut items now works

This commit is contained in:
Evert Timberg 2015-12-07 21:23:20 -05:00
parent 8befbbe8f0
commit 59b7927994

View File

@ -41,12 +41,28 @@
return { return {
text: label, text: label,
fillStyle: data.datasets[0].backgroundColor[i], fillStyle: data.datasets[0].backgroundColor[i],
hidden: isNaN(data.datasets[0].data[i]),
// Extra data used for toggling the correct item // Extra data used for toggling the correct item
index: i index: i
}; };
}); });
} }
},
onClick: function(e, legendItem) {
helpers.each(this.chart.data.datasets, function(dataset) {
dataset.metaHiddenData = dataset.metaHiddenData || [];
var idx = legendItem.index;
if (!isNaN(dataset.data[idx])) {
dataset.metaHiddenData[idx] = dataset.data[idx];
dataset.data[idx] = NaN;
} else if (!isNaN(dataset.metaHiddenData[idx])) {
dataset.data[idx] = dataset.metaHiddenData[idx];
}
});
this.chart.update();
} }
}, },
@ -171,7 +187,9 @@
this.getDataset().total = 0; this.getDataset().total = 0;
helpers.each(this.getDataset().data, function(value) { helpers.each(this.getDataset().data, function(value) {
if (!isNaN(value)) {
this.getDataset().total += Math.abs(value); this.getDataset().total += Math.abs(value);
}
}, this); }, this);
this.outerRadius = this.chart.outerRadius - (this.chart.radiusLength * this.getRingIndex(this.index)); this.outerRadius = this.chart.outerRadius - (this.chart.radiusLength * this.getRingIndex(this.index));
@ -263,7 +281,7 @@
}, },
calculateCircumference: function(value) { calculateCircumference: function(value) {
if (this.getDataset().total > 0) { if (this.getDataset().total > 0 && !isNaN(value)) {
return (Math.PI * 1.999999) * (value / this.getDataset().total); return (Math.PI * 1.999999) * (value / this.getDataset().total);
} else { } else {
return 0; return 0;