card-member table integrated
This commit is contained in:
parent
c9ef8179ff
commit
0f2e429676
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -31,19 +31,22 @@
|
|||
|
||||
@endif
|
||||
|
||||
@if ($hasAddButton ?? true)
|
||||
@if ($hasAddButton ?? true)
|
||||
<!-- Add button -->
|
||||
<a href="{{ $addRoute }}" class="bg-orange-600 text-white px-4 py-2 rounded">
|
||||
+ Add
|
||||
</a>
|
||||
@else
|
||||
@elseif ($hasExportButton ?? false)
|
||||
<!-- Export button -->
|
||||
<button
|
||||
wire:click="export"
|
||||
class="bg-orange-600 text-white px-4 py-2 rounded flex items-center gap-2">
|
||||
Export CSV
|
||||
<button wire:click="export" class="bg-orange-600 text-white px-4 py-2 rounded flex items-center gap-2">
|
||||
Export
|
||||
</button>
|
||||
@endif
|
||||
@else
|
||||
<!-- Default button or anything else you want here -->
|
||||
<button class="bg-gray-600 text-white px-4 py-2 rounded">
|
||||
Default Action
|
||||
</button>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<!-- Table Header -->
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
<livewire:components.table
|
||||
:columns="[
|
||||
['label' => 'Card Number', 'field' => 'card_number'],
|
||||
['label' => 'First Name', 'field' => 'first_name'],
|
||||
['label' => 'Last Name', 'field' => 'last_name'],
|
||||
['label' => 'Birthday', 'field' => 'birthday'],
|
||||
['label' => 'Card Type', 'field' => 'card_type'],
|
||||
['label' => 'First Name', 'field' => 'firstname'],
|
||||
['label' => 'Last Name', 'field' => 'lastname'],
|
||||
['label' => 'Birthday', 'field' => 'birthdate'],
|
||||
['label' => 'Card Type', 'field' => 'cardtype_id'],
|
||||
['label' => 'Status', 'field' => 'status'],
|
||||
]"
|
||||
:rows="$cardMembers"
|
||||
|
@ -15,5 +15,8 @@
|
|||
:hasActions="true"
|
||||
:isViewPage="true"
|
||||
:hasDelete="false"
|
||||
:hasAddButton="false"
|
||||
:hasExportButton="false"
|
||||
:rowKey="'lcard_uuid'"
|
||||
/>
|
||||
</div>
|
|
@ -15,5 +15,7 @@
|
|||
:hasActions="true"
|
||||
:isViewPage="true"
|
||||
:hasDelete="false"
|
||||
:hasAddButton="false"
|
||||
:hasExportButton="false"
|
||||
/>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue