diff --git a/app/Livewire/Buttons/CreateUser.php b/app/Livewire/Buttons/CreateUser.php index a04ebb9..c2e6971 100644 --- a/app/Livewire/Buttons/CreateUser.php +++ b/app/Livewire/Buttons/CreateUser.php @@ -48,6 +48,7 @@ class CreateUser extends Component { $token = Session::get('user')['access_token'] ?? null; + if (!$token) { $this->addError('users', 'No access token found.'); @@ -64,6 +65,9 @@ class CreateUser extends Component 'password' => $this->default_password, ]); + // dd($response->json()); + + //handle backend response if ($response->status() === 422) { $errors = $response->json('data'); diff --git a/app/Livewire/Components/Table.php b/app/Livewire/Components/Table.php index e9dde99..b803c2e 100644 --- a/app/Livewire/Components/Table.php +++ b/app/Livewire/Components/Table.php @@ -45,6 +45,23 @@ class Table extends Component public $showModal = false; public $modalMode = 'view'; public $modalData = []; + public $confirmingDeleteId = null; + + public function confirmDelete($id) +{ + $this->confirmingDeleteId = $id; +} + +public function deleteConfirmed() +{ + if (!$this->confirmingDeleteId) return; + + $this->deleteRow($this->confirmingDeleteId); + + // Reset the confirmation state + $this->confirmingDeleteId = null; +} + public function mount($columns, $rows, $addRoute = null, $rowKey = 'id') { @@ -74,30 +91,53 @@ class Table extends Component $this->showModal = true; } -public function saveRow() -{ - $token = Session::get('user')['access_token'] ?? null; + public function saveRow() + { + $token = Session::get('user')['access_token'] ?? null; - $url = rtrim(config('services.backend_api.url'), '/') . '/' . $this->updateEndpoint . '/' . $this->modalData[$this->rowKey]; + $url = rtrim(config('services.backend_api.url'), '/') . '/' . $this->updateEndpoint . '/' . $this->modalData[$this->rowKey]; - try { - $response = Http::withToken($token)->put($url, $this->modalData); + try { + $response = Http::withToken($token)->put($url, $this->modalData); - if ($response->successful()) { - $this->closeModal(); - $this->fetchData(); - } else { - $errors = $response->json('errors') ?? []; + if ($response->successful()) { + $this->closeModal(); + $this->fetchData(); + } else { + $errors = $response->json('errors') ?? []; - foreach ($errors as $field => $messages) { - $this->addError("modalData.$field", is_array($messages) ? $messages[0] : $messages); + foreach ($errors as $field => $messages) { + $this->addError("modalData.$field", is_array($messages) ? $messages[0] : $messages); + } } + } catch (\Exception $e) { + logger()->error('SaveRow error: ' . $e->getMessage()); + $this->addError('modalData', 'Something went wrong. Please try again.'); + } + } + + public function deleteRow($id) + { + $token = Session::get('user')['access_token'] ?? null; + + $url = rtrim(config('services.backend_api.url'), '/') . '/' . $this->deleteEndpoint . '/' . $id; + + try { + $response = Http::withToken($token)->delete($url); + + if ($response->successful()) { + $this->fetchData(); + } else { + $errors = $response->json('errors') ?? []; + foreach ($errors as $field => $messages) { + $this->addError("modalData.$field", is_array($messages) ? $messages[0] : $messages); + } + } + } catch (\Exception $e) { + logger()->error('DeleteRow error: ' . $e->getMessage()); + $this->addError('modalData', 'Something went wrong. Please try again.'); } - } catch (\Exception $e) { - logger()->error('SaveRow error: ' . $e->getMessage()); - $this->addError('modalData', 'Something went wrong. Please try again.'); } -} diff --git a/app/Livewire/UserManagement.php b/app/Livewire/UserManagement.php index 3918ba6..9619d08 100644 --- a/app/Livewire/UserManagement.php +++ b/app/Livewire/UserManagement.php @@ -12,36 +12,37 @@ class UserManagement extends Component public function mount() { - $this->loadUsers(); + $this->loadUsers(); } public function loadUsers() { 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/admin'); - - // dd($response->json()); + + // dd($response->json()); if ($response->successful()) { // Properly use collect to handle the response data - $this->users = collect($response->json()['data'])->map(function ($user) { - return [ - 'admin_uuid' => $user['admin_uuid'], - 'username' => $user['username'], - 'firstname' => $user['firstname'], - 'lastname' => $user['lastname'], - 'email' => $user['email'], - 'role' => $user['role'], - 'status' => $user['status'], - ]; - }); + $this->users = collect($response->json()['data'])->map(function ($user) { + return [ + 'admin_uuid' => $user['admin_uuid'], + 'username' => $user['username'], + 'firstname' => $user['firstname'], + 'lastname' => $user['lastname'], + 'email' => $user['email'], + 'role' => $user['role'], + 'status' => $user['status'], + ]; + }); + } else { $this->addError('users', 'Failed to load users.'); } @@ -57,4 +58,3 @@ class UserManagement extends Component ]); } } - diff --git a/docker-compose.yml b/docker-compose.yml index aa15443..1fe23ba 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,7 +20,7 @@ services: timeout: 10s retries: 10 networks: - - app_network + - unioil-network db_mysql: @@ -40,14 +40,14 @@ services: timeout: 10s retries: 5 networks: - - app_network + - unioil-network nginx: image: nginx:alpine container_name: unioil-nginx restart: unless-stopped ports: - - "8000:80" + - "8000:81" volumes: - .:/var/www/html - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro @@ -55,7 +55,7 @@ services: app: condition: service_healthy networks: - - app_network + - unioil-network volumes: mysql-data: @@ -63,5 +63,5 @@ volumes: driver: local networks: - app_network: + unioil-network: driver: bridge \ No newline at end of file diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf index b7a0c78..1b805de 100644 --- a/docker/nginx/default.conf +++ b/docker/nginx/default.conf @@ -1,5 +1,5 @@ server { - listen 80; + listen 81; server_name localhost; root /var/www/html/public; diff --git a/package-lock.json b/package-lock.json index c073b36..587267d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "unioil-cms-fe", + "name": "html", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/resources/views/livewire/components/table.blade.php b/resources/views/livewire/components/table.blade.php index e6052a7..c307d30 100644 --- a/resources/views/livewire/components/table.blade.php +++ b/resources/views/livewire/components/table.blade.php @@ -31,19 +31,19 @@ @endif - @if ($hasAddButton ?? true) + @if ($hasAddButton ?? true) - + + Add - @elseif ($hasExportButton ?? false) + @elseif ($hasExportButton ?? false) - @else + @else - @endif + @endif @@ -87,9 +87,9 @@ @if ($hasCheckbox)