summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/graph_view.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/views/graph_view.js')
-rw-r--r--addons/web/static/src/js/views/graph_view.js26
1 files changed, 15 insertions, 11 deletions
diff --git a/addons/web/static/src/js/views/graph_view.js b/addons/web/static/src/js/views/graph_view.js
index 62ee1e62c23..c8ff16cd0f1 100644
--- a/addons/web/static/src/js/views/graph_view.js
+++ b/addons/web/static/src/js/views/graph_view.js
@@ -14,7 +14,7 @@ var _t = core._t;
var QWeb = core.qweb;
var GraphView = View.extend({
- className: 'oe_graph',
+ className: 'o_graph',
display_name: _lt('Graph'),
icon: 'fa-bar-chart',
require_fields: true,
@@ -54,12 +54,14 @@ var GraphView = View.extend({
if ($node) {
var context = {measures: _.pairs(_.omit(this.measures, '__count__'))};
this.$buttons = $(QWeb.render('GraphView.buttons', context));
- this.$measure_list = this.$buttons.find('.oe-measure-list');
+ this.$measure_list = this.$buttons.find('.o_graph_measures_list');
this.update_measure();
this.$buttons.find('button').tooltip();
this.$buttons.click(this.on_button_click.bind(this));
- this.$buttons.appendTo($node);
+ this.$buttons.find('.o_graph_button[data-mode="' + this.widget.mode + '"]').addClass('active');
+
+ this.$buttons.appendTo($node);
}
},
update_measure: function () {
@@ -86,7 +88,7 @@ var GraphView = View.extend({
},
do_search: function (domain, context, group_by) {
if (!this.widget) {
- this.initial_groupbys = context.graph_groupbys || this.initial_groupbys;
+ this.initial_groupbys = context.graph_groupbys || (group_by.length ? group_by : this.initial_groupbys);
this.widget = new GraphWidget(this, this.model, {
measure: context.graph_measure || this.active_measure,
mode: context.graph_mode || this.active_mode,
@@ -112,14 +114,16 @@ var GraphView = View.extend({
},
on_button_click: function (event) {
var $target = $(event.target);
- if ($target.hasClass('oe-bar-mode')) {this.widget.set_mode('bar');}
- if ($target.hasClass('oe-line-mode')) {this.widget.set_mode('line');}
- if ($target.hasClass('oe-pie-mode')) {this.widget.set_mode('pie');}
- if ($target.parents('.oe-measure-list').length) {
- var parent = $target.parent(),
- field = parent.data('field');
+ if ($target.hasClass('o_graph_button')) {
+ this.widget.set_mode($target.data('mode'));
+ this.$buttons.find('.o_graph_button.active').removeClass('active');
+ $target.addClass('active');
+ }
+ else if ($target.parents('.o_graph_measures_list').length) {
+ var parent = $target.parent();
+ var field = parent.data('field');
this.active_measure = field;
- parent.toggleClass('selected');
+ event.preventDefault();
event.stopPropagation();
this.update_measure();
this.widget.set_measure(this.active_measure);