diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js index e1234e6f489..0a6a2fd15db 100644 --- a/addons/web_graph/static/src/js/graph.js +++ b/addons/web_graph/static/src/js/graph.js @@ -69,6 +69,10 @@ instance.web_graph.GraphView = instance.web.View.extend({ this.heat_map_mode = !this.heat_map_mode; this.draw_table(); }, + + 'click label.graph_expand_all' : function (event) { + this.pivot_table.expand_all().then(this.proxy('draw_table')); + }, }, view_loading: function (fields_view_get) { diff --git a/addons/web_graph/static/src/js/pivot.js b/addons/web_graph/static/src/js/pivot.js index e310a7799f6..0dfacf5cb06 100644 --- a/addons/web_graph/static/src/js/pivot.js +++ b/addons/web_graph/static/src/js/pivot.js @@ -185,6 +185,23 @@ var PivotTable = openerp.web.Class.extend({ this.fold_cols(); }, + expand_all: function () { + var self = this; + // temporary code, to use while waiting for correct code. + // this code expands all rows/cols by doing as many db queries. + // correct code widd do that with just 1 request. + var header_to_expand = _.find(this.rows.headers.concat(this.cols.headers), function (header) { + return ((!header.is_expanded) && (header.path.length < header.root.groupby.length)) + }); + if (header_to_expand === undefined) { + return $.when(); + } else { + return this.expand(header_to_expand.id, header_to_expand.root.groupby[header_to_expand.path.length]).then(function () { + return self.expand_all(); + }); + } + }, + }); diff --git a/addons/web_graph/static/src/xml/web_graph.xml b/addons/web_graph/static/src/xml/web_graph.xml index d9353778bcf..273ff90dac4 100644 --- a/addons/web_graph/static/src/xml/web_graph.xml +++ b/addons/web_graph/static/src/xml/web_graph.xml @@ -17,6 +17,7 @@ +