summaryrefslogtreecommitdiff
path: root/addons/web_graph/static/src
diff options
context:
space:
mode:
authorChristophe Simonis <chs@openerp.com>2014-03-11 14:22:00 +0100
committerChristophe Simonis <chs@openerp.com>2014-03-11 14:22:00 +0100
commitc3827cb8f78a441d4a0c71a825bbb51a7ebe4085 (patch)
treec08481f8f51cd3f58aa14baa60cc32b01f2a0338 /addons/web_graph/static/src
parent096432ff73057b819aefa4bfce81488711478cd8 (diff)
parentf8bad6f81467658103a8ffc6d3f3eadd42b1f371 (diff)
[MERGE] forward port of branch saas-3 up to revid 3967 jke@openerp.com-20140311093515-02xw8phrcqhgz6zx
bzr revid: chs@openerp.com-20140311132200-1bln6gaj80njyh18
Diffstat (limited to 'addons/web_graph/static/src')
-rw-r--r--addons/web_graph/static/src/css/graph.css8
-rw-r--r--addons/web_graph/static/src/js/graph_view.js52
-rw-r--r--addons/web_graph/static/src/js/graph_widget.js7
3 files changed, 44 insertions, 23 deletions
diff --git a/addons/web_graph/static/src/css/graph.css b/addons/web_graph/static/src/css/graph.css
index 2213f655a6b..1949028d6d8 100644
--- a/addons/web_graph/static/src/css/graph.css
+++ b/addons/web_graph/static/src/css/graph.css
@@ -1,5 +1,9 @@
-.graph_main_content {
- position: relative;
+.graph_pivot_mode {
+ position:initial;
+}
+
+.graph_chart_mode {
+ position:relative;
}
.graph_main_content td {
diff --git a/addons/web_graph/static/src/js/graph_view.js b/addons/web_graph/static/src/js/graph_view.js
index fa39fc581db..25a1f932cc4 100644
--- a/addons/web_graph/static/src/js/graph_view.js
+++ b/addons/web_graph/static/src/js/graph_view.js
@@ -140,11 +140,20 @@ instance.web_graph.GraphView = instance.web.View.extend({
// add groupby to the search view
register_groupby: function(row_groupby, col_groupby) {
- var query = this.search_view.query;
+ var query = this.search_view.query,
+ groupbys = this.get_groupbys_from_searchview(),
+ search_row_groupby = groupbys.group_by,
+ search_col_groupby = groupbys.col_group_by,
+ row_gb_changed = !_.isEqual(_.pluck(row_groupby, 'field'), search_row_groupby),
+ col_gb_changed = !_.isEqual(_.pluck(col_groupby, 'field'), search_col_groupby);
if (!_.has(this.search_view, '_s_groupby')) { return; }
- if (row_groupby.length && col_groupby.length) {
+ if (!row_gb_changed && !col_gb_changed) {
+ return;
+ }
+
+ if (row_gb_changed && col_gb_changed) {
// when two changes to the search view will be done, the method do_search
// will be called twice, once with the correct groupby and incorrect col_groupby,
// and once with correct informations. This flag is necessary to prevent the
@@ -152,26 +161,31 @@ instance.web_graph.GraphView = instance.web.View.extend({
this.ignore_do_search = true;
}
- // add row groupbys
- var row_facet = this.make_row_groupby_facets(row_groupby),
- row_search_facet = query.findWhere({category:'GroupBy'});
+ if (row_gb_changed) {
+ // add row groupbys
+ var row_facet = this.make_row_groupby_facets(row_groupby),
+ row_search_facet = query.findWhere({category:'GroupBy'});
- if (row_search_facet) {
- row_search_facet.values.reset(row_facet.values);
- } else {
- if (row_groupby.length) {
- query.add(row_facet);
+ if (row_search_facet) {
+ row_search_facet.values.reset(row_facet.values);
+ } else {
+ if (row_groupby.length) {
+ query.add(row_facet);
+ }
}
}
- // add col groupbys
- var col_facet = this.make_col_groupby_facets(col_groupby),
- col_search_facet = query.findWhere({category:'ColGroupBy'});
-
- if (col_search_facet) {
- col_search_facet.values.reset(col_facet.values);
- } else {
- if (col_groupby.length) {
- query.add(col_facet);
+
+ if (col_gb_changed) {
+ // add col groupbys
+ var col_facet = this.make_col_groupby_facets(col_groupby),
+ col_search_facet = query.findWhere({category:'ColGroupBy'});
+
+ if (col_search_facet) {
+ col_search_facet.values.reset(col_facet.values);
+ } else {
+ if (col_groupby.length) {
+ query.add(col_facet);
+ }
}
}
},
diff --git a/addons/web_graph/static/src/js/graph_widget.js b/addons/web_graph/static/src/js/graph_widget.js
index b4f06aee3f1..3f6acdf87a7 100644
--- a/addons/web_graph/static/src/js/graph_widget.js
+++ b/addons/web_graph/static/src/js/graph_widget.js
@@ -38,6 +38,9 @@ openerp.web_graph.Graph = openerp.web.Widget.extend({
if (this.mode !== 'pivot') {
this.$('.graph_heatmap label').addClass('disabled');
+ this.$('.graph_main_content').addClass('graph_chart_mode');
+ } else {
+ this.$('.graph_main_content').addClass('graph_pivot_mode');
}
openerp.session.rpc('/web_graph/check_xlwt').then(function (result) {
@@ -171,10 +174,10 @@ openerp.web_graph.Graph = openerp.web.Widget.extend({
if (mode === 'pivot') {
this.$('.graph_heatmap label').removeClass('disabled');
- this.$('.graph_main_content').css('position', 'inherit')
+ this.$('.graph_main_content').removeClass('graph_chart_mode').addClass('graph_pivot_mode');
} else {
this.$('.graph_heatmap label').addClass('disabled');
- this.$('.graph_main_content').css('position', 'relative')
+ this.$('.graph_main_content').removeClass('graph_pivot_mode').addClass('graph_chart_mode');
}
this.display_data();
},