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
|
// Apply search filter if provided
|
||||||
if ($request->has('search') && !empty($request->get('search'))) {
|
if ($request->has('search') && !empty($request->get('search'))) {
|
||||||
$search = $request->get('search');
|
$search = json_decode($request->get('search'));
|
||||||
$query->where(function ($q) use ($search) {
|
if (isset($search->search)) {
|
||||||
$q->where('periode', 'LIKE', "%$search%")
|
$query->where(function ($q) use ($search) {
|
||||||
->orWhere('sync_notes', 'LIKE', "%$search%")
|
$q->where('periode', 'LIKE', "%$search->search%")
|
||||||
->orWhere('csv_notes', 'LIKE', "%$search%")
|
->orWhere('sync_notes', 'LIKE', "%$search->search%")
|
||||||
->orWhere('ftp_notes', 'LIKE', "%$search%")
|
->orWhere('csv_notes', 'LIKE', "%$search->search%")
|
||||||
->orWhere('file_name', 'LIKE', "%$search%");
|
->orWhere('ftp_notes', 'LIKE', "%$search->search%")
|
||||||
});
|
->orWhere('file_name', 'LIKE', "%$search->search%");
|
||||||
}
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Apply filter for sync status if provided
|
// Apply filter for sync status if provided
|
||||||
if ($request->has('is_sync') && $request->get('is_sync') !== '') {
|
if (isset($search->is_sync) && $search->is_sync !== '') {
|
||||||
$query->where('is_sync', $request->get('is_sync') == '1');
|
$query->where('is_sync', $search->is_sync == '1');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply filter for CSV status if provided
|
// Apply filter for CSV status if provided
|
||||||
if ($request->has('is_csv') && $request->get('is_csv') !== '') {
|
if (isset($search->is_csv) && $search->is_csv !== '') {
|
||||||
$query->where('is_csv', $request->get('is_csv') == '1');
|
$query->where('is_csv', $search->is_csv == '1');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply filter for FTP status if provided
|
// Apply filter for FTP status if provided
|
||||||
if ($request->has('is_ftp') && $request->get('is_ftp') !== '') {
|
if (isset($search->is_ftp) && $search->is_ftp !== '') {
|
||||||
$query->where('is_ftp', $request->get('is_ftp') == '1');
|
$query->where('is_ftp', $search->is_ftp == '1');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply sorting if provided
|
// Apply sorting if provided
|
||||||
|
|||||||
@@ -287,12 +287,15 @@
|
|||||||
const ftpValue = filterFtp.value;
|
const ftpValue = filterFtp.value;
|
||||||
|
|
||||||
const params = {};
|
const params = {};
|
||||||
|
if (searchInput.value) {
|
||||||
|
params.search = searchInput.value;
|
||||||
|
}
|
||||||
if (syncValue !== '') params.is_sync = syncValue;
|
if (syncValue !== '') params.is_sync = syncValue;
|
||||||
if (csvValue !== '') params.is_csv = csvValue;
|
if (csvValue !== '') params.is_csv = csvValue;
|
||||||
if (ftpValue !== '') params.is_ftp = ftpValue;
|
if (ftpValue !== '') params.is_ftp = ftpValue;
|
||||||
|
|
||||||
dataTable.goPage(1);
|
dataTable.goPage(1);
|
||||||
dataTable.setRequestParams(params);
|
dataTable.search(params);
|
||||||
dataTable.reload();
|
dataTable.reload();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user