]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
tooltips for radar charts are working
authoretimberg <evert.timberg@gmail.com>
Sat, 31 Oct 2015 00:35:36 +0000 (20:35 -0400)
committeretimberg <evert.timberg@gmail.com>
Sat, 31 Oct 2015 00:35:36 +0000 (20:35 -0400)
src/controllers/controller.radar.js
src/core/core.tooltip.js
src/scales/scale.radialLinear.js

index 1cc44e0d76fc774fa26f42f177f9b6c5716f9869..b8bcf1441e826e1e124d9c60408a7975c608abbe 100644 (file)
                                // Utility
                                _datasetIndex: this.index,
                                _index: index,
+                               _scale: this.chart.scale,
 
                                // Desired view properties
                                _model: {
index e79993c8081355ac9ba966873559fec904406bee..bc6079549f6ed392ab696fbd91ffcbdaa09027e3 100644 (file)
                        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,
 
                        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,
                                });
                                                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,
                                        });
index 62b9ee8921f7909a8ca4aa45b1f37ed39c8fdcae..75ef7a9585bd7fb7837a5560b924397c91999f80 100644 (file)
 
                        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());
                },