diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 7ea01bf3bee..6e5c6117023 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -2179,15 +2179,18 @@ .openerp .oe_form .oe_form_field_many2many > .oe_list .oe_list_pager_single_page { display: none; } -.openerp .oe_list_buttons .oe_list_save { +.openerp .oe_list_buttons .oe_list_save, .openerp .oe_list_buttons .oe_list_discard { display: none; } -.openerp .oe_list_buttons.oe_editing .oe_list_add, .openerp .oe_list_buttons.oe_editing .oe_alternative { +.openerp .oe_list_buttons.oe_editing .oe_list_add, .openerp .oe_list_buttons.oe_editing .oe_list_button_import { display: none; } .openerp .oe_list_buttons.oe_editing .oe_list_save { display: inline-block; } +.openerp .oe_list_buttons.oe_editing .oe_list_discard { + display: inline; +} .openerp .oe_list { position: relative; } diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 0472aa34710..83153cc11d5 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -1723,13 +1723,15 @@ $sheet-max-width: 860px // }}} // ListView {{{ .oe_list_buttons - .oe_list_save + .oe_list_save, .oe_list_discard display: none &.oe_editing - .oe_list_add, .oe_alternative + .oe_list_add, .oe_list_button_import display: none .oe_list_save display: inline-block + .oe_list_discard + display: inline .oe_list position: relative diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index a78b0fbef97..93b7d38e3bb 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -102,8 +102,13 @@ openerp.web.list_editable = function (instance) { if (this.options.editable) { // FIXME: any hook available to ensure this is only done once? this.$buttons - .off('click', 'button.oe_list_save') - .on('click', 'button.oe_list_save', this.proxy('saveEdition')); + .off('click', '.oe_list_save') + .on('click', '.oe_list_save', this.proxy('saveEdition')) + .off('click', '.oe_list_discard') + .on('click', '.oe_list_discard', function (e) { + e.preventDefault(); + self.cancelEdition(); + }); this.$element .off('click', 'tbody td:not(.oe_list_field_cell)') .on('click', 'tbody td:not(.oe_list_field_cell)', function () { diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index a85e8817ad8..a9c8e15bcd7 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -671,6 +671,9 @@ + + discard +