summaryrefslogtreecommitdiff
path: root/addons/web_graph/static/src/js/graph.js
diff options
context:
space:
mode:
authorGery Debongnie <ged@openerp.com>2013-11-15 09:50:37 +0100
committerGery Debongnie <ged@openerp.com>2013-11-15 09:50:37 +0100
commit2609105d41cfd7ef798a87c161e84eaf0092e2f1 (patch)
tree6c4b9fa075323732cfd53234d2fa1ffb8cfad1e3 /addons/web_graph/static/src/js/graph.js
parent2216a699087c790182bd34227d3d1d4554131b9d (diff)
[IMP] allow pivottable to fold rows (addon web_graph)
bzr revid: ged@openerp.com-20131115085037-nhbi5x9ooa75drnk
Diffstat (limited to 'addons/web_graph/static/src/js/graph.js')
-rw-r--r--addons/web_graph/static/src/js/graph.js29
1 files changed, 26 insertions, 3 deletions
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index 3ab9b034ea1..efde4315b29 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -220,7 +220,7 @@ var PivotTable = BasicDataView.extend({
var row = this.get_row(row_id);
if (row.expanded) {
- this.fold_row(row_id)
+ this.fold_row(row_id);
} else {
var dropdown_options = {
fields: _.map(this.important_fields, function (field) {
@@ -326,7 +326,7 @@ var PivotTable = BasicDataView.extend({
row.domain = this.domain;
}
if (has_parent) {
- parent.children.push(row);
+ parent.children.push(row.id);
}
return row;
},
@@ -360,14 +360,37 @@ var PivotTable = BasicDataView.extend({
}
});
if (row.remove_when_expanded) {
- row.html_tr.remove();
+ row.html_tr.remove();
}
});
},
fold_row: function (row_id) {
+ var self = this;
+ var row = this.get_row(row_id);
+
+ _.each(row.children, function (child_row) {
+ self.remove_row(child_row);
+ });
+ row.children = [];
+
+ row.expanded = false;
+ row.html_tr.find('.icon-minus-sign')
+ .removeClass('icon-minus-sign')
+ .addClass('icon-plus-sign');;
+
+ },
+
+ remove_row: function (row_id) {
+ var self = this;
+ var row = this.get_row(row_id);
+
+ _.each(row.children, function (child_row) {
+ self.remove_row(child_row);
+ });
+ row.html_tr.remove();
},
draw: function () {