From 50ede116cac0e276a686ca45141e1b5b8941337f Mon Sep 17 00:00:00 2001 From: Nabeel Shahzad Date: Fri, 22 Dec 2017 14:48:15 -0600 Subject: [PATCH] Show count of pending pilot registrations; pagination --- .../Controllers/Admin/DashboardController.php | 11 +++- app/Http/Controllers/Admin/UserController.php | 12 ++-- app/Repositories/PirepRepository.php | 7 ++- app/Repositories/UserRepository.php | 16 ++++++ config/app.php | 1 + .../views/admin/components/infobox.blade.php | 4 +- .../views/admin/dashboard/index.blade.php | 56 +++++++------------ resources/views/admin/users/index.blade.php | 6 ++ resources/views/admin/users/table.blade.php | 9 ++- 9 files changed, 70 insertions(+), 52 deletions(-) diff --git a/app/Http/Controllers/Admin/DashboardController.php b/app/Http/Controllers/Admin/DashboardController.php index 9c68ff72..e6a874dc 100644 --- a/app/Http/Controllers/Admin/DashboardController.php +++ b/app/Http/Controllers/Admin/DashboardController.php @@ -2,17 +2,21 @@ namespace App\Http\Controllers\Admin; -use App\Repositories\PirepRepository; use Illuminate\Http\Request; +use App\Repositories\PirepRepository; +use App\Repositories\UserRepository; + class DashboardController extends BaseController { - private $pirepRepo; + private $pirepRepo, $userRepo; public function __construct( - PirepRepository $pirepRepo + PirepRepository $pirepRepo, + UserRepository $userRepo ) { $this->pirepRepo = $pirepRepo; + $this->userRepo = $userRepo; } /** @@ -28,6 +32,7 @@ class DashboardController extends BaseController return view('admin.dashboard.index', [ 'feed' => $feed, 'pending_pireps' => $this->pirepRepo->getPendingCount(), + 'pending_users' => $this->userRepo->getPendingCount(), ]); } } diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 6f3bff85..542b15b4 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -36,19 +36,15 @@ class UserController extends BaseController $this->userRepo = $userRepo; } - /** - * Display a listing of the User. - * - * @param Request $request - * @return Response - */ public function index(Request $request) { $this->userRepo->pushCriteria(new RequestCriteria($request)); - $Users = $this->userRepo->all(); + $users = $this->userRepo + ->orderBy('created_at', 'desc') + ->paginate(); return view('admin.users.index', [ - 'users' => $Users, + 'users' => $users, ]); } diff --git a/app/Repositories/PirepRepository.php b/app/Repositories/PirepRepository.php index 58781300..0953cffb 100644 --- a/app/Repositories/PirepRepository.php +++ b/app/Repositories/PirepRepository.php @@ -2,6 +2,7 @@ namespace App\Repositories; +use App\Models\Enums\PirepState; use App\Models\Pirep; use App\Models\User; use App\Repositories\Traits\CacheableRepository; @@ -15,6 +16,7 @@ class PirepRepository extends BaseRepository implements CacheableInterface 'user_id', 'flight_id', 'status', + 'state', ]; public function model() @@ -46,7 +48,10 @@ class PirepRepository extends BaseRepository implements CacheableInterface */ public function getPendingCount(User $user = null) { - $where = []; + $where = [ + 'state' => PirepState::PENDING, + ]; + if ($user !== null) { $where['user_id'] = $user->id; } diff --git a/app/Repositories/UserRepository.php b/app/Repositories/UserRepository.php index 4b3d53a0..37b1ed9d 100644 --- a/app/Repositories/UserRepository.php +++ b/app/Repositories/UserRepository.php @@ -1,6 +1,7 @@ 'like', 'home_airport_id', 'curr_airport_id', + 'state' ]; public function model() { return User::class; } + + /** + * Number of PIREPs that are pending + * @return mixed + */ + public function getPendingCount() + { + $where = [ + 'state' => PilotState::PENDING, + ]; + + $users = $this->orderBy('created_at', 'desc')->findWhere($where)->count(); + return $users; + } } diff --git a/config/app.php b/config/app.php index ea490a7c..c8c66bf5 100755 --- a/config/app.php +++ b/config/app.php @@ -119,6 +119,7 @@ return [ # ENUMS + 'PilotState' => App\Models\Enums\PilotState::class, 'PirepSource' => App\Models\Enums\PirepSource::class, 'PirepState' => App\Models\Enums\PirepState::class, 'PirepStatus' => App\Models\Enums\PirepStatus::class, diff --git a/resources/views/admin/components/infobox.blade.php b/resources/views/admin/components/infobox.blade.php index be4f02a5..6775de97 100644 --- a/resources/views/admin/components/infobox.blade.php +++ b/resources/views/admin/components/infobox.blade.php @@ -10,11 +10,11 @@

{{$type}}

@if(isset($link)) - + @endif {{$pending}} pending @if(isset($link)) - + @endif
diff --git a/resources/views/admin/dashboard/index.blade.php b/resources/views/admin/dashboard/index.blade.php index 1c27f1a5..49e97f08 100644 --- a/resources/views/admin/dashboard/index.blade.php +++ b/resources/views/admin/dashboard/index.blade.php @@ -4,45 +4,31 @@
-
-
-
- @component('admin.components.infobox') - @slot('icon', 'pe-7s-users') - @slot('type', 'Pilots') - @slot('pending', 5) - @slot('total', 60) - @endcomponent - - @component('admin.components.infobox') - @slot('icon', 'pe-7s-cloud-upload') - @slot('type', 'PIREPs') - @slot('pending', $pending_pireps) - @slot('link', route('admin.pireps.index').'?search=status:0') - @endcomponent -
-
- @component('admin.components.infobox') - @slot('icon', 'pe-7s-users') - @slot('type', 'Pilots') - @slot('pending', 5) - @slot('total', 60) - @endcomponent - - @component('admin.components.infobox') - @slot('icon', 'pe-7s-cloud-upload') - @slot('type', 'PIREPs') - @slot('pending', $pending_pireps) - @slot('link', route('admin.pireps.index').'?search=status:0') - @endcomponent -
-
- +
@include('admin.dashboard.announcements')
+
+ @component('admin.components.infobox') + @slot('icon', 'pe-7s-users') + @slot('type', 'Pilots') + @slot('pending', $pending_users) + @slot('link', route('admin.users.index').'?search=state:0') + @endcomponent + @component('admin.components.infobox') + @slot('icon', 'pe-7s-cloud-upload') + @slot('type', 'PIREPs') + @slot('pending', $pending_pireps) + @slot('link', route('admin.pireps.index').'?search=state:0') + @endcomponent +
+
+
- @include('admin.dashboard.pirep_chart') + {{--@include('admin.dashboard.pirep_chart')--}} +
+
+
{{--
diff --git a/resources/views/admin/users/index.blade.php b/resources/views/admin/users/index.blade.php index 29e1ad0f..991f410a 100644 --- a/resources/views/admin/users/index.blade.php +++ b/resources/views/admin/users/index.blade.php @@ -13,5 +13,11 @@
@include('admin.users.table')
+ +
+
+ {{ $users->links('admin.pagination.default') }} +
+
@endsection diff --git a/resources/views/admin/users/table.blade.php b/resources/views/admin/users/table.blade.php index 6611aa48..5122b02e 100644 --- a/resources/views/admin/users/table.blade.php +++ b/resources/views/admin/users/table.blade.php @@ -11,11 +11,14 @@ {!! $user->name !!} {!! $user->email !!} - @if($user->active == 1) - Active + @if($user->state == PilotState::ACTIVE) + + @elseif($user->state == PilotState::PENDING) + @else - Inactive + @endif + {!! PilotState::label($user->state) !!} {!! Form::open(['route' => ['admin.users.destroy', $user->id], 'method' => 'delete']) !!}