From 1017934dce79a4bf2e0396a7b256a8bf3599e4d6 Mon Sep 17 00:00:00 2001 From: etimberg Date: Fri, 30 Oct 2015 20:35:36 -0400 Subject: [PATCH] tooltips for radar charts are working --- src/controllers/controller.radar.js | 1 + src/core/core.tooltip.js | 18 +++++++++++++++--- src/scales/scale.radialLinear.js | 3 +++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/controllers/controller.radar.js b/src/controllers/controller.radar.js index 1cc44e0d7..b8bcf1441 100644 --- a/src/controllers/controller.radar.js +++ b/src/controllers/controller.radar.js @@ -167,6 +167,7 @@ // Utility _datasetIndex: this.index, _index: index, + _scale: this.chart.scale, // Desired view properties _model: { diff --git a/src/core/core.tooltip.js b/src/core/core.tooltip.js index e79993c80..bc6079549 100644 --- a/src/core/core.tooltip.js +++ b/src/core/core.tooltip.js @@ -42,7 +42,17 @@ beforeTitle: helpers.noop, title: function(tooltipItems, data) { // Pick first xLabel for now - return tooltipItems.length > 0 ? tooltipItems[0].xLabel : ''; + var title = ''; + + if (tooltipItems.length > 0) { + if (tooltipItems[0].xLabel) { + title = tooltipItems[0].xLabel; + } else if (data.labels.length > 0 && tooltipItems[0].index < data.labels.length) { + title = data.labels[tooltipItems[0].index]; + } + } + + return title; }, afterTitle: helpers.noop, @@ -194,9 +204,10 @@ var tooltipItems = []; if (this._options.tooltips.mode == 'single') { + var yScale = element._yScale || element._scale; // handle radar || polarArea charts tooltipItems.push({ xLabel: element._xScale ? element._xScale.getLabelForIndex(element._index, element._datasetIndex) : '', - yLabel: element._yScale ? element._yScale.getLabelForIndex(element._index, element._datasetIndex) : '', + yLabel: yScale ? yScale.getLabelForIndex(element._index, element._datasetIndex) : '', index: element._index, datasetIndex: element._datasetIndex, }); @@ -207,10 +218,11 @@ return; } var currentElement = dataset.metaData[element._index]; + var yScale = element._yScale || element._scale; // handle radar || polarArea charts tooltipItems.push({ xLabel: currentElement._xScale ? currentElement._xScale.getLabelForIndex(currentElement._index, currentElement._datasetIndex) : '', - yLabel: currentElement._yScale ? currentElement._yScale.getLabelForIndex(currentElement._index, currentElement._datasetIndex) : '', + yLabel: yScale ? yScale.getLabelForIndex(currentElement._index, currentElement._datasetIndex) : '', index: element._index, datasetIndex: datasetIndex, }); diff --git a/src/scales/scale.radialLinear.js b/src/scales/scale.radialLinear.js index 62b9ee892..75ef7a958 100644 --- a/src/scales/scale.radialLinear.js +++ b/src/scales/scale.radialLinear.js @@ -151,6 +151,9 @@ this.zeroLineIndex = this.ticks.indexOf(0); }, + getLabelForIndex: function(index, datasetIndex) { + return this.getRightValue(this.data.datasets[datasetIndex].data[index]); + }, getCircumference: function() { return ((Math.PI * 2) / this.getValueCount()); },