[FIX] tree view: correct toggeling of hierarchic tree, correctly pass ids
bzr revid: mat@openerp.com-20130823081256-ab12551kejhjcqbv
This commit is contained in:
commit
4d87d76e43
|
@ -163,12 +163,13 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie
|
||||||
var is_loaded = 0,
|
var is_loaded = 0,
|
||||||
$this = $(this),
|
$this = $(this),
|
||||||
record_id = $this.data('id'),
|
record_id = $this.data('id'),
|
||||||
|
parent_id = $this.data('parent-id'),
|
||||||
record = self.records[record_id],
|
record = self.records[record_id],
|
||||||
children_ids = record[self.children_field];
|
children_ids = record[self.children_field];
|
||||||
|
|
||||||
_(children_ids).each(function(childid) {
|
_(children_ids).each(function(childid) {
|
||||||
if (self.$el.find('#treerow_' + childid).length) {
|
if (self.$el.find('[id=treerow_' + childid + '][data-parent-id='+ record_id +']').length ) {
|
||||||
if (self.$el.find('#treerow_' + childid).is(':hidden')) {
|
if (self.$el.find('[id=treerow_' + childid + '][data-parent-id='+ record_id +']').is(':hidden')) {
|
||||||
is_loaded = -1;
|
is_loaded = -1;
|
||||||
} else {
|
} else {
|
||||||
is_loaded++;
|
is_loaded++;
|
||||||
|
@ -180,7 +181,7 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie
|
||||||
self.getdata(record_id, children_ids);
|
self.getdata(record_id, children_ids);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self.showcontent(record_id, is_loaded < 0);
|
self.showcontent($this, record_id, is_loaded < 0);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -201,9 +202,9 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie
|
||||||
'fields': self.fields,
|
'fields': self.fields,
|
||||||
'level': $curr_node.data('level') || 0,
|
'level': $curr_node.data('level') || 0,
|
||||||
'render': instance.web.format_value,
|
'render': instance.web.format_value,
|
||||||
'color_for': self.color_for
|
'color_for': self.color_for,
|
||||||
|
'parent_id': id
|
||||||
});
|
});
|
||||||
|
|
||||||
if ($curr_node.length) {
|
if ($curr_node.length) {
|
||||||
$curr_node.addClass('oe_open');
|
$curr_node.addClass('oe_open');
|
||||||
$curr_node.after(children_rows);
|
$curr_node.after(children_rows);
|
||||||
|
@ -243,14 +244,13 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie
|
||||||
},
|
},
|
||||||
|
|
||||||
// show & hide the contents
|
// show & hide the contents
|
||||||
showcontent: function (record_id, show) {
|
showcontent: function (curnode,record_id, show) {
|
||||||
this.$el.find('#treerow_' + record_id)
|
curnode.parent('tr').toggleClass('oe_open', show);
|
||||||
.toggleClass('oe_open', show);
|
|
||||||
|
|
||||||
_(this.records[record_id][this.children_field]).each(function (child_id) {
|
_(this.records[record_id][this.children_field]).each(function (child_id) {
|
||||||
var $child_row = this.$el.find('#treerow_' + child_id);
|
var $child_row = this.$el.find('[id=treerow_' + child_id + '][data-parent-id='+ curnode.data('id') +']');
|
||||||
if ($child_row.hasClass('oe_open')) {
|
if ($child_row.hasClass('oe_open')) {
|
||||||
this.showcontent(child_id, false);
|
$child_row.toggleClass('oe_open',show);
|
||||||
|
this.showcontent($child_row, child_id, false);
|
||||||
}
|
}
|
||||||
$child_row.toggle(show);
|
$child_row.toggle(show);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
|
@ -684,7 +684,8 @@
|
||||||
<tr t-name="TreeView.rows"
|
<tr t-name="TreeView.rows"
|
||||||
t-foreach="records" t-as="record"
|
t-foreach="records" t-as="record"
|
||||||
t-att-id="'treerow_' + record.id"
|
t-att-id="'treerow_' + record.id"
|
||||||
t-att-data-id="record.id" t-att-data-level="level + 1">
|
t-att-data-id="record.id" t-att-data-level="level + 1"
|
||||||
|
t-att-data-parent-id="parent_id">
|
||||||
<t t-set="children" t-value="record[children_field]"/>
|
<t t-set="children" t-value="record[children_field]"/>
|
||||||
<t t-set="class" t-value="children and children.length ? 'treeview-tr' : 'treeview-td'"/>
|
<t t-set="class" t-value="children and children.length ? 'treeview-tr' : 'treeview-td'"/>
|
||||||
<t t-set="rank" t-value="'oe-treeview-first'"/>
|
<t t-set="rank" t-value="'oe-treeview-first'"/>
|
||||||
|
|
Loading…
Reference in New Issue