authorize('user.view'); $search = $request->input('search'); $logName = $request->input('log_name'); $event = $request->input('event'); $perPage = (int) $request->input('per_page', 15); $query = Activity::with('causer')->latest(); if ($search) { $query->where(function ($q) use ($search) { $q->where('description', 'like', "%{$search}%") ->orWhere('log_name', 'like', "%{$search}%"); }); } if ($logName) { $query->where('log_name', $logName); } if ($event) { $query->where('event', $event); } $activities = $query->paginate($perPage)->withQueryString(); $logNames = Activity::distinct()->pluck('log_name'); $events = Activity::distinct()->whereNotNull('event')->pluck('event'); return Inertia::render('ActivityLogs/Index', [ 'activities' => [ 'data' => $activities->items(), 'meta' => [ 'current_page' => $activities->currentPage(), 'last_page' => $activities->lastPage(), 'total' => $activities->total(), 'per_page' => $activities->perPage(), ], 'links' => $activities->linkCollection()->toArray(), ], 'filters' => $request->only(['search', 'log_name', 'event', 'per_page']), 'availableLogNames' => $logNames, 'availableEvents' => $events, ]); } public function bulkDelete(Request $request) { $this->authorize('user.delete'); $ids = (array) $request->input('ids', []); Activity::whereIn('id', $ids)->delete(); return back()->with('success', \count($ids) . ' logs deleted successfully.'); } }