From 5b0120f7a0c347c982b1b304ff2c60ce9e8d384c Mon Sep 17 00:00:00 2001 From: erishBRBS Date: Fri, 18 Apr 2025 14:35:32 +0800 Subject: [PATCH] table added --- app/Livewire/UserManagement.php | 77 ++++++++++++++++++- .../views/components/pagination.blade.php | 77 +++++++++++++++++++ resources/views/layouts/dashboard.blade.php | 6 +- .../about-us/top-nav/card-type.blade.php | 6 +- .../top-nav/terms-and-privacy.blade.php | 6 +- .../views/livewire/auth/login-form.blade.php | 4 +- .../views/livewire/header/header.blade.php | 18 ++--- .../top-nav/photo-slider.blade.php | 6 +- .../livewire/main-content-manager.blade.php | 2 +- .../top-nav/card-member.blade.php | 6 +- .../top-nav/locked-account.blade.php | 6 +- .../livewire/navigation/drawer.blade.php | 47 +++++------ .../top-nav/notification.blade.php | 8 +- .../views/livewire/profile/profile.blade.php | 10 +-- .../profile/top-nav/profile.blade.php | 22 +++--- .../promotion/top-nav/promotion.blade.php | 6 +- .../top-nav/mobile-usage-report.blade.php | 6 +- .../top-nav/registration-report.blade.php | 6 +- .../top-nav/station-rating-report.blade.php | 6 +- .../top-nav/top-up-usage-report.blade.php | 6 +- .../station-locator/top-nav/branch.blade.php | 6 +- .../station-locator/top-nav/fuel.blade.php | 6 +- .../station-locator/top-nav/station.blade.php | 6 +- .../top-nav/system-parameter.blade.php | 6 +- .../livewire/top-up/top-nav/top-up.blade.php | 4 +- .../top-nav/user-management.blade.php | 6 +- .../user-management/user-management.blade.php | 63 ++++++++++++++- routes/web.php | 9 ++- 28 files changed, 329 insertions(+), 108 deletions(-) create mode 100644 resources/views/components/pagination.blade.php diff --git a/app/Livewire/UserManagement.php b/app/Livewire/UserManagement.php index a06b058..0aaae0b 100644 --- a/app/Livewire/UserManagement.php +++ b/app/Livewire/UserManagement.php @@ -6,8 +6,83 @@ use Livewire\Component; class UserManagement extends Component { + public $search = ''; + public $sortField = 'username'; + public $sortDirection = 'asc'; + public $currentPage = 1; + public $perPage = 10; + public $expandEllipsis = false; + + protected $queryString = ['search']; + + protected $listeners = ['paginate-to' => 'setPage']; + + public function updatingSearch() + { + $this->currentPage = 1; + } + + public function sortBy($field) + { + if ($this->sortField === $field) { + $this->sortDirection = $this->sortDirection === 'asc' ? 'desc' : 'asc'; + } else { + $this->sortField = $field; + $this->sortDirection = 'asc'; + } + } + + public function searchEnter() + { + $this->currentPage = 1; + } + + public function getFilteredUsersProperty() + { + $users = collect(json_decode(file_get_contents(storage_path('app/users.json')), true)); + + if ($this->search) { + $users = $users->filter(function ($user) { + return str_contains(strtolower($user['username']), strtolower($this->search)) || + str_contains(strtolower($user['first_name']), strtolower($this->search)) || + str_contains(strtolower($user['last_name']), strtolower($this->search)) || + str_contains(strtolower($user['email']), strtolower($this->search)); + }); + } + + return $users->sortBy([[$this->sortField, $this->sortDirection]])->values(); + } + + // Change this to a method instead of a property + public function calculateTotalPages() + { + return ceil($this->filteredUsers->count() / $this->perPage); + } + + public function getPaginatedUsersProperty() + { + return $this->filteredUsers + ->slice(($this->currentPage - 1) * $this->perPage, $this->perPage) + ->values(); + } + + public function setPage($page) + { + $this->currentPage = max(1, min($this->calculateTotalPages(), $page)); + $this->expandEllipsis = false; + } + public function toggleEllipsis() + { + $this->expandEllipsis = !$this->expandEllipsis; + } + public function render() { - return view('livewire.user-management.user-management'); + return view('livewire.user-management.user-management', [ + 'users' => $this->paginatedUsers, + 'totalPages' => $this->calculateTotalPages(), // Now using the method + 'currentPage' => $this->currentPage, + 'expandEllipsis' => $this->expandEllipsis, + ]); } } diff --git a/resources/views/components/pagination.blade.php b/resources/views/components/pagination.blade.php new file mode 100644 index 0000000..9daa243 --- /dev/null +++ b/resources/views/components/pagination.blade.php @@ -0,0 +1,77 @@ +@props(['currentPage', 'totalPages']) + +@if ($totalPages > 1) + +@endif diff --git a/resources/views/layouts/dashboard.blade.php b/resources/views/layouts/dashboard.blade.php index b67ed5f..fba2f71 100644 --- a/resources/views/layouts/dashboard.blade.php +++ b/resources/views/layouts/dashboard.blade.php @@ -2,9 +2,11 @@ - Dashboard + + + Unioil @vite(['resources/css/app.css', 'resources/js/app.js']) - @livewireStyles + @livewireStyles diff --git a/resources/views/livewire/about-us/top-nav/card-type.blade.php b/resources/views/livewire/about-us/top-nav/card-type.blade.php index 319f978..0c2c94b 100644 --- a/resources/views/livewire/about-us/top-nav/card-type.blade.php +++ b/resources/views/livewire/about-us/top-nav/card-type.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Card Types diff --git a/resources/views/livewire/about-us/top-nav/terms-and-privacy.blade.php b/resources/views/livewire/about-us/top-nav/terms-and-privacy.blade.php index 40668c8..1197ed4 100644 --- a/resources/views/livewire/about-us/top-nav/terms-and-privacy.blade.php +++ b/resources/views/livewire/about-us/top-nav/terms-and-privacy.blade.php @@ -1,12 +1,12 @@
-
+ diff --git a/resources/views/livewire/auth/login-form.blade.php b/resources/views/livewire/auth/login-form.blade.php index a2eea2a..1a51f97 100644 --- a/resources/views/livewire/auth/login-form.blade.php +++ b/resources/views/livewire/auth/login-form.blade.php @@ -25,7 +25,9 @@ Forgot Username
- + + Log in +
diff --git a/resources/views/livewire/header/header.blade.php b/resources/views/livewire/header/header.blade.php index 1ae3ba5..92a45d1 100644 --- a/resources/views/livewire/header/header.blade.php +++ b/resources/views/livewire/header/header.blade.php @@ -1,11 +1,11 @@ -
-
+
+
diff --git a/resources/views/livewire/home-page-mobile/top-nav/photo-slider.blade.php b/resources/views/livewire/home-page-mobile/top-nav/photo-slider.blade.php index 47565a1..7c561d9 100644 --- a/resources/views/livewire/home-page-mobile/top-nav/photo-slider.blade.php +++ b/resources/views/livewire/home-page-mobile/top-nav/photo-slider.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Photo Sliders diff --git a/resources/views/livewire/main-content-manager.blade.php b/resources/views/livewire/main-content-manager.blade.php index 5a32877..fb1021f 100644 --- a/resources/views/livewire/main-content-manager.blade.php +++ b/resources/views/livewire/main-content-manager.blade.php @@ -82,7 +82,7 @@ @break - + @default @endswitch diff --git a/resources/views/livewire/member-management/top-nav/card-member.blade.php b/resources/views/livewire/member-management/top-nav/card-member.blade.php index 17c0896..601278b 100644 --- a/resources/views/livewire/member-management/top-nav/card-member.blade.php +++ b/resources/views/livewire/member-management/top-nav/card-member.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Card Members diff --git a/resources/views/livewire/member-management/top-nav/locked-account.blade.php b/resources/views/livewire/member-management/top-nav/locked-account.blade.php index cf24dd7..8111f83 100644 --- a/resources/views/livewire/member-management/top-nav/locked-account.blade.php +++ b/resources/views/livewire/member-management/top-nav/locked-account.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Locked Accounts diff --git a/resources/views/livewire/navigation/drawer.blade.php b/resources/views/livewire/navigation/drawer.blade.php index 697e710..5ceed88 100644 --- a/resources/views/livewire/navigation/drawer.blade.php +++ b/resources/views/livewire/navigation/drawer.blade.php @@ -1,6 +1,6 @@
- Unioil Logo + Unioil Logo
diff --git a/resources/views/livewire/notification/top-nav/notification.blade.php b/resources/views/livewire/notification/top-nav/notification.blade.php index adf60b5..ae64a5a 100644 --- a/resources/views/livewire/notification/top-nav/notification.blade.php +++ b/resources/views/livewire/notification/top-nav/notification.blade.php @@ -1,12 +1,12 @@
-
+
- - + + Home - + Notifications diff --git a/resources/views/livewire/profile/profile.blade.php b/resources/views/livewire/profile/profile.blade.php index 49fdc78..8d879df 100644 --- a/resources/views/livewire/profile/profile.blade.php +++ b/resources/views/livewire/profile/profile.blade.php @@ -4,12 +4,12 @@ @include('livewire.profile.top-nav.profile')
-
- -

LBTek Systems

+
+ +

LBTek Systems

-
+

My Information

Username: lbteksupport

@@ -17,7 +17,7 @@ class="text-blue-600 hover:underline">support@lbteksystems.com

-

Access Role

+

Access Role

Role: System Admin

diff --git a/resources/views/livewire/profile/top-nav/profile.blade.php b/resources/views/livewire/profile/top-nav/profile.blade.php index 06de3e0..c3507f7 100644 --- a/resources/views/livewire/profile/top-nav/profile.blade.php +++ b/resources/views/livewire/profile/top-nav/profile.blade.php @@ -1,16 +1,18 @@ -
- -
+ +
- - + + Home - - -

My Profile

+ + Profile
+ + +

My Profile

+ +
-
+
\ No newline at end of file diff --git a/resources/views/livewire/promotion/top-nav/promotion.blade.php b/resources/views/livewire/promotion/top-nav/promotion.blade.php index 076654b..89645da 100644 --- a/resources/views/livewire/promotion/top-nav/promotion.blade.php +++ b/resources/views/livewire/promotion/top-nav/promotion.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Promotions diff --git a/resources/views/livewire/report/top-nav/mobile-usage-report.blade.php b/resources/views/livewire/report/top-nav/mobile-usage-report.blade.php index 9082667..3a58714 100644 --- a/resources/views/livewire/report/top-nav/mobile-usage-report.blade.php +++ b/resources/views/livewire/report/top-nav/mobile-usage-report.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Mobile Usage Report diff --git a/resources/views/livewire/report/top-nav/registration-report.blade.php b/resources/views/livewire/report/top-nav/registration-report.blade.php index 548985b..68580fb 100644 --- a/resources/views/livewire/report/top-nav/registration-report.blade.php +++ b/resources/views/livewire/report/top-nav/registration-report.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Registration Report diff --git a/resources/views/livewire/report/top-nav/station-rating-report.blade.php b/resources/views/livewire/report/top-nav/station-rating-report.blade.php index d0bbb3b..4386f21 100644 --- a/resources/views/livewire/report/top-nav/station-rating-report.blade.php +++ b/resources/views/livewire/report/top-nav/station-rating-report.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Station Rating Report diff --git a/resources/views/livewire/report/top-nav/top-up-usage-report.blade.php b/resources/views/livewire/report/top-nav/top-up-usage-report.blade.php index caa027e..c6f68c0 100644 --- a/resources/views/livewire/report/top-nav/top-up-usage-report.blade.php +++ b/resources/views/livewire/report/top-nav/top-up-usage-report.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Top-Up Usage Report diff --git a/resources/views/livewire/station-locator/top-nav/branch.blade.php b/resources/views/livewire/station-locator/top-nav/branch.blade.php index b34269d..54a4179 100644 --- a/resources/views/livewire/station-locator/top-nav/branch.blade.php +++ b/resources/views/livewire/station-locator/top-nav/branch.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Branch diff --git a/resources/views/livewire/station-locator/top-nav/fuel.blade.php b/resources/views/livewire/station-locator/top-nav/fuel.blade.php index f1dc45c..2650b98 100644 --- a/resources/views/livewire/station-locator/top-nav/fuel.blade.php +++ b/resources/views/livewire/station-locator/top-nav/fuel.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Fuel diff --git a/resources/views/livewire/station-locator/top-nav/station.blade.php b/resources/views/livewire/station-locator/top-nav/station.blade.php index 0b891f7..d19bffd 100644 --- a/resources/views/livewire/station-locator/top-nav/station.blade.php +++ b/resources/views/livewire/station-locator/top-nav/station.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + Station diff --git a/resources/views/livewire/system-parameter/top-nav/system-parameter.blade.php b/resources/views/livewire/system-parameter/top-nav/system-parameter.blade.php index a84b0f8..3818c06 100644 --- a/resources/views/livewire/system-parameter/top-nav/system-parameter.blade.php +++ b/resources/views/livewire/system-parameter/top-nav/system-parameter.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + System Parameters diff --git a/resources/views/livewire/top-up/top-nav/top-up.blade.php b/resources/views/livewire/top-up/top-nav/top-up.blade.php index 64cb292..5d0e754 100644 --- a/resources/views/livewire/top-up/top-nav/top-up.blade.php +++ b/resources/views/livewire/top-up/top-nav/top-up.blade.php @@ -1,9 +1,9 @@
-
+
- + Home diff --git a/resources/views/livewire/user-management/top-nav/user-management.blade.php b/resources/views/livewire/user-management/top-nav/user-management.blade.php index dd073ef..8a957d7 100644 --- a/resources/views/livewire/user-management/top-nav/user-management.blade.php +++ b/resources/views/livewire/user-management/top-nav/user-management.blade.php @@ -1,12 +1,12 @@
-
+
- + Home - + User Management diff --git a/resources/views/livewire/user-management/user-management.blade.php b/resources/views/livewire/user-management/user-management.blade.php index 4048318..ec60e56 100644 --- a/resources/views/livewire/user-management/user-management.blade.php +++ b/resources/views/livewire/user-management/user-management.blade.php @@ -1,5 +1,62 @@
-{{-- Top Nav --}} -@include('livewire.user-management.top-nav.user-management') - This is the user management page. + {{-- Top Nav --}} + @include('livewire.user-management.top-nav.user-management') + +
+
+ + +
+ + + + + + @foreach(['username', 'first_name', 'last_name', 'role', 'email', 'status'] as $field) + + @endforeach + + + + + @forelse($users as $user) + + + + + + + + + + + @empty + + + + @endforelse + +
+
+ {{ ucfirst(str_replace('_', ' ', $field)) }} + {{-- Use one consistent icon for all headers --}} + + + +
+
Action
{{ $user['username'] }}{{ $user['first_name'] }}{{ $user['last_name'] }}{{ $user['role'] }}{{ $user['email'] }}{{ $user['status'] }} + + + +
No users found.
+ + {{-- Pagination using component --}} + +
diff --git a/routes/web.php b/routes/web.php index bb7a7f0..aed0ba3 100644 --- a/routes/web.php +++ b/routes/web.php @@ -24,9 +24,14 @@ use Illuminate\Support\Facades\Route; //laravel page -Route::get('/login', function () { - return view('auth.log-in'); // This will point to the resource/views/auth/log-in.blade.php +Route::get('/', function () { + return redirect()->route('login'); }); +Route::get('/login', function () { + return view('auth.log-in'); +})->name('login'); + + // Route::get('/login', LoginForm::class)->name('layouts.app'); // Route::get('/dashboard', function () {