[IMP] Update dataset and pager in case of new record

bzr revid: fme@openerp.com-20110411115507-p8x1jb11iok2xusr
This commit is contained in:
Fabien Meghazi 2011-04-11 13:55:07 +02:00
parent 3c6a1956d6
commit b1f219c502
1 changed files with 8 additions and 5 deletions

View File

@ -85,7 +85,7 @@ openerp.base.FormView = openerp.base.Controller.extend( /** @lends openerp.base
} else {
this.log("No record received");
}
this.do_update_pager();
this.do_update_pager(record.id == null);
},
on_form_changed: function(widget) {
if (widget && widget.node.attrs.on_change) {
@ -115,11 +115,10 @@ openerp.base.FormView = openerp.base.Controller.extend( /** @lends openerp.base
}
this.dataset.read_index(_.keys(this.fields_view.fields), this.on_record_loaded);
},
do_update_pager: function() {
do_update_pager: function(hide_index) {
var $pager = this.$element.find('div.oe_form_pager');
$pager.find("button[data-pager-action='first'], button[data-pager-action='previous']").attr('disabled', this.dataset.index == 0);
$pager.find("button[data-pager-action='next'], button[data-pager-action='last']").attr('disabled', this.dataset.index == this.dataset.ids.length - 1);
this.$element.find('span.oe_pager_index').html(this.dataset.index + 1);
var index = hide_index ? '-' : this.dataset.index + 1;
this.$element.find('span.oe_pager_index').html(index);
this.$element.find('span.oe_pager_count').html(this.dataset.count);
},
do_onchange: function(widget, processed) {
@ -222,6 +221,10 @@ openerp.base.FormView = openerp.base.Controller.extend( /** @lends openerp.base
if (!this.datarecord.id) {
this.dataset.create(values, function() {
self.datarecord.id = arguments[0].result;
self.dataset.ids.push(self.datarecord.id);
self.dataset.index = self.dataset.ids.length - 1;
self.dataset.count++;
self.do_update_pager();
self.on_saved.apply(self, arguments);
});
} else {