From 8feeadbf4eb63b5c154c5d31bf145bc8c4a9b535 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 22 Feb 2021 23:03:49 -0700 Subject: [PATCH] Update user admin, remove expensive db query and add search --- .../Controllers/Admin/AdminUserController.php | 21 ++++++++-- resources/views/admin/users/home.blade.php | 38 +++++++++++-------- 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/Admin/AdminUserController.php b/app/Http/Controllers/Admin/AdminUserController.php index a5f19f4dc..fd16aaa28 100644 --- a/app/Http/Controllers/Admin/AdminUserController.php +++ b/app/Http/Controllers/Admin/AdminUserController.php @@ -16,14 +16,27 @@ trait AdminUserController { public function users(Request $request) { + $search = $request->has('a') && $request->query('a') == 'search' ? $request->query('q') : null; $col = $request->query('col') ?? 'id'; $dir = $request->query('dir') ?? 'desc'; - $users = User::select('id', 'username', 'status') - ->withCount('statuses') + $offset = $request->has('page') ? $request->input('page') : 1; + $pagination = [ + 'prev' => $offset && $offset > 1 ? $offset - 1 : null, + 'next' => $offset + 1, + 'query' => $search ? '&a=search&q=' . $search : null + ]; + $users = User::select('id', 'username', 'status', 'profile_id') ->orderBy($col, $dir) - ->simplePaginate(10); + ->when($search, function($q, $search) { + return $q->where('username', 'like', "%{$search}%"); + }) + ->when($offset > 1, function($q, $offset) { + return $q->offset(($offset * 10)); + }) + ->limit(10) + ->get(); - return view('admin.users.home', compact('users')); + return view('admin.users.home', compact('users', 'pagination')); } public function userShow(Request $request, $id) diff --git a/resources/views/admin/users/home.blade.php b/resources/views/admin/users/home.blade.php index 70fb7df7d..47934dbee 100644 --- a/resources/views/admin/users/home.blade.php +++ b/resources/views/admin/users/home.blade.php @@ -1,16 +1,19 @@ @extends('admin.partial.template-full') -@section('header') -
-
-
test
-
-
-@endsection - @section('section') -
+

Users

+
+ +
+ +
+ +
+
+

@@ -36,7 +39,6 @@ {{$user->id}} - {{$user->username}} @@ -53,7 +55,6 @@ {{$user->id}} - {{$user->username}} @if($user->is_admin) @@ -63,7 +64,7 @@ - + Profile @@ -71,8 +72,8 @@ Review - - Mod Logs + + Mod Tools @@ -83,7 +84,14 @@
- {{$users->links()}} +
@endsection