From 0f2e4296761338521d0f8c90c653968b62f868cb Mon Sep 17 00:00:00 2001 From: erishBRBS Date: Sun, 11 May 2025 18:21:03 +0800 Subject: [PATCH] card-member table integrated --- app/Livewire/CardMember.php | 35 ++++++++++++++++++- app/Livewire/Components/Table.php | 1 + .../views/livewire/components/table.blade.php | 17 +++++---- .../member-management/card-member.blade.php | 11 +++--- .../locked-account.blade.php | 2 ++ 5 files changed, 54 insertions(+), 12 deletions(-) diff --git a/app/Livewire/CardMember.php b/app/Livewire/CardMember.php index f15d416..2c1c957 100644 --- a/app/Livewire/CardMember.php +++ b/app/Livewire/CardMember.php @@ -3,6 +3,8 @@ namespace App\Livewire; use Livewire\Component; +use Illuminate\Support\Facades\Http; +use Illuminate\Support\Facades\Session; use Livewire\Attributes\Layout; // Required for layout declaration #[Layout('layouts.dashboard')] // Attribute syntax for Laravel 11 @@ -17,7 +19,38 @@ class CardMember extends Component public function loadCardMembers() { - $this->cardMembers = collect(json_decode(file_get_contents(storage_path('app/c-member.json')), true)); + try { + $token = Session::get('user')['access_token'] ?? null; + + if (!$token) { + $this->addError('users', 'No access token found.'); + return; + } + + $response = Http::withToken($token) + ->get(config('services.backend_api.url') . '/api/cms/member'); + + // dd($response->json()); + if ($response->successful()) { + // Properly use collect to handle the response data + $this->cardMembers = collect($response->json()['data'])->map(function ($cardMembers) { + return [ + 'lcard_uuid' => $cardMembers['lcard_uuid'], + 'card_number' => $cardMembers['card_number'], + 'firstname' => $cardMembers['firstname'], + 'lastname' => $cardMembers['lastname'], + 'birthdate' => $cardMembers['birthdate'], + 'cardtype_id' => $cardMembers['card_type'], + 'status' => $cardMembers['status'], + ]; + }); + + } else { + $this->addError('users', 'Failed to load users.'); + } + } catch (\Exception $e) { + $this->addError('users', 'Error: ' . $e->getMessage()); + } } public function render() diff --git a/app/Livewire/Components/Table.php b/app/Livewire/Components/Table.php index b52e64a..594c33b 100644 --- a/app/Livewire/Components/Table.php +++ b/app/Livewire/Components/Table.php @@ -13,6 +13,7 @@ class Table extends Component public $selected = []; public $addRoute = null; public $hasAddButton = true; + public $hasExportButton = true; public $hasDelete = true; public $selectAll = false; public $hasCheckbox = true; diff --git a/resources/views/livewire/components/table.blade.php b/resources/views/livewire/components/table.blade.php index 8c11a61..f6078b1 100644 --- a/resources/views/livewire/components/table.blade.php +++ b/resources/views/livewire/components/table.blade.php @@ -31,19 +31,22 @@ @endif - @if ($hasAddButton ?? true) + @if ($hasAddButton ?? true) + Add - @else + @elseif ($hasExportButton ?? false) - - @endif + @else + + + @endif diff --git a/resources/views/livewire/member-management/card-member.blade.php b/resources/views/livewire/member-management/card-member.blade.php index 3484501..99238da 100644 --- a/resources/views/livewire/member-management/card-member.blade.php +++ b/resources/views/livewire/member-management/card-member.blade.php @@ -4,10 +4,10 @@ \ No newline at end of file diff --git a/resources/views/livewire/member-management/locked-account.blade.php b/resources/views/livewire/member-management/locked-account.blade.php index 0302d64..92b42de 100644 --- a/resources/views/livewire/member-management/locked-account.blade.php +++ b/resources/views/livewire/member-management/locked-account.blade.php @@ -15,5 +15,7 @@ :hasActions="true" :isViewPage="true" :hasDelete="false" + :hasAddButton="false" + :hasExportButton="false" />