diff --git a/app/Http/Controllers/HolidayCalendarController.php b/app/Http/Controllers/HolidayCalendarController.php index 677fd16..9e8ea75 100644 --- a/app/Http/Controllers/HolidayCalendarController.php +++ b/app/Http/Controllers/HolidayCalendarController.php @@ -88,6 +88,13 @@ } } + public function deleteMultiple(Request $request) + { + $ids = $request->input('ids'); + HolidayCalendar::whereIn('id', $ids)->delete(); + return response()->json(['message' => 'Holidays deleted successfully']); + } + public function dataForDatatables(Request $request) { if (is_null($this->user) || !$this->user->can('currency.view')) { diff --git a/resources/views/holidaycalendar/index.blade.php b/resources/views/holidaycalendar/index.blade.php index 9a0f644..2ea577c 100644 --- a/resources/views/holidaycalendar/index.blade.php +++ b/resources/views/holidaycalendar/index.blade.php @@ -21,6 +21,7 @@
Export to Excel Tambah Hari Libur + @@ -97,10 +98,51 @@ } }) } + + function deleteSelectedRows() { + const selectedCheckboxes = document.querySelectorAll('input[data-datatable-row-check="true"]:checked'); + if (selectedCheckboxes.length === 0) { + Swal.fire('Warning', 'Please select at least one row to delete.', 'warning'); + return; + } + + Swal.fire({ + title: 'Are you sure?', + text: `You are about to delete ${selectedCheckboxes.length} selected row(s). This action cannot be undone!`, + icon: 'warning', + showCancelButton: true, + confirmButtonColor: '#3085d6', + cancelButtonColor: '#d33', + confirmButtonText: 'Yes, delete them!' + }).then((result) => { + if (result.isConfirmed) { + const ids = Array.from(selectedCheckboxes).map(checkbox => checkbox.value); + + $.ajaxSetup({ + headers: { + 'X-CSRF-TOKEN': '{{ csrf_token() }}' + } + }); + + $.ajax('{{ route("basicdata.holidaycalendar.deleteMultiple") }}', { + type: 'POST', + data: { ids: ids } + }).then((response) => { + Swal.fire('Deleted!', 'Selected rows have been deleted.', 'success').then(() => { + window.location.reload(); + }); + }).catch((error) => { + console.error('Error:', error); + Swal.fire('Error!', 'An error occurred while deleting the rows.', 'error'); + }); + } + }) + } @endpush diff --git a/routes/web.php b/routes/web.php index 6d7f658..0f2f311 100644 --- a/routes/web.php +++ b/routes/web.php @@ -66,6 +66,7 @@ Route::delete('/{id}', [HolidayCalendarController::class, 'destroy'])->name('destroy'); Route::get('/datatables', [HolidayCalendarController::class, 'dataForDatatables'])->name('datatables'); Route::get('/export', [HolidayCalendarController::class, 'export'])->name('export'); + Route::post('delete-multiple', [HolidayCalendarController::class, 'deleteMultiple'])->name('deleteMultiple'); }); }); });