[imp] made o2m reload when readonly property is changed
bzr revid: nicolas.vanhoren@openerp.com-20111026125524-c77rmzd6gq9u9oke
This commit is contained in:
parent
f0714ccd72
commit
9a48657a45
|
@ -1939,6 +1939,13 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
|
|||
self.on_ui_change();
|
||||
});
|
||||
|
||||
this.is_setted.then(function() {
|
||||
self.load_views();
|
||||
});
|
||||
},
|
||||
load_views: function() {
|
||||
var self = this;
|
||||
|
||||
var modes = this.node.attrs.mode;
|
||||
modes = !!modes ? modes.split(",") : ["tree"];
|
||||
var views = [];
|
||||
|
@ -1959,7 +1966,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
|
|||
views.push(view);
|
||||
});
|
||||
this.views = views;
|
||||
|
||||
|
||||
this.viewmanager = new openerp.web.ViewManager(this, this.dataset, views);
|
||||
this.viewmanager.registry = openerp.web.views.clone({
|
||||
list: 'openerp.web.form.One2ManyListView',
|
||||
|
@ -1968,6 +1975,9 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
|
|||
var once = $.Deferred().then(function() {
|
||||
self.init_form_last_update.resolve();
|
||||
});
|
||||
var def = $.Deferred().then(function() {
|
||||
self.is_started.resolve();
|
||||
});
|
||||
this.viewmanager.on_controller_inited.add_last(function(view_type, controller) {
|
||||
if (view_type == "list") {
|
||||
controller.o2m = self;
|
||||
|
@ -1982,7 +1992,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
|
|||
} else if (view_type == "graph") {
|
||||
self.reload_current_view()
|
||||
}
|
||||
self.is_started.resolve();
|
||||
def.resolve();
|
||||
});
|
||||
this.viewmanager.on_mode_switch.add_first(function() {
|
||||
self.save_form_view();
|
||||
|
@ -1992,6 +2002,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
|
|||
self.viewmanager.appendTo(self.$element);
|
||||
}, 0);
|
||||
});
|
||||
return def;
|
||||
},
|
||||
reload_current_view: function() {
|
||||
var self = this;
|
||||
|
@ -2131,7 +2142,18 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
|
|||
},
|
||||
update_dom: function() {
|
||||
this._super.apply(this, arguments);
|
||||
this.$element.toggleClass('disabled', this.readonly);
|
||||
var self = this;
|
||||
if (this.previous_readonly !== this.readonly) {
|
||||
this.previous_readonly = this.readonly;
|
||||
if (this.viewmanager) {
|
||||
$.when(this.is_started).then(function() {
|
||||
self.viewmanager.stop();
|
||||
$.when(self.load_views()).then(function() {
|
||||
self.reload_current_view();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue