feat(basicdata): tambahkan pencarian pada fitur ekspor Holiday Calendar

- Menambahkan kemampuan pencarian pada fitur ekspor Holiday Calendar.
- Mengubah konstruktor `HolidayCalendarExport` untuk menerima parameter `search` yang bersifat opsional.
- Menyesuaikan query pengambilan data pada `HolidayCalendarExport` agar mendukung filter berdasarkan:
  - Deskripsi (`description`).
  - Tipe (`type`).
  - Tanggal (`date`).
- Memperbaiki logika perhitungan halaman aktif pada pagination di `HolidayCalendarController`.
- Menambahkan parameter `search` pada fungsi `export` di `HolidayCalendarController`.
- Memperbarui URL export pada tampilan `index.blade.php` ketika input pencarian diubah.
- Menambahkan fungsi JavaScript `updateExportUrl()` untuk menyisipkan filter pencarian pada URL ekspor.
- Menjamin tidak ada perubahan URL ekspor jika pencarian kosong.

Fitur ini memungkinkan pengguna untuk mengekspor data kalender libur berdasarkan hasil pencarian spesifik.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
Daeng Deni Mardaeni
2025-05-19 09:10:33 +07:00
parent 8d190cb10d
commit be271dbe6e
3 changed files with 45 additions and 6 deletions

View File

@@ -5,7 +5,6 @@
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use Modules\Basicdata\Exports\HolidayCalendarExport;
use Modules\Basicdata\Http\Requests\HolidayCalendarRequest;
@@ -191,7 +190,7 @@
$pageCount = ceil($totalRecords / $request->get('size'));
// Calculate the current page number
$currentPage = 0 + 1;
$currentPage = $request->get('page') ?: 1;
// Return the response data as a JSON object
return response()->json([
@@ -205,13 +204,16 @@
]);
}
public function export()
public function export(Request $request)
{
// Check if the authenticated user has the required permission to export holiday calendars
if (is_null($this->user) || !$this->user->can('basic-data.export')) {
abort(403, 'Sorry! You are not allowed to export holiday calendars.');
}
return Excel::download(new HolidayCalendarExport, 'holiday_calendar.xlsx');
// Get search parameter from request
$search = $request->get('search');
return Excel::download(new HolidayCalendarExport($search), 'holiday_calendar.xlsx');
}
}