Skip to content

Commit 0b86cf9

Browse files
committed
Updates based on feedback
1 parent 0d9c607 commit 0b86cf9

File tree

5 files changed

+43
-31
lines changed

5 files changed

+43
-31
lines changed

karma.conf.js

-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ module.exports = function(karma) {
7878
// These settings deal with browser disconnects. We had seen test flakiness from Firefox
7979
// [Firefox 56.0.0 (Linux 0.0.0)]: Disconnected (1 times), because no message in 10000 ms.
8080
// https://github.com/jasmine/jasmine/issues/1327#issuecomment-332939551
81-
browserNoActivityTimeout: 1000000,
8281
browserDisconnectTolerance: 3
8382
});
8483

src/controllers/controller.line.js

+20-19
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@ defaults._set('line', {
2626
}
2727
});
2828

29-
defaults._set('dataset', {
30-
line: {
31-
showLine: true,
32-
spanGaps: false
29+
defaults._set('global', {
30+
datasets: {
31+
line: {
32+
showLine: true,
33+
spanGaps: false
34+
}
3335
}
3436
});
3537

@@ -48,9 +50,8 @@ module.exports = DatasetController.extend({
4850
var lineElementOptions = options.elements.line;
4951
var scale = me.getScaleForId(meta.yAxisID);
5052
var dataset = me.getDataset();
51-
var datasetDefaultOpts = me.getDatasetDefaultOpts();
52-
var datasetUserOpts = me.getDatasetUserOptions();
53-
var showLine = me._showLine = resolve([datasetUserOpts.showLine, options.showLines, datasetDefaultOpts.showLine]);
53+
var datasetDefaults = me._defaults();
54+
var showLine = me._showLine = resolve([dataset.showLine, options.showLines, datasetDefaults.showLine]);
5455
var i, ilen, custom;
5556

5657
// Update Line
@@ -73,18 +74,18 @@ module.exports = DatasetController.extend({
7374
// The default behavior of lines is to break at null values, according
7475
// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158
7576
// This option gives lines the ability to span gaps
76-
spanGaps: resolve([datasetUserOpts.spanGaps, options.spanGaps, datasetDefaultOpts.spanGaps]),
77-
tension: resolve([custom.tension, dataset.lineTension, lineElementOptions.tension]),
78-
backgroundColor: resolve([custom.backgroundColor, dataset.backgroundColor, lineElementOptions.backgroundColor]),
79-
borderWidth: resolve([custom.borderWidth, dataset.borderWidth, lineElementOptions.borderWidth]),
80-
borderColor: resolve([custom.borderColor, dataset.borderColor, lineElementOptions.borderColor]),
81-
borderCapStyle: resolve([custom.borderCapStyle, dataset.borderCapStyle, lineElementOptions.borderCapStyle]),
82-
borderDash: resolve([custom.borderDash, dataset.borderDash, lineElementOptions.borderDash]),
83-
borderDashOffset: resolve([custom.borderDashOffset, dataset.borderDashOffset, lineElementOptions.borderDashOffset]),
84-
borderJoinStyle: resolve([custom.borderJoinStyle, dataset.borderJoinStyle, lineElementOptions.borderJoinStyle]),
85-
fill: resolve([custom.fill, dataset.fill, lineElementOptions.fill]),
86-
steppedLine: resolve([custom.steppedLine, dataset.steppedLine, lineElementOptions.stepped]),
87-
cubicInterpolationMode: resolve([custom.cubicInterpolationMode, dataset.cubicInterpolationMode, lineElementOptions.cubicInterpolationMode]),
77+
spanGaps: resolve([dataset.spanGaps, options.spanGaps, datasetDefaults.spanGaps]),
78+
tension: resolve([custom.tension, dataset.lineTension, lineElementOptions.tension, datasetDefaults.tension]),
79+
backgroundColor: resolve([custom.backgroundColor, dataset.backgroundColor, lineElementOptions.backgroundColor, datasetDefaults.backgroundColor]),
80+
borderWidth: resolve([custom.borderWidth, dataset.borderWidth, lineElementOptions.borderWidth, datasetDefaults.borderWidth]),
81+
borderColor: resolve([custom.borderColor, dataset.borderColor, lineElementOptions.borderColor, datasetDefaults.borderColor]),
82+
borderCapStyle: resolve([custom.borderCapStyle, dataset.borderCapStyle, lineElementOptions.borderCapStyle, datasetDefaults.borderCapStyle]),
83+
borderDash: resolve([custom.borderDash, dataset.borderDash, lineElementOptions.borderDash, datasetDefaults.borderDash]),
84+
borderDashOffset: resolve([custom.borderDashOffset, dataset.borderDashOffset, lineElementOptions.borderDashOffset, datasetDefaults.borderDashOffset]),
85+
borderJoinStyle: resolve([custom.borderJoinStyle, dataset.borderJoinStyle, lineElementOptions.borderJoinStyle, datasetDefaults.borderJoinStyle]),
86+
fill: resolve([custom.fill, dataset.fill, lineElementOptions.fill, datasetDefaults.fill]),
87+
steppedLine: resolve([custom.steppedLine, dataset.steppedLine, lineElementOptions.stepped, datasetDefaults.steppedLine]),
88+
cubicInterpolationMode: resolve([custom.cubicInterpolationMode, dataset.cubicInterpolationMode, lineElementOptions.cubicInterpolationMode, datasetDefaults.cubicInterpolationMode]),
8889
};
8990

9091
line.pivot();

src/controllers/controller.scatter.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ defaults._set('scatter', {
3333
}
3434
});
3535

36-
defaults._set('dataset', {
37-
scatter: {
38-
showLine: false
36+
defaults._set('global', {
37+
datasets: {
38+
scatter: {
39+
showLine: false
40+
}
3941
}
4042
});
4143

src/core/core.controller.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ helpers.extend(Chart.prototype, /** @lends Chart */ {
503503
return;
504504
}
505505

506-
meta.controller.update();
506+
meta.controller._update();
507507

508508
plugins.notify(me, 'afterDatasetUpdate', [args]);
509509
},

src/core/core.datasetController.js

+17-7
Original file line numberDiff line numberDiff line change
@@ -236,10 +236,20 @@ helpers.extend(DatasetController.prototype, {
236236
},
237237

238238
/**
239-
* Returns the user-supplied dataset-level options
240-
* @protected
239+
* Private functionality to be called before every update
240+
* @private
241+
*/
242+
_update: function() {
243+
var me = this;
244+
me._config = me._configure();
245+
me.update.apply(me, arguments);
246+
},
247+
248+
/**
249+
* Returns the merged user-supplied and default dataset-level options
250+
* @private
241251
*/
242-
getDatasetUserOptions: function() {
252+
_configure: function() {
243253
var me = this;
244254
var dataset = me.getDataset();
245255
var datasetOptions = {};
@@ -252,18 +262,18 @@ helpers.extend(DatasetController.prototype, {
252262
datasetOptions[key] = helpers.clone(dataset[key]);
253263
}
254264
}
255-
return datasetOptions;
265+
return helpers.merge({}, [datasetOptions, me._defaults()]);
256266
},
257267

258268
/**
259269
* Returns the default dataset-level options
260-
* @protected
270+
* @private
261271
*/
262-
getDatasetDefaultOpts: function() {
272+
_defaults: function() {
263273
var me = this;
264274
var dataset = me.getDataset();
265275
var type = helpers.valueOrDefault(dataset.type, me.chart.config.type);
266-
return defaults.dataset[type];
276+
return defaults.global.datasets[type];
267277
},
268278

269279
update: helpers.noop,

0 commit comments

Comments
 (0)