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.
120 lines
3.2 KiB
120 lines
3.2 KiB
odoo.define('web.one2many_mass_select_delete', function(require) {
|
|
"use strict";
|
|
var Model = require('web.Model');
|
|
var core = require('web.core');
|
|
var delete_on2many = core.form_widget_registry.get('one2many');
|
|
var _t = core._t;
|
|
|
|
var One2manyDelete = delete_on2many.extend({
|
|
template: 'One2manyDelete',
|
|
multi_selection: true,
|
|
|
|
init: function() {
|
|
this._super.apply(this, arguments);
|
|
},
|
|
|
|
render_value: function ()
|
|
{
|
|
this._super.apply(this, arguments);
|
|
var self=this;
|
|
if (this.get('readonly')) {
|
|
self.$('.mass_delete_buttons').hide();
|
|
}
|
|
else{
|
|
self.$('.mass_delete_buttons').show();
|
|
}
|
|
self.$el.find(".button_mass_delete").click(function(){
|
|
self.delete_selected_lines();
|
|
});
|
|
self.$el.find(".button_mass_select").click(function(){
|
|
self.selected_lines();
|
|
});
|
|
},
|
|
|
|
delete_selected_lines: function()
|
|
{
|
|
var self = this;
|
|
var current_model = new Model(this.dataset.model);
|
|
var selected_lines = self.find_deleted_lines();
|
|
if (selected_lines.length === 0) {
|
|
this.do_warn(_t("Please Select at least One Record.!"));
|
|
return false;
|
|
}
|
|
var w_response = confirm("Dou you want to delete.?");
|
|
if (w_response) {
|
|
current_model.call('unlink', [selected_lines], {context: self.dataset.context})
|
|
.then(function () {
|
|
window.location.reload()
|
|
});
|
|
}
|
|
|
|
},
|
|
|
|
selected_lines: function()
|
|
{
|
|
var self = this;
|
|
var current_model = new Model(this.dataset.model);
|
|
var select_lines = self.find_selected_lines();
|
|
if (select_lines.length === 0)
|
|
{
|
|
this.do_warn(_t("Please Select at least One Record"));
|
|
return false;
|
|
}
|
|
var w_response = confirm("Dou You Want to Select");
|
|
if (w_response) {
|
|
current_model.call('unlink', [select_lines], {context: self.dataset.context})
|
|
.then(function (result) {
|
|
window.location.reload()
|
|
});
|
|
}
|
|
},
|
|
|
|
find_deleted_lines: function ()
|
|
{
|
|
var selected_list =[];
|
|
this.$el.find('td.o_list_record_selector input:checked')
|
|
.closest('tr').each(function () {
|
|
selected_list.push(parseInt($(this).context.dataset.id));
|
|
});
|
|
return selected_list;
|
|
},
|
|
|
|
find_selected_lines: function ()
|
|
{
|
|
var selected_list =[];
|
|
var selected_list1 =[];
|
|
var selected_list2 =[];
|
|
this.$el.find('td.o_list_record_selector input:checked')
|
|
.closest('tr').each(function () {
|
|
selected_list.push(parseInt($(this).context.dataset.id));
|
|
});
|
|
if (selected_list.length != 0) {
|
|
this.$el.find('td.o_list_record_selector')
|
|
.closest('tr').each(function () {
|
|
selected_list1.push(parseInt($(this).context.dataset.id));
|
|
});
|
|
selected_list2 = selected_list1.filter(function (x) {
|
|
return selected_list.indexOf(x) < 0
|
|
});
|
|
}
|
|
return selected_list2;
|
|
},
|
|
|
|
process_modifiers: function () {
|
|
var self = this;
|
|
this._super();
|
|
if (this.get('readonly')) {
|
|
self.$('.mass_delete_buttons').hide();
|
|
}
|
|
else{
|
|
self.$('.mass_delete_buttons').show();
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
core.form_widget_registry.add('one2many_delete', One2manyDelete);
|
|
return {
|
|
One2manyDelete: One2manyDelete
|
|
};
|
|
});
|
|
|