From 6cdadb6a1bb414f1ce85d6d15e61d49bcca2e515 Mon Sep 17 00:00:00 2001 From: Ben McCann Date: Sun, 14 Jan 2018 17:36:07 -0800 Subject: [PATCH] Better handling of mixed line / scatter charts --- src/controllers/controller.line.js | 13 ++++++------- src/controllers/controller.scatter.js | 10 ++++++---- src/core/core.js | 1 - 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/controllers/controller.line.js b/src/controllers/controller.line.js index 7aacf2d23e2..4e8c92a9457 100644 --- a/src/controllers/controller.line.js +++ b/src/controllers/controller.line.js @@ -5,7 +5,6 @@ var elements = require('../elements/index'); var helpers = require('../helpers/index'); defaults._set('line', { - showLines: true, spanGaps: false, hover: { @@ -26,10 +25,6 @@ defaults._set('line', { module.exports = function(Chart) { - function lineEnabled(dataset, options) { - return helpers.valueOrDefault(dataset.showLine, options.showLines); - } - Chart.controllers.line = Chart.DatasetController.extend({ datasetElementType: elements.Line, @@ -46,7 +41,7 @@ module.exports = function(Chart) { var scale = me.getScaleForId(meta.yAxisID); var i, ilen, custom; var dataset = me.getDataset(); - var showLine = lineEnabled(dataset, options); + var showLine = me.lineEnabled(dataset, options); // Update Line if (showLine) { @@ -286,7 +281,7 @@ module.exports = function(Chart) { var halfBorderWidth; var i = 0; - if (lineEnabled(me.getDataset(), chart.options)) { + if (me.lineEnabled(me.getDataset(), chart.options)) { halfBorderWidth = (meta.dataset._model.borderWidth || 0) / 2; helpers.canvas.clipArea(chart.ctx, { @@ -336,6 +331,10 @@ module.exports = function(Chart) { model.backgroundColor = me.getPointBackgroundColor(point, index); model.borderColor = me.getPointBorderColor(point, index); model.borderWidth = me.getPointBorderWidth(point, index); + }, + + lineEnabled: function(dataset, options) { + return helpers.valueOrDefault(dataset.showLine, helpers.valueOrDefault(options.showLines, true)); } }); }; diff --git a/src/controllers/controller.scatter.js b/src/controllers/controller.scatter.js index b2e2cf1f7e1..846c547c7dc 100644 --- a/src/controllers/controller.scatter.js +++ b/src/controllers/controller.scatter.js @@ -1,6 +1,7 @@ 'use strict'; var defaults = require('../core/core.defaults'); +var helpers = require('../helpers/index'); defaults._set('scatter', { hover: { @@ -20,8 +21,6 @@ defaults._set('scatter', { }] }, - showLines: false, - tooltips: { callbacks: { title: function() { @@ -36,7 +35,10 @@ defaults._set('scatter', { module.exports = function(Chart) { - // Scatter charts use line controllers - Chart.controllers.scatter = Chart.controllers.line; + Chart.controllers.scatter = Chart.controllers.line.extend({ + lineEnabled: function(dataset, options) { + return helpers.valueOrDefault(dataset.showLine, helpers.valueOrDefault(options.showLines, false)); + } + }); }; diff --git a/src/core/core.js b/src/core/core.js index 906b897c699..d5d439434b4 100644 --- a/src/core/core.js +++ b/src/core/core.js @@ -19,7 +19,6 @@ defaults._set('global', { defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", defaultFontSize: 12, defaultFontStyle: 'normal', - showLines: true, // Element defaults defined in element extensions elements: {},