diff options
Diffstat (limited to 'addons/web/static/src/js/views/graph/graph_controller.js')
| -rw-r--r-- | addons/web/static/src/js/views/graph/graph_controller.js | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/addons/web/static/src/js/views/graph/graph_controller.js b/addons/web/static/src/js/views/graph/graph_controller.js index a88a94b786f..9e2ebfc0a78 100644 --- a/addons/web/static/src/js/views/graph/graph_controller.js +++ b/addons/web/static/src/js/views/graph/graph_controller.js @@ -114,12 +114,11 @@ var GraphController = AbstractController.extend(GroupByMenuMixin,{ _setGroupby: function (groupBy) { this.update({groupBy: groupBy}); }, - /** * @todo remove this and directly calls update. Update should be overridden * and modified to call _updateButtons * - * private + * @private * * @param {'pie'|'line'|'bar'} mode */ @@ -139,6 +138,15 @@ var GraphController = AbstractController.extend(GroupByMenuMixin,{ }); }, /** + * @private + * + * @param {boolean} stacked + */ + _toggleStackMode: function (stacked) { + this.update({stacked: stacked}); + this._updateButtons(); + }, + /** * override * * @private @@ -160,6 +168,11 @@ var GraphController = AbstractController.extend(GroupByMenuMixin,{ this.$buttons .find('.o_graph_button[data-mode="' + state.mode + '"]') .addClass('active'); + this.$buttons + .find('.o_graph_button[data-mode="stack"]') + .data('stacked', state.stacked) + .toggleClass('active', state.stacked) + .toggleClass('o_hidden', state.mode !== 'bar'); _.each(this.$measureList.find('.dropdown-item'), function (item) { var $item = $(item); $item.toggleClass('selected', $item.data('field') === state.measure); @@ -180,7 +193,11 @@ var GraphController = AbstractController.extend(GroupByMenuMixin,{ var $target = $(ev.target); var field; if ($target.hasClass('o_graph_button')) { - this._setMode($target.data('mode')); + if (_.contains(['bar','line', 'pie'], $target.data('mode'))) { + this._setMode($target.data('mode')); + } else if ($target.data('mode') === 'stack') { + this._toggleStackMode(!$target.data('stacked')); + } } else if ($target.parents('.o_graph_measures_list').length) { ev.preventDefault(); ev.stopPropagation(); |
