summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2011-05-20 16:20:41 +0200
committerXavier Morel <xmo@openerp.com>2011-05-20 16:20:41 +0200
commit96c7c16b5fa765791083c79dd1dd455ae7ef39bc (patch)
tree1fa06f49929894d4833725e8187b675215ba2116 /addons/base/static/src
parent6ea547dc7125a5f2942483dbeae0d8ede840ec9b (diff)
[FIX] moving between list and form views
bzr revid: xmo@openerp.com-20110520142041-7wk4d53459fvjbra
Diffstat (limited to 'addons/base/static/src')
-rw-r--r--addons/base/static/src/js/data.js4
-rw-r--r--addons/base/static/src/js/list.js18
2 files changed, 17 insertions, 5 deletions
diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js
index e6ced66110a..443f6cd8b14 100644
--- a/addons/base/static/src/js/data.js
+++ b/addons/base/static/src/js/data.js
@@ -112,7 +112,8 @@ openerp.base.ContainerDataGroup = openerp.base.DataGroup.extend(
var d = new $.Deferred();
var self = this;
- if (this.groups) {
+ // disable caching for now, not sure what I should do there
+ if (false && this.groups) {
d.resolveWith(this, [this.groups]);
} else {
this.rpc('/base/group/read', {
@@ -350,6 +351,7 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({
offset: offset,
limit: limit
}, function (records) {
+ self.ids.splice(0, self.ids.length);
self.offset = offset;
self.count = records.length; // TODO: get real count
for (var i=0; i < records.length; i++ ) {
diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js
index cc0e4516822..d6e5a22ab9e 100644
--- a/addons/base/static/src/js/list.js
+++ b/addons/base/static/src/js/list.js
@@ -80,8 +80,13 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
}
});
},
- 'row_link': function (e, index) {
- self.select_record(index);
+ 'row_link': function (e, index, id, dataset) {
+ _.extend(self.dataset, {
+ domain: dataset.domain,
+ context: dataset.context
+ }).read_slice([], null, null, function () {
+ self.select_record(index);
+ });
}
});
@@ -231,7 +236,8 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
do_show: function () {
this.$element.show();
if (this.hidden) {
- this.do_reload();
+ this.$element.find('table').append(
+ this.groups.apoptosis().render());
this.hidden = false;
}
},
@@ -376,6 +382,7 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List
this.options = opts.options;
this.columns = opts.columns;
+ this.dataset = opts.dataset;
this.rows = opts.rows;
this.$_element = $('<tbody class="ui-widget-content">')
@@ -402,7 +409,8 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List
$(self).trigger(
'row_link',
[self.row_position(e.currentTarget),
- self.row_id(e.currentTarget)]);
+ self.row_id(e.currentTarget),
+ self.dataset]);
});
},
render: function () {
@@ -610,6 +618,7 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr
list = new openerp.base.ListView.List({
options: this.options,
columns: this.columns,
+ dataset: dataset,
rows: rows
});
this.bind_child_events(list);
@@ -661,6 +670,7 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr
child.apoptosis();
});
$(this.elements).remove();
+ return this;
}
});
};