summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2011-04-07 17:13:19 +0200
committerXavier Morel <xmo@openerp.com>2011-04-07 17:13:19 +0200
commite8a6a4e1e2a24a105270a989ceba462d828c61cc (patch)
tree3dca8d243f17eb53caefcfa2a9ce00cdcfabf8c3 /addons/base/static/src
parentf55d7b5e8504bdb6d46d8187fa4209f4ca9c2164 (diff)
[ADD] delete button per row
bzr revid: xmo@openerp.com-20110407151319-vr7sc3n497y4ily0
Diffstat (limited to 'addons/base/static/src')
-rw-r--r--addons/base/static/src/js/list.js16
-rw-r--r--addons/base/static/src/xml/base.xml3
2 files changed, 19 insertions, 0 deletions
diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js
index 7b2514b4b28..89bc2f013ae 100644
--- a/addons/base/static/src/js/list.js
+++ b/addons/base/static/src/js/list.js
@@ -5,6 +5,8 @@ openerp.base.ListView = openerp.base.Controller.extend(
defaults: {
// records can be selected one by one
'selectable': true,
+ // list rows can be deleted
+ 'deletable': true,
// whether the column headers should be displayed
'header': true
},
@@ -18,6 +20,7 @@ openerp.base.ListView = openerp.base.Controller.extend(
* @param {Object} options A set of options used to configure the view
* @param {Boolean} [options.selectable=true] determines whether view rows are selectable (e.g. via a checkbox)
* @param {Boolean} [options.header=true] should the list's header be displayed
+ * @param {Boolean} [options.deletable=true] are the list rows deletable
*/
init: function(view_manager, session, element_id, dataset, view_id, options) {
this._super(session, element_id);
@@ -55,6 +58,8 @@ openerp.base.ListView = openerp.base.Controller.extend(
e.stopImmediatePropagation();
});
this.$element.find('table').delegate(
+ 'td.oe-record-delete button', 'click', this.do_delete);
+ this.$element.find('table').delegate(
'tr', 'click', this.on_select_row);
// sidebar stuff
@@ -148,6 +153,17 @@ openerp.base.ListView = openerp.base.Controller.extend(
self.dataset.fetch(self.dataset.fields, 0, self.limit, self.do_fill_table);
},
/**
+ * Handles the signal to delete a line from the DOM
+ *
+ * @param e
+ */
+ do_delete: function (e) {
+ // don't link to forms
+ e.stopImmediatePropagation();
+ this.dataset.unlink(
+ [this.rows[$(e.currentTarget).closest('tr').prevAll().length].id]);
+ },
+ /**
* Gets the ids of all currently selected records, if any
* @returns a list of ids, empty if no record is selected (or the list view is not selectable
*/
diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml
index 79428989c95..c3682051e54 100644
--- a/addons/base/static/src/xml/base.xml
+++ b/addons/base/static/src/xml/base.xml
@@ -205,6 +205,9 @@
</button>
</td>
</t>
+ <td t-if="options.deletable" class='oe-record-delete'>
+ <button type="button" name="delete">♻</button>
+ </td>
</tr>
<t t-name="FormView">
<h2 class="oe_view_title"><t t-esc="view.fields_view.arch.attrs.string"/></h2>