From: etimberg Date: Sun, 18 Oct 2015 22:14:56 +0000 (-0400) Subject: Update docs a bit for new items. Small updates for tooltip labels. X-Git-Tag: 2.0.0-beta~4^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=082391e3859f6941e11f962fb200d3284587a933;p=thirdparty%2FChart.js.git Update docs a bit for new items. Small updates for tooltip labels. --- diff --git a/docs/00-Getting-Started.md b/docs/00-Getting-Started.md index cbbb5ba29..39db54b37 100644 --- a/docs/00-Getting-Started.md +++ b/docs/00-Getting-Started.md @@ -101,8 +101,22 @@ Chart.defaults.global = { // Element defaults defined in element extensions elements: {}, - // Legend template string - legendTemplate: "", + // Legend callback function. + // @param {Chart} chart : the chart object to generate a legend for + legendCallback: legendCallback: function(chart) { + var text = []; + text.push(''); + + return text.join(""); + } animation: { duration: 1000, @@ -128,18 +142,38 @@ Chart.defaults.global = { caretSize: 8, cornerRadius: 6, xOffset: 10, - template: [ - '<% if(label){ %>', - '<%=label %>: ', - '<% } %>', - '<%=value %>', - ].join(''), - multiTemplate: [ - '<%if (datasetLabel){ %>', - '<%=datasetLabel %>: ', - '<% } %>', - '<%=value %>' - ].join(''), + // V2.0 introduces callback functions as a replacement for the template engine in v1. The tooltip + // has the following callbacks for providing text. For all functions, 'this' will be the tooltip object + // create from the Chart.Tooltip constructor + // + // All functions are called with the same arguments + // - xLabel : string or array of strings. This is the xDataValue for each item to be displayed in the tooltip + // - yLabel : string or array of strings. This is the yDataValue for each item to be displayed in the tooltip + // - index : number. Data index + // - datasetIndex : number. Dataset index + // - data : object. Data object passed to chart + callbacks: { + beforeTitle: helpers.noop, + title: function(xLabel, yLabel, index, datasetIndex, data) { + // If there are multiple items, use the xLabel of the + return helpers.isArray(xLabel) ? xLabel[0] : xLabel; + }, + afterTitle: helpers.noop, + + beforeBody: helpers.noop, + + beforeLabel: helpers.noop, + label: function(xLabel, yLabel, index, datasetIndex, data) { + return this._data.datasets[datasetIndex].label + ': ' + yLabel; + }, + afterLabel: helpers.noop, + + afterBody: helpers.noop, + + beforeFooter: helpers.noop, + footer: helpers.noop, + afterFooter: helpers.noop, + }, multiKeyBackground: '#fff', }, diff --git a/src/core/core.tooltip.js b/src/core/core.tooltip.js index a45889d61..29c19488a 100644 --- a/src/core/core.tooltip.js +++ b/src/core/core.tooltip.js @@ -40,7 +40,8 @@ callbacks: { beforeTitle: helpers.noop, title: function(xLabel, yLabel, index, datasetIndex, data) { - return this._options.tooltips.mode == 'single' ? data.datasets[datasetIndex].label : data.labels[index]; + // Pick first label for now + return helpers.isArray(xLabel) ? xLabel[0] : xLabel; }, afterTitle: helpers.noop, @@ -48,7 +49,7 @@ beforeLabel: helpers.noop, label: function(xLabel, yLabel, index, datasetIndex, data) { - return xLabel + ': ' + yLabel; + return this._data.datasets[datasetIndex].label + ': ' + yLabel; }, afterLabel: helpers.noop,