[imp] made editable list in o2m auto-save

bzr revid: nicolas.vanhoren@openerp.com-20111110110206-2ba4qnj71wa5l3p3
This commit is contained in:
niv-openerp 2011-11-10 12:02:06 +01:00
parent 90972f5e27
commit c0c31c74bc
1 changed files with 11 additions and 4 deletions

View File

@ -2041,7 +2041,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
once.resolve(); once.resolve();
}); });
controller.on_pager_action.add_first(function() { controller.on_pager_action.add_first(function() {
self.save_form_view(); self.save_any_view();
}); });
controller.$element.find(".oe_form_button_save").hide(); controller.$element.find(".oe_form_button_save").hide();
} else if (view_type == "graph") { } else if (view_type == "graph") {
@ -2050,7 +2050,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
def.resolve(); def.resolve();
}); });
this.viewmanager.on_mode_switch.add_first(function(n_mode, b, c, d, e) { this.viewmanager.on_mode_switch.add_first(function(n_mode, b, c, d, e) {
$.when(self.save_form_view()).then(function() { $.when(self.save_any_view()).then(function() {
if(n_mode === "list") if(n_mode === "list")
setTimeout(function() {self.reload_current_view();}, 0); setTimeout(function() {self.reload_current_view();}, 0);
}); });
@ -2160,7 +2160,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
this.dataset.to_delete, function(x) { this.dataset.to_delete, function(x) {
return commands['delete'](x.id);})); return commands['delete'](x.id);}));
}, },
save_form_view: function() { save_any_view: function() {
if (this.viewmanager && this.viewmanager.views && this.viewmanager.active_view && if (this.viewmanager && this.viewmanager.views && this.viewmanager.active_view &&
this.viewmanager.views[this.viewmanager.active_view] && this.viewmanager.views[this.viewmanager.active_view] &&
this.viewmanager.views[this.viewmanager.active_view].controller) { this.viewmanager.views[this.viewmanager.active_view].controller) {
@ -2172,6 +2172,13 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
console.warn("Asynchronous get_value() is not supported in form view."); console.warn("Asynchronous get_value() is not supported in form view.");
}*/ }*/
return res; return res;
} else if (this.viewmanager.active_view === "list") {
var res = $.when(view.ensure_saved());
// it seems line there are some cases when this happens
/*if (!res.isResolved() && !res.isRejected()) {
console.warn("Asynchronous get_value() is not supported in list view.");
}*/
return res;
} }
} }
return false; return false;
@ -2196,7 +2203,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
} }
}, },
is_dirty: function() { is_dirty: function() {
this.save_form_view(); this.save_any_view();
return this._super(); return this._super();
}, },
update_dom: function() { update_dom: function() {