From 598b2238caeabb296792b9949be5f0208f85a4a0 Mon Sep 17 00:00:00 2001 From: armiejean Date: Tue, 20 May 2025 17:28:50 +0800 Subject: [PATCH] user-management UI fixed --- app/Http/Controllers/CardMemberController.php | 168 ++++++++++-------- .../pages/user-management/add-user.blade.php | 4 +- .../pages/user-management/edit-user.blade.php | 4 +- .../pages/user-management/show-user.blade.php | 7 +- 4 files changed, 103 insertions(+), 80 deletions(-) diff --git a/app/Http/Controllers/CardMemberController.php b/app/Http/Controllers/CardMemberController.php index 0a4d9c0..4dac91d 100644 --- a/app/Http/Controllers/CardMemberController.php +++ b/app/Http/Controllers/CardMemberController.php @@ -87,82 +87,106 @@ class CardMemberController extends Controller } } - public function lockedAccounts(Request $request) - { - try { - $user = Session::get('user'); - $accessToken = $user['access_token'] ?? null; + public function lockedAccounts(Request $request) +{ + try { + // Force a log to confirm the method is reached + Log::debug('Entering lockedAccounts method', ['request' => $request->all()]); - if (!$accessToken) { - Log::info('No access token found, redirecting to login from locked-account'); - return redirect()->route('login')->with('error', 'Please log in to view locked accounts.'); - } + $user = Session::get('user'); + $accessToken = $user['access_token'] ?? null; - $page = $request->input('page', 1); - $pageSize = 5; // Fixed at 5 per page as per sample - $search = $request->input('_search', null); - - $response = Http::withHeaders([ - 'Accept' => 'application/json', - 'Authorization' => 'Bearer ' . $accessToken, - ])->get("{$this->apiBaseUrl}/cms/member", [ - 'page' => $page, - 'page_size' => $pageSize, - '_search' => $search, - '_locked' => 1, // Fetch only locked accounts - ]); - - if ($response->status() === 401 || $response->status() === 403) { - Log::warning('Unauthorized or Forbidden API response: ', $response->json()); - return redirect()->route('login')->with('error', 'Your session has expired. Please log in again.'); - } - - $json = $response->json(); - - Log::info("Locked Account API Response (Page {$page}): ", $json); - - if ($response->successful() && isset($json['data']) && is_array($json['data'])) { - $members = array_map(function ($member) { - Log::info('Processing locked account record: ', $member); - return [ - 'id' => $member['lcard_uuid'] ?? null, - 'cardNumber' => $member['card_number'] ?? '', - 'firstName' => $member['firstname'] ?? '', - 'lastName' => $member['lastname'] ?? '', - 'birthday' => $member['birthdate'] ?? '', - 'cardType' => $member['card_type'] ?? '', - 'status' => $member['status'] ? 'Active' : 'Inactive', - 'is_locked' => $member['is_locked'] ?? 0, // Add is_locked field - ]; - }, $json['data']); - - $total = $json['meta']['total'] ?? count($members); - $lastPage = $json['meta']['last_page'] ?? ceil($total / $pageSize); - } else { - Log::warning('No locked account data found or invalid API response: ', $json); - $members = []; - $total = 0; - $lastPage = 1; - } - - return view('pages.member management.locked-account', [ - 'members' => $members, - 'currentPage' => $page, - 'lastPage' => $lastPage, - 'total' => $total, - 'search' => $search, - ]); - } catch (\Exception $e) { - Log::error('Error fetching locked account data: ' . $e->getMessage()); - return view('pages.member management.locked-account', [ - 'members' => [], - 'currentPage' => 1, - 'lastPage' => 1, - 'total' => 0, - 'search' => $search, - ]); + if (!$accessToken) { + Log::warning('No access token found, redirecting to login from locked-account'); + return redirect()->route('login')->with('error', 'Please log in to view locked accounts.'); } + + Log::debug('Access token found', ['access_token' => $accessToken]); + + $page = $request->input('page', 1); + $pageSize = 5; + $search = $request->input('_search', null); + + Log::debug('Making API call to fetch locked accounts', [ + 'url' => "{$this->apiBaseUrl}/cms/member", + 'params' => ['page' => $page, 'page_size' => $pageSize, '_search' => $search, '_locked' => 1], + ]); + + $response = Http::withHeaders([ + 'Accept' => 'application/json', + 'Authorization' => 'Bearer ' . $accessToken, + ])->get("{$this->apiBaseUrl}/cms/member", [ + 'page' => $page, + 'page_size' => $pageSize, + '_search' => $search, + '_locked' => 1, + ]); + + Log::debug('API response received', [ + 'status' => $response->status(), + 'body' => $response->body(), + ]); + + if ($response->status() === 401 || $response->status() === 403) { + Log::warning('Unauthorized or Forbidden API response', ['response' => $response->json()]); + return redirect()->route('login')->with('error', 'Your session has expired. Please log in again.'); + } + + $json = $response->json(); + Log::info('Locked Account API Raw Response', ['response' => $json]); + + if ($response->successful() && isset($json['data']) && is_array($json['data'])) { + $members = array_map(function ($member) { + Log::info('Processing locked account record', ['member' => $member]); + return [ + 'id' => $member['lcard_uuid'] ?? null, + 'cardNumber' => $member['card_number'] ?? '', + 'firstName' => $member['firstname'] ?? '', + 'lastName' => $member['lastname'] ?? '', + 'birthday' => $member['birthdate'] ?? '', + 'cardType' => $member['card_type'] ?? '', + 'status' => $member['status'] ? 'Active' : 'Inactive', + 'is_locked' => $member['is_locked'] ?? 0, + ]; + }, $json['data']); + + $total = $json['meta']['total'] ?? count($members); + $lastPage = $json['meta']['last_page'] ?? ceil($total / $pageSize); + } else { + Log::warning('No locked account data found or invalid API response', ['response' => $json]); + $members = []; + $total = 0; + $lastPage = 1; + } + + Log::debug('Rendering view with data', [ + 'members' => $members, + 'currentPage' => $page, + 'lastPage' => $lastPage, + 'total' => $total, + ]); + + return view('pages.member management.locked-account', [ + 'members' => $members, + 'currentPage' => $page, + 'lastPage' => $lastPage, + 'total' => $total, + 'search' => $search, + ]); + } catch (\Exception $e) { + Log::error('Error in lockedAccounts method', [ + 'message' => $e->getMessage(), + 'trace' => $e->getTraceAsString(), + ]); + return view('pages.member management.locked-account', [ + 'members' => [], + 'currentPage' => 1, + 'lastPage' => 1, + 'total' => 0, + 'search' => $search, + ]); } +} public function show($uuid) { diff --git a/resources/views/pages/user-management/add-user.blade.php b/resources/views/pages/user-management/add-user.blade.php index e527d40..b16cfd5 100644 --- a/resources/views/pages/user-management/add-user.blade.php +++ b/resources/views/pages/user-management/add-user.blade.php @@ -3,7 +3,7 @@ @section('content')
-
+
Add New User
@@ -66,7 +66,7 @@
-
+
@endsection \ No newline at end of file diff --git a/resources/views/pages/user-management/edit-user.blade.php b/resources/views/pages/user-management/edit-user.blade.php index 5c74591..96f901f 100644 --- a/resources/views/pages/user-management/edit-user.blade.php +++ b/resources/views/pages/user-management/edit-user.blade.php @@ -4,7 +4,7 @@ @section('content')
-
+
Edit User
@@ -75,7 +75,7 @@
-
+
@endsection diff --git a/resources/views/pages/user-management/show-user.blade.php b/resources/views/pages/user-management/show-user.blade.php index 632cc62..d5c0cee 100644 --- a/resources/views/pages/user-management/show-user.blade.php +++ b/resources/views/pages/user-management/show-user.blade.php @@ -1,10 +1,10 @@ -```blade + @extends('layouts.app') @section('content')
-
+
View User Details
@@ -46,8 +46,7 @@
-
+
@endsection -``` \ No newline at end of file