Всем добрый день! есть список объектов напротив каждого есть кнопки чекбокс ( принять и отклонить ) как можно сделать одну кнопку "принять все" при выделении нескольких чекбоксов у обьектов ?
<div class="actions">
<button class="btn btn-default reject item-action-button" type="button" data-object-id="{{row.id}}">Отклонить</button>
<button class="btn btn-primary approve item-action-button" type="button" data-object-id="{{row.id}}">Принять</button>
</div>
jQuery(document).ready(function ($) {
$('#moderation_items').on('click', function (e) {
if (e.hasOwnProperty('target') && e.target.localName && (e.target.localName === 'button')) {
e.preventDefault();
var target = $(e.target),
objectId = parseInt(target.attr('data-object-id')),
action = 'reject',
dataArr = [];
if (isNaN(objectId)) {
alert('Не удалось определить идентификатор объекта.');
return false;
}
var item = $('#item-' + objectId),
services = item.find('.services'),
servicesChecked = services.find('input[type="checkbox"]:checked').not(':disabled'),
servicesCheckedLabels = servicesChecked.closest('label'),
actions = item.find('.actions'),
actionButtons = actions.find('.item-action-button');
if (item.length <= 0) {
alert('Не удалось найти объект с идентификатором: ' + objectId);
return false;
}
if (servicesChecked.length <= 0) {
alert('Выберите хотя бы один сервис, чтобы выполнить это действие.');
return false;
}
if (target.hasClass('approve')) {
action = 'approve';
}
dataArr.push({ name: 'id', value: objectId });
dataArr.push({ name: 'action', value: action });
servicesChecked.each(function (i, v) {
dataArr.push({ name: v.name, value: v.value });
});
actionButtons.prop('disabled', true);
servicesChecked.prop('disabled', true);
servicesCheckedLabels.addClass('disabled');
$.ajax({
url: '/ajax/moderation',
cache: false,
method: 'POST',
type: 'POST',
dataType: 'json',
data: dataArr,
success: function (resp) {
var status = (resp.hasOwnProperty('status') ? resp.status : false);
if (status) {
servicesCheckedLabels.addClass((resp.hasOwnProperty('approve') ? 'approve' : 'reject'));
if (services.find('input[type="checkbox"]:not(:checked)').length > 0)
actionButtons.prop('disabled', false);
} else {
actionButtons.prop('disabled', false);
servicesChecked.prop('disabled', false);
servicesCheckedLabels.removeClass('disabled');
if (resp.hasOwnProperty('message'))
alert(resp.message);
else
alert('Не удалось выполнить действие, попробуйте еще раз.');
}
},
error: function (resp) {
actionButtons.prop('disabled', false);
servicesChecked.prop('disabled', false);
servicesCheckedLabels.removeClass('disabled');
if (resp.hasOwnProperty('responseJSON') && resp.responseJSON.hasOwnProperty('message'))
alert(resp.responseJSON.message);
else
alert('Не удалось выполнить действие, попробуйте еще раз.');
}
});
return false;
}
});