summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2011-04-07 08:07:20 +0200
committerXavier Morel <xmo@openerp.com>2011-04-07 08:07:20 +0200
commit2d3afa5e19ac8df2237ae8b8769e5e2b513637de (patch)
tree6d78a1e9ebd1d2c2da5c0b487d13c71dd2a0dac2 /addons/base/static/src
parent66e0c5622fde761cf180f11da77410800e796d11 (diff)
[ADD] view switching when clicking on a list item
bzr revid: xmo@openerp.com-20110407060720-2ro8mm2dixi6u6pw
Diffstat (limited to 'addons/base/static/src')
-rw-r--r--addons/base/static/src/js/list.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js
index e4ae1abb464..b99db1241f9 100644
--- a/addons/base/static/src/js/list.js
+++ b/addons/base/static/src/js/list.js
@@ -30,6 +30,8 @@ openerp.base.ListView = openerp.base.Controller.extend({
}).value();
this.$element.html(QWeb.render("ListView", this));
+ this.$element.find('table').delegate(
+ 'tr', 'click', this.on_select_row);
// sidebar stuff
if (this.view_manager.sidebar)
@@ -39,9 +41,28 @@ openerp.base.ListView = openerp.base.Controller.extend({
this.rows = records;
var table = this.$element.find('table');
+ // remove all data lines
+ table.find('tr:first').nextAll().remove();
+ // add new content
table.append(QWeb.render("ListView.rows", {
columns: this.columns, rows: this.rows}));
},
+ on_select_row: function (event) {
+ // count number of preceding siblings to line clicked, that's the one
+ // we want (note: line 0 is title row, so remove 1 for actual row
+ // index)
+ var row = this.rows[$(event.currentTarget).prevAll().length - 1];
+
+ var index = _.indexOf(this.dataset.ids, row.id);
+ if (index == undefined || index === -1) {
+ return;
+ }
+ this.dataset.index = index;
+ _.delay(_.bind(function () {
+ this.view_manager.on_mode_switch('form');
+ }, this));
+
+ },
do_show: function () {
// TODO: re-trigger search
this.$element.show();