refactor: restore direct loading of firewall logs in Proxmox component, simplifying event dispatching and improving log update handling

This commit is contained in:
2025-12-02 16:50:28 -05:00
parent c75f72efce
commit eb751cc18f

View File

@@ -58,7 +58,7 @@ class Firewall extends Component
$this->loadFirewallOptions(); $this->loadFirewallOptions();
$this->loadFirewallRules(); $this->loadFirewallRules();
$this->loadNetworkAdapters(); $this->loadNetworkAdapters();
// Note: loadFirewallLogs() is now called only once via API on page load $this->loadFirewallLogs();
} }
protected function loadAvailableIps(): void protected function loadAvailableIps(): void
@@ -797,25 +797,6 @@ class Firewall extends Component
} }
} }
/**
* Fetch firewall logs via API call - returns logs as JSON
* This is called only once on page load via Alpine.js
*/
public function fetchFirewallLogs(): void
{
$this->loadFirewallLogs();
$this->dispatch('firewall-logs-loaded', [
'logs' => $this->firewallLogs,
'error' => $this->logError,
]);
}
#[\Livewire\Attributes\On('fetchFirewallLogsAction')]
public function handleFetchFirewallLogs(): void
{
$this->loadFirewallLogs();
}
public function loadFirewallLogs(): void public function loadFirewallLogs(): void
{ {
$this->logError = ''; $this->logError = '';
@@ -957,8 +938,8 @@ class Firewall extends Component
$this->logError = 'No firewall logs available. Ensure firewall logging is enabled in Proxmox (Datacenter > Firewall > Options).'; $this->logError = 'No firewall logs available. Ensure firewall logging is enabled in Proxmox (Datacenter > Firewall > Options).';
} }
// Dispatch event to frontend with logs data // Dispatch event to update frontend without full re-render
$this->dispatch('firewall-logs-loaded', logs: $this->firewallLogs, error: ''); $this->dispatch('logs-updated', logs: $this->firewallLogs);
} catch (\Exception $e) { } catch (\Exception $e) {
$errorMessage = $e->getMessage(); $errorMessage = $e->getMessage();
if (method_exists($e, 'response') && $e->response()) { if (method_exists($e, 'response') && $e->response()) {
@@ -979,9 +960,6 @@ class Firewall extends Component
'vm_id' => $this->server->vm_id, 'vm_id' => $this->server->vm_id,
]); ]);
$this->firewallLogs = []; $this->firewallLogs = [];
// Dispatch error event to frontend
$this->dispatch('firewall-logs-loaded', logs: [], error: $this->logError);
} }
} }
@@ -1260,4 +1238,3 @@ class Firewall extends Component
]); ]);
} }
} }