summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorChristophe Simonis <chs@openerp.com>2013-08-23 16:55:27 +0200
committerChristophe Simonis <chs@openerp.com>2013-08-23 16:55:27 +0200
commitb86eee378e646f574f6aa2fa53f7e6e017831afa (patch)
treedf964f5311a705e32918ad8a419e9f751e04a828 /addons/web/static/src
parent7f92e03c1301cd0997b1f3b7fca982362e5d0d9e (diff)
parent993bff902e22ab77b7a36d3f48ed12511e93e2b1 (diff)
[MERGE] forward port of branch saas-1 up to revid 3743 chs@openerp.com-20130823145204-xwpnlwg0gg2259f6
bzr revid: chs@openerp.com-20130823145527-fz58kta3qpup4sb2
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/view_form.js13
-rw-r--r--addons/web/static/src/js/view_tree.js22
-rw-r--r--addons/web/static/src/xml/base.xml3
3 files changed, 24 insertions, 14 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 4f3aa3a8e1f..324896112cc 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -724,7 +724,10 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
self.trigger("save", result);
self.to_view_mode();
}).then(function(result) {
- self.ViewManager.ActionManager.__parentedParent.menu.do_reload_needaction();
+ var parent = self.ViewManager.ActionManager.getParent();
+ if(parent){
+ parent.menu.do_reload_needaction();
+ }
});
},
on_button_cancel: function(event) {
@@ -4057,7 +4060,13 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
else
return $.when();
}).done(function () {
- self.handle_button(name, id, callback);
+ if (!self.o2m.options.reload_on_button) {
+ self.handle_button(name, id, callback);
+ }else {
+ self.handle_button(name, id, function(){
+ self.o2m.view.reload();
+ });
+ }
});
},
diff --git a/addons/web/static/src/js/view_tree.js b/addons/web/static/src/js/view_tree.js
index 5604edf147d..0c101e330c9 100644
--- a/addons/web/static/src/js/view_tree.js
+++ b/addons/web/static/src/js/view_tree.js
@@ -166,12 +166,13 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie
var is_loaded = 0,
$this = $(this),
record_id = $this.data('id'),
+ parent_id = $this.data('parent-id'),
record = self.records[record_id],
children_ids = record[self.children_field];
_(children_ids).each(function(childid) {
- if (self.$el.find('#treerow_' + childid).length) {
- if (self.$el.find('#treerow_' + childid).is(':hidden')) {
+ if (self.$el.find('[id=treerow_' + childid + '][data-parent-id='+ record_id +']').length ) {
+ if (self.$el.find('[id=treerow_' + childid + '][data-parent-id='+ record_id +']').is(':hidden')) {
is_loaded = -1;
} else {
is_loaded++;
@@ -183,7 +184,7 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie
self.getdata(record_id, children_ids);
}
} else {
- self.showcontent(record_id, is_loaded < 0);
+ self.showcontent($this, record_id, is_loaded < 0);
}
});
},
@@ -204,9 +205,9 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie
'fields': self.fields,
'level': $curr_node.data('level') || 0,
'render': instance.web.format_value,
- 'color_for': self.color_for
+ 'color_for': self.color_for,
+ 'parent_id': id
});
-
if ($curr_node.length) {
$curr_node.addClass('oe_open');
$curr_node.after(children_rows);
@@ -246,14 +247,13 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie
},
// show & hide the contents
- showcontent: function (record_id, show) {
- this.$el.find('#treerow_' + record_id)
- .toggleClass('oe_open', show);
-
+ showcontent: function (curnode,record_id, show) {
+ curnode.parent('tr').toggleClass('oe_open', show);
_(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')) {
- this.showcontent(child_id, false);
+ $child_row.toggleClass('oe_open',show);
+ this.showcontent($child_row, child_id, false);
}
$child_row.toggle(show);
}, this);
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 27b85d49e5a..d21318799c9 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -684,7 +684,8 @@
<tr t-name="TreeView.rows"
t-foreach="records" t-as="record"
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="class" t-value="children and children.length ? 'treeview-tr' : 'treeview-td'"/>
<t t-set="rank" t-value="'oe-treeview-first'"/>