summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/graph/graph_controller.js
diff options
context:
space:
mode:
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.js23
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();