[FIX] fuckup with deferred for rendering of list (when beyond one section), also only remove old body after new list has rendered otherwise we get an empty list flash even for lists with a bunch of elements

bzr revid: xmo@openerp.com-20110408124020-25dprn6gu19y02m6
This commit is contained in:
Xavier Morel
2011-04-08 14:40:20 +02:00
parent a2c60d598c
commit 9262c3c00d
+7 -4
View File
@@ -89,7 +89,7 @@ openerp.base.ListView = openerp.base.Controller.extend(
var $table = this.$element.find('table');
// remove all data lines
$table.find('tbody').remove();
var $old_body = $table.find('tbody');
// add new content
var columns = this.columns,
@@ -102,8 +102,8 @@ openerp.base.ListView = openerp.base.Controller.extend(
body = 0,
$body = $('<tbody>').appendTo($table);
var rendered = $.Deferred();
var render_body = function () {
var rendered = $.Deferred();
setTimeout(function () {
$body.append(
QWeb.render("ListView.rows", {
@@ -118,9 +118,12 @@ openerp.base.ListView = openerp.base.Controller.extend(
rendered.resolve();
}
}, 0);
return rendered.promise();
};
return render_body();
render_body();
return rendered.promise().then(function () {
$old_body.remove();
});
},
on_select_row: function (event) {
var $target = $(event.currentTarget);