diff options
| author | Mathieu Duckerts-Antoine <dam@odoo.com> | 2019-06-25 08:05:47 +0000 |
|---|---|---|
| committer | Mathieu Duckerts-Antoine <dam@odoo.com> | 2019-07-16 07:55:04 +0000 |
| commit | 6ef6881a1211af1bccd2fe2cdb89805156b1e51a (patch) | |
| tree | ffce2b7fad28c68633ef43c5245fe5681cb7c60e /addons/web | |
| parent | a87cbcadbced018f4dafdf8a48c56f9e7e36b668 (diff) | |
[FIX] web: style chart elements in graph views only locally
The elements style was set globally and thus used to modify
the style of any chart in Odoo after the first loading of a
graph view. For instance, the charts drawn in
sale_subscription_dashboard are not the same before and after
the first loading of a graph view. This is fixed by this
commit.
Diffstat (limited to 'addons/web')
| -rw-r--r-- | addons/web/static/src/js/views/graph/graph_renderer.js | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/addons/web/static/src/js/views/graph/graph_renderer.js b/addons/web/static/src/js/views/graph/graph_renderer.js index 02fdb102358..89c31075942 100644 --- a/addons/web/static/src/js/views/graph/graph_renderer.js +++ b/addons/web/static/src/js/views/graph/graph_renderer.js @@ -216,6 +216,24 @@ return AbstractRenderer.extend({ return this.state.origins[dataPt.originIndex]; }, /** + * Returns an object used to style chart elements independently from the datasets. + * + * @private + * @returns {Object} + */ + _getElementOptions: function () { + var elementOptions = {}; + if (this.state.mode === 'bar') { + elementOptions.rectangle = {borderWidth: 1}; + } else if (this.state.mode === 'line') { + elementOptions.line = { + tension: 0, + fill: false, + }; + } + return elementOptions; + }, + /** * Returns a DateClasses instance used to manage equivalence of dates. * * @private @@ -563,6 +581,7 @@ return AbstractRenderer.extend({ scales: this._getScaleOptions(), legend: this._getLegendOptions(datasetsCount), tooltips: this._getTooltipOptions(datasetsCount), + elements: this._getElementOptions(), }; }, /** @@ -661,9 +680,6 @@ return AbstractRenderer.extend({ _renderBarChart: function (dataPoints) { var self = this; - // style rectangles - Chart.defaults.global.elements.rectangle.borderWidth = 1; - // prepare data var data = this._prepareData(dataPoints); data.datasets.forEach(function (dataset, index) { @@ -694,10 +710,6 @@ return AbstractRenderer.extend({ _renderLineChart: function (dataPoints) { var self = this; - // style lines - Chart.defaults.global.elements.line.tension = 0; - Chart.defaults.global.elements.line.fill = false; - // prepare data var data = this._prepareData(dataPoints); data.datasets.forEach(function (dataset, index) { |
