refactor(webstatement): perbarui logika filter dan pencarian untuk SyncLogs
- Mengubah logika pengambilan nilai filter pencarian dari `request` menjadi format JSON terstruktur. - Menambahkan validasi untuk memastikan hanya filter yang memiliki nilai diterapkan. - Memperbaiki logika filter di frontend dengan menggabungkan parameter pencarian dan filter lainnya sebelum mengirimkannya. - Mengganti metode `setRequestParams` di frontend menjadi `search` untuk pengiriman parameter pencarian yang lebih terstruktur. Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
@@ -29,29 +29,31 @@ class SyncLogsController extends Controller
|
||||
|
||||
// Apply search filter if provided
|
||||
if ($request->has('search') && !empty($request->get('search'))) {
|
||||
$search = $request->get('search');
|
||||
$search = json_decode($request->get('search'));
|
||||
if (isset($search->search)) {
|
||||
$query->where(function ($q) use ($search) {
|
||||
$q->where('periode', 'LIKE', "%$search%")
|
||||
->orWhere('sync_notes', 'LIKE', "%$search%")
|
||||
->orWhere('csv_notes', 'LIKE', "%$search%")
|
||||
->orWhere('ftp_notes', 'LIKE', "%$search%")
|
||||
->orWhere('file_name', 'LIKE', "%$search%");
|
||||
$q->where('periode', 'LIKE', "%$search->search%")
|
||||
->orWhere('sync_notes', 'LIKE', "%$search->search%")
|
||||
->orWhere('csv_notes', 'LIKE', "%$search->search%")
|
||||
->orWhere('ftp_notes', 'LIKE', "%$search->search%")
|
||||
->orWhere('file_name', 'LIKE', "%$search->search%");
|
||||
});
|
||||
}
|
||||
|
||||
// Apply filter for sync status if provided
|
||||
if ($request->has('is_sync') && $request->get('is_sync') !== '') {
|
||||
$query->where('is_sync', $request->get('is_sync') == '1');
|
||||
if (isset($search->is_sync) && $search->is_sync !== '') {
|
||||
$query->where('is_sync', $search->is_sync == '1');
|
||||
}
|
||||
|
||||
// Apply filter for CSV status if provided
|
||||
if ($request->has('is_csv') && $request->get('is_csv') !== '') {
|
||||
$query->where('is_csv', $request->get('is_csv') == '1');
|
||||
if (isset($search->is_csv) && $search->is_csv !== '') {
|
||||
$query->where('is_csv', $search->is_csv == '1');
|
||||
}
|
||||
|
||||
// Apply filter for FTP status if provided
|
||||
if ($request->has('is_ftp') && $request->get('is_ftp') !== '') {
|
||||
$query->where('is_ftp', $request->get('is_ftp') == '1');
|
||||
if (isset($search->is_ftp) && $search->is_ftp !== '') {
|
||||
$query->where('is_ftp', $search->is_ftp == '1');
|
||||
}
|
||||
}
|
||||
|
||||
// Apply sorting if provided
|
||||
|
||||
@@ -287,12 +287,15 @@
|
||||
const ftpValue = filterFtp.value;
|
||||
|
||||
const params = {};
|
||||
if (searchInput.value) {
|
||||
params.search = searchInput.value;
|
||||
}
|
||||
if (syncValue !== '') params.is_sync = syncValue;
|
||||
if (csvValue !== '') params.is_csv = csvValue;
|
||||
if (ftpValue !== '') params.is_ftp = ftpValue;
|
||||
|
||||
dataTable.goPage(1);
|
||||
dataTable.setRequestParams(params);
|
||||
dataTable.search(params);
|
||||
dataTable.reload();
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user