diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index 0e76acc3959..0be31d39121 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -264,7 +264,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
self.reload_content();
});
- // Add and delete
+ // Add button
if (!this.$buttons) {
this.$buttons = $(QWeb.render("ListView.buttons", {'widget':self}));
if (this.options.$buttons) {
@@ -274,11 +274,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
}
this.$buttons.find('.oe_list_add')
.click(this.proxy('do_add_record'))
- .prop('disabled', grouped && this.options.editable)
- .end()
- .find('.oe_list_delete')
- .click(this.proxy('do_delete_selected'))
- .prop('disabled', true);
+ .prop('disabled', grouped && this.options.editable);
}
// Pager
@@ -338,6 +334,9 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
if (!this.sidebar && this.options.$sidebar) {
this.sidebar = new instance.web.Sidebar(this);
this.sidebar.appendTo(this.options.$sidebar);
+ this.sidebar.add_items('other', [
+ { label: _t('Delete'), callback: this.do_delete_selected },
+ ]);
this.sidebar.add_toolbar(this.fields_view.toolbar);
}
},
@@ -604,7 +603,6 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
* @param {Array} records selected record values
*/
do_select: function (ids, records) {
- this.$buttons.find('.oe_list_delete').attr('disabled', !ids.length);
if (!ids.length) {
this.dataset.index = 0;
if (this.sidebar) {
@@ -675,7 +673,12 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
* Handles deletion of all selected lines
*/
do_delete_selected: function () {
- this.do_delete(this.groups.get_selection().ids);
+ var ids = this.groups.get_selection().ids;
+ if (ids.length) {
+ this.do_delete(this.groups.get_selection().ids);
+ } else {
+ this.do_warn(_t("Warning"), _t("You must select at least one record."));
+ }
},
/**
* Computes the aggregates for the current list view, either on the
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 73b66e80f35..0a78254df35 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -653,9 +653,6 @@
-