From cc86e366fa06dd47f5e085c5989c14c232736090 Mon Sep 17 00:00:00 2001 From: Conkley Date: Sun, 17 Jul 2022 12:47:59 +1000 Subject: [PATCH] invite tree admin panel --- app/Http/Controllers/AdminController.php | 28 ++++++++++-- resources/views/admin/tree.blade.php | 54 ++++++++++++++++++++++++ resources/views/layouts/admin.blade.php | 2 +- routes/web.php | 2 +- 4 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 resources/views/admin/tree.blade.php diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index dcd96b6..cf002ce 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -16,7 +16,7 @@ class AdminController extends Controller public function users(Request $request) { if ($request->searchBy == 'name' && $request->has('q')) { - $users = DB::table('users')->where('name', 'LIKE', '%'.$request->q.'%')->paginate(10); + $users = DB::table('users')->where('name', 'LIKE', '%' . $request->q . '%')->paginate(10); } else if ($request->searchBy == 'id' && $request->has('q')) { $users = DB::table('users')->where('id', $request->q)->paginate(10); } else { @@ -26,8 +26,30 @@ class AdminController extends Controller return view('admin.users')->with('users', $users); } - public function keys() + public function tree(Request $request) { - return view('admin.keys'); + if ($request->searchBy == 'name' && $request->has('q')) { + $user = DB::table('users')->where('name', $request->q)->first(); + } else if ($request->searchBy == 'id' && $request->has('q')) { + $user = DB::table('users')->where('id', $request->q)->first(); + } else { + $user = array(); + } + + if (empty($user)) { + $children = null; + $invited_by = null; + } else { + $children = User::where('invited_by', $user->id)->get(); + $invited_by = User::find($user->invited_by)->name; + } + + $data = [ + 'user' => $user, + 'children' => $children, + 'invited_by' => $invited_by, + ]; + + return view('admin.tree')->with('data', $data); } } diff --git a/resources/views/admin/tree.blade.php b/resources/views/admin/tree.blade.php new file mode 100644 index 0000000..c5f3da8 --- /dev/null +++ b/resources/views/admin/tree.blade.php @@ -0,0 +1,54 @@ +@extends('layouts.admin') +@section('title') + + Admin | Invite Tree - {{ env('APP_NAME') }} + +@endsection + +@section('content') +
+

Invite Tree

+ @if (request()->query('q')) + Clear Search + @endif + +
+
+
+ @if ($data['user']) +
+ +
+ @endif + @if (!request()->has('q')) +
Enter a username or ID.
+ @elseif (!$data['user']) +
No user was found, check if you entered the correct details.
+ @endif +
+@endsection diff --git a/resources/views/layouts/admin.blade.php b/resources/views/layouts/admin.blade.php index 0ab1b40..0d814d8 100644 --- a/resources/views/layouts/admin.blade.php +++ b/resources/views/layouts/admin.blade.php @@ -29,7 +29,7 @@
User List
- Invite Tree + Invite Tree

Return to Main Site diff --git a/routes/web.php b/routes/web.php index 5de0dce..462274a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -53,7 +53,7 @@ Route::middleware(['auth'])->group(function () { Route::group(['middleware' => 'AdminCheck'], function() { Route::get('/iphone/dashboard', [App\Http\Controllers\AdminController::class, 'index'])->name('admin_index'); Route::get('/iphone/users', [App\Http\Controllers\AdminController::class, 'users'])->name('admin_users'); - Route::get('/iphone/keys', [App\Http\Controllers\AdminController::class, 'keys'])->name('admin_keys'); + Route::get('/iphone/tree', [App\Http\Controllers\AdminController::class, 'tree'])->name('admin_tree'); }); // Client routes