diff --git a/extensions/Servers/Proxmox/Livewire/Overview.php b/extensions/Servers/Proxmox/Livewire/Overview.php index 0ee3cc31d..78397b16b 100644 --- a/extensions/Servers/Proxmox/Livewire/Overview.php +++ b/extensions/Servers/Proxmox/Livewire/Overview.php @@ -22,8 +22,10 @@ class Overview extends Component public $isEditingPassword = false; public $passwordError = ''; - // Legacy property - kept to prevent errors for users with stale Livewire state + // Server icon customization public bool $showIconModal = false; + public string $selectedIcon = ''; + public string $selectedIconColor = ''; public string $cpuTimeRange = 'hour'; public string $cpuAggregation = 'average'; @@ -51,6 +53,10 @@ class Overview extends Component $this->hostname = $server->hostname ?? ($this->status->name ?? ''); + // Load icon customization + $this->selectedIcon = $server->user_set_icon ?? ''; + $this->selectedIconColor = $server->user_set_icon_color ?? ''; + // Load notes from Proxmox VM description try { $proxmox = new Proxmox; @@ -61,6 +67,44 @@ class Overview extends Component } } + public function openIconModal(): void + { + $this->showIconModal = true; + } + + public function closeIconModal(): void + { + $this->showIconModal = false; + } + + public function saveIcon(string $icon, string $color): void + { + $this->server->update([ + 'user_set_icon' => $icon ?: null, + 'user_set_icon_color' => $color ?: null, + ]); + + $this->selectedIcon = $icon; + $this->selectedIconColor = $color; + $this->showIconModal = false; + + $this->notify('Server icon updated successfully', 'success'); + } + + public function resetIcon(): void + { + $this->server->update([ + 'user_set_icon' => null, + 'user_set_icon_color' => null, + ]); + + $this->selectedIcon = ''; + $this->selectedIconColor = ''; + $this->showIconModal = false; + + $this->notify('Server icon reset to default', 'success'); + } + public function checkStatus() { $currentStatus = $this->status->status; diff --git a/extensions/Servers/Proxmox/Models/Server.php b/extensions/Servers/Proxmox/Models/Server.php index 9dc1b3c62..508534ae6 100644 --- a/extensions/Servers/Proxmox/Models/Server.php +++ b/extensions/Servers/Proxmox/Models/Server.php @@ -20,6 +20,8 @@ class Server extends Model 'status', 'hostname', 'password', + 'user_set_icon', + 'user_set_icon_color', ]; public function node() diff --git a/extensions/Servers/Proxmox/views/components/layout.blade.php b/extensions/Servers/Proxmox/views/components/layout.blade.php index 74edf9834..3b0b5d56d 100644 --- a/extensions/Servers/Proxmox/views/components/layout.blade.php +++ b/extensions/Servers/Proxmox/views/components/layout.blade.php @@ -38,9 +38,149 @@ @endphp
- - {{ $server->hostname }} - +
+ + + + {{ $server->hostname }} + +
+ + @if($view === 'overview') +
+ +
+
+ + +
+ @endif + @else @php $statuses = [