Handle bulk check and uncheck

Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
snipe 2021-10-04 17:58:16 -07:00
parent 52caee2a9f
commit 3594ec9905
2 changed files with 44 additions and 29 deletions

View file

@ -60,13 +60,18 @@
<div class="row">
<div class="col-md-12">
@if (Request::get('status')!='Deleted')
{{ Form::open([
'method' => 'POST',
'route' => ['hardware/bulkedit'],
'class' => 'form-inline',
'id' => 'bulkForm']) }}
<div id="toolbar">
{{ Form::open([
'method' => 'POST',
'route' => ['hardware/bulkedit'],
'class' => 'form-inline',
'id' => 'bulkForm']) }}
<label for="bulk_actions"><span class="sr-only">Bulk Actions</span></label>
<select name="bulk_actions" class="form-control select2" aria-label="bulk_actions">
@ -76,10 +81,9 @@
</select>
<button class="btn btn-primary" id="bulkEdit" disabled>Go</button>
{{ Form::close() }}
</div>
{{ Form::close() }}
@endif
<table

View file

@ -80,18 +80,7 @@
$('[data-toggle="tooltip"]').tooltip(); // Needed to attach tooltips after ajax call
}
});
$('.snipe-table').on('check.bs.table .btSelectItem', function (row, $element) {
$('#bulkEdit').before('<input id="checkbox_' + $element.id + '" type="hidden" name="ids[]" value="' + $element.id + '">');
});
$('.snipe-table').on('uncheck.bs.table .btSelectItem', function (row, $element) {
$( "#checkbox_" + $element.id).remove();
});
});
});
@ -107,25 +96,47 @@
}
// These methods dynamically add/remove hidden input values in the bulk actions form
$('.snipe-table').on('check.bs.table .btSelectItem', function (row, $element) {
$('#bulkEdit').removeAttr('disabled');
$('#bulkEdit').prepend('<input id="checkbox_' + $element.id + '" type="hidden" name="ids[]" value="' + $element.id + '">');
});
$('.snipe-table').on('uncheck.bs.table .btSelectItem', function (row, $element) {
$( "#checkbox_" + $element.id).remove();
});
// Handle whether or not the edit button should be disabled
$('.snipe-table').on('check.bs.table', function () {
$('#bulkEdit').removeAttr('disabled');
});
$('.snipe-table').on('check-all.bs.table', function () {
$('#bulkEdit').removeAttr('disabled');
});
$('.snipe-table').on('uncheck.bs.table', function () {
if ($('.snipe-table').bootstrapTable('getSelections').length == 0) {
$('#bulkEdit').attr('disabled', 'disabled');
}
});
$('.snipe-table').on('uncheck-all.bs.table', function (e, row) {
$('.snipe-table').on('uncheck-all.bs.table', function (event, rowsAfter, rowsBefore) {
$('#bulkEdit').attr('disabled', 'disabled');
//console.dir(rowsBefore);
for (var i in rowsBefore) {
$( "#checkbox_" + rowsBefore[i].id).remove();
}
});
$('.snipe-table').on('check-all.bs.table', function (event, rowsAfter, rowsBefore) {
$('#bulkEdit').removeAttr('disabled');
//console.dir(rowsAfter);
for (var i in rowsAfter) {
// console.log(rowsAfter[i].id);
$('#bulkEdit').prepend('<input id="checkbox_' + rowsAfter[i].id + '" type="hidden" name="ids[]" value="' + rowsAfter[i].id + '">');
}
});
// This only works for model index pages because it uses the row's model ID
function genericRowLinkFormatter(destination) {
return function (value,row) {