diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php
index e4d55f1..adf791b 100644
--- a/app/Http/Controllers/DashboardController.php
+++ b/app/Http/Controllers/DashboardController.php
@@ -37,12 +37,26 @@ public function index(Request $request): Response
public function endpoints(Request $request): Response
{
- $endpoints = $request->user()->endpoints()
- ->with('events')
- ->paginate(15);
+ $query = $request->user()->endpoints()->with('events');
+
+ if ($request->filled('search')) {
+ $search = $request->string('search');
+ $query->where(function ($q) use ($search) {
+ $q->where('name', 'like', "%{$search}%")
+ ->orWhere('url', 'like', "%{$search}%")
+ ->orWhere('description', 'like', "%{$search}%");
+ });
+ }
+
+ if ($request->filled('status')) {
+ $query->where('is_active', $request->string('status') === 'active');
+ }
+
+ $endpoints = $query->paginate(15)->withQueryString();
return Inertia::render('Endpoints/Index', [
'endpoints' => $endpoints,
+ 'filters' => $request->only(['search', 'status']),
]);
}
diff --git a/resources/js/Pages/Endpoints/Index.vue b/resources/js/Pages/Endpoints/Index.vue
index f9e820f..151ec76 100644
--- a/resources/js/Pages/Endpoints/Index.vue
+++ b/resources/js/Pages/Endpoints/Index.vue
@@ -48,10 +48,11 @@
v-model="search"
placeholder="Search by name, URL, or description"
class="w-full pl-9"
+ @keyup.enter="applyFilters"
/>
-