diff options
| author | Xavier Morel <xmo@openerp.com> | 2011-04-07 17:13:19 +0200 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2011-04-07 17:13:19 +0200 |
| commit | e8a6a4e1e2a24a105270a989ceba462d828c61cc (patch) | |
| tree | 3dca8d243f17eb53caefcfa2a9ce00cdcfabf8c3 /addons/base/static/src | |
| parent | f55d7b5e8504bdb6d46d8187fa4209f4ca9c2164 (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.js | 16 | ||||
| -rw-r--r-- | addons/base/static/src/xml/base.xml | 3 |
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> |
