'Log Aktivitas' ]; return view('logActivity.index', $data); } public function datatable(){ $perPage = (int) request('per_page', 10); $keyword = request('keyword'); $start = request('start_date'); $end = request('end_date'); $query = LogActivity::query() ->orderBy('entry_at','desc'); if($keyword){ $query->where(function($q) use ($keyword){ $q->where('pegawai_nama_entry', 'ILIKE', "%{$keyword}%") ->orWhere('action_type', 'ILIKE', "%{$keyword}%") ->orWhere('file', 'ILIKE', "%{$keyword}%") ->orWhere('no_dokumen', 'ILIKE', "%{$keyword}%"); }); } if($start){ $query->whereDate('entry_at','>=',$start); } if($end){ $query->whereDate('entry_at','<=',$end); } $paginated = $query->paginate($perPage); $data = $paginated->getCollection()->map(function($item){ return [ 'pegawai_nama_entry' => $item->pegawai_nama_entry, 'action_type' => $item->action_type, 'file' => $item->file, 'no_dokumen' => $item->no_dokumen ?? $item->fileDirectory->no_dokumen ?? '-', 'entry_at' => $item->entry_at, 'unit_name' => $item->unit_name ?? '-', ]; }); return response()->json([ 'status' => true, 'data' => $data, 'pagination' => [ 'current_page' => $paginated->currentPage(), 'next_page' => $paginated->hasMorePages() ? $paginated->currentPage() + 1 : null, 'has_more' => $paginated->hasMorePages(), 'last_page' => $paginated->lastPage(), 'per_page' => $paginated->perPage(), 'total' => $paginated->total(), ] ]); } }