You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.4 KiB

8 years ago
8 years ago
8 years ago
8 years ago
  1. /* Copyright 2016 Onestein
  2. * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
  3. odoo.define('web_x2many_delete_all.Mixin', function (require) {
  4. "use strict";
  5. var core = require('web.core');
  6. var _t = core._t;
  7. var ListRenderer = require('web.ListRenderer');
  8. ListRenderer.include({
  9. events: _.extend({}, ListRenderer.prototype.events, {
  10. 'click thead .o_list_record_delete_all': '_onTrashAllIconClick',
  11. }),
  12. _renderHeader: function () {
  13. var $header = this._super.apply(this, arguments);
  14. if (this.addTrashIcon) {
  15. $header.find('tr').append(this._renderDeleteAll('th'));
  16. }
  17. return $header;
  18. },
  19. _renderDeleteAll: function (tag) {
  20. var $icon = $('<button>', {class: 'fa fa-trash-o o_list_record_delete_all_btn', name: 'delete all',
  21. 'aria-label': _t('Delete All')});
  22. return $('<' + tag + '>')
  23. .addClass('o_list_record_delete_all')
  24. .append($icon);
  25. },
  26. _onTrashAllIconClick: function (event) {
  27. event.stopPropagation();
  28. var self = this;
  29. var resIDs = _.map(self.$('tbody tr.o_data_row'), function(rowID) {
  30. return $(rowID).data('id')
  31. });
  32. _.each(resIDs, function(row_id){
  33. self.trigger_up('list_record_delete', {id: row_id});
  34. })
  35. },
  36. })
  37. });