From 0d39327ee2bd22853b35d3c00baedd1fe66077fc Mon Sep 17 00:00:00 2001 From: Kwesi Banson Jnr Date: Tue, 10 Mar 2026 11:25:36 +0000 Subject: [PATCH] Fix: updated AdminController with pagination --- .../app/Http/Controllers/AdminController.php | 54 ++++++++++++ php_code/app/Providers/AppServiceProvider.php | 2 + .../resources/views/admin/paginated.blade.php | 85 +++++++++++++++++++ .../resources/views/permits/show.blade.php | 2 +- php_code/routes/web.php | 2 + 5 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 php_code/resources/views/admin/paginated.blade.php diff --git a/php_code/app/Http/Controllers/AdminController.php b/php_code/app/Http/Controllers/AdminController.php index d56ba17b..2d535a17 100644 --- a/php_code/app/Http/Controllers/AdminController.php +++ b/php_code/app/Http/Controllers/AdminController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers; use App\Utilities\ApiCalls; use Session; use Illuminate\Http\Request; +use Illuminate\Pagination\LengthAwarePaginator; +use Illuminate\Support\Collection; class AdminController extends Controller { @@ -24,6 +26,58 @@ class AdminController extends Controller return redirect->back(); } + + // 2. Define pagination parameters + $perPage = 10; + $currentPage = LengthAwarePaginator::resolveCurrentPage() ?: 1; + $offset = ($currentPage - 1) * $perPage; + + // 3. Slice the array to get the items for the current page + $currentPageItems = array_slice($users_arr['data'], $offset, $perPage); + + // 4. Create the LengthAwarePaginator instance + $paginatedItems = new LengthAwarePaginator( + $currentPageItems, // Items for the current page + count($users_arr['data']), // Total number of items + $perPage, // Items per page + $currentPage, // Current page number + ['path' => request()->url(), 'query' => request()->query()] // Options to preserve query strings and path + ); + $user_type_arr = [ + 'district_user' => 'District User', + 'regional_user' => 'Regional User', + 'national_user' => 'National User' + ]; + $data = [ + 'page_title' => 'User Admin', + 'users_arr' => $users_arr['data'], + 'regions_arr' => $regions_arr['data'], + 'user_type_arr' => $user_type_arr, + 'items' => $paginatedItems + ]; + // dump($data); + // 5. Pass the paginator instance to your view + return view('admin.paginated', $data); + // return view('admin.home', $data); + + } + public function indexOld(){ + $users_url = "user_mgt/get_all_users.php"; + $data = ['api_token' => env('LUPMISAPIKEY')]; + $result = ApiCalls::CurlPost(json_encode($data), $users_url); + $users_arr = json_decode($result, true); + if ($users_arr['success'] == false) { + return redirect->back(); + } + + $regions_url = "user_mgt/get_all_regions.php"; + $data = ['api_token' => env('LUPMISAPIKEY')]; + $result = ApiCalls::CurlPost(json_encode($data), $regions_url); + $regions_arr = json_decode($result, true); + if ($regions_arr['success'] == false) { + return redirect->back(); + } + $user_type_arr = [ 'district_user' => 'District User', 'regional_user' => 'Regional User', diff --git a/php_code/app/Providers/AppServiceProvider.php b/php_code/app/Providers/AppServiceProvider.php index 550357ef..54634a0c 100644 --- a/php_code/app/Providers/AppServiceProvider.php +++ b/php_code/app/Providers/AppServiceProvider.php @@ -4,6 +4,7 @@ namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\URL; +use Illuminate\Pagination\Paginator; // Import the Paginator class class AppServiceProvider extends ServiceProvider { @@ -15,5 +16,6 @@ class AppServiceProvider extends ServiceProvider if (config('app.env') === 'production') { URL::forceScheme('https'); } + Paginator::useBootstrap(); } } diff --git a/php_code/resources/views/admin/paginated.blade.php b/php_code/resources/views/admin/paginated.blade.php new file mode 100644 index 00000000..e857f085 --- /dev/null +++ b/php_code/resources/views/admin/paginated.blade.php @@ -0,0 +1,85 @@ +@extends('layouts.master') +@section('page-title') + Admin | {{ $page_title }} +@endsection +@section('page-css') + + +@endsection +@section('page-content') +@include('admin.partials.create-user') +@include('admin.partials.edit-user') +@include('admin.partials.view-user') +@include('layouts.partials.navbar') + + +
+
+
+
+

Users

+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ $items->links() }} + + +
FullnameUsernameEmailPhonePositionAllowed AppsAction
No users found
+ @csrf + + + + edit icon +
+
+ +
+
+
+
+ +
+
+
+ +@endsection +@section('page-js') + + + + + +@endsection diff --git a/php_code/resources/views/permits/show.blade.php b/php_code/resources/views/permits/show.blade.php index 901032c7..117109ab 100644 --- a/php_code/resources/views/permits/show.blade.php +++ b/php_code/resources/views/permits/show.blade.php @@ -43,7 +43,7 @@
- +
diff --git a/php_code/routes/web.php b/php_code/routes/web.php index b65ba64b..8194a1c6 100644 --- a/php_code/routes/web.php +++ b/php_code/routes/web.php @@ -23,6 +23,8 @@ Auth::routes([ Route::get('/view-pdf/{filename}', [App\Http\Controllers\PermitsController::class, 'viewPdf'])->name('view.pdf'); Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home'); +Route::get('/test', [App\Http\Controllers\AdminController::class, 'indexNew'])->name('test'); + Route::get('/sendsms', [App\Http\Controllers\UtilityController::class, 'sendSms'])->name('sendsms'); Route::get('/user-login', [App\Http\Controllers\UserloginController::class, 'index']);