feat: Update Proxmox extension with various improvements and bug fixes

- Change listStates method to accept nullable integer for limit parameter.
- Modify TechnitiumDns class to return structured error messages on failure.
- Enhance VNC and xterm popup routes with user authorization checks.
- Update backups view to improve loading states and add unique keys for dynamic elements.
- Refactor cloud-init view to ensure proper data binding and improve user experience.
- Add wire:key attributes to various elements in views for better Livewire performance.
- Improve error handling and user feedback in the firewall view.
- Update server overview and statistics views to handle potential null values gracefully.
- Add new migration files to extend database schema with user-set icons and notes for Proxmox nodes.
This commit is contained in:
2026-02-23 17:23:01 -05:00
parent 9aff64be93
commit f394483daa
48 changed files with 442 additions and 268 deletions

View File

@@ -387,8 +387,8 @@ class System extends Component
}
return collect(explode(';', $clean))
->map(fn ($flag) => ltrim($flag, '+-'))
->filter()
->map(fn ($flag) => ltrim($flag, '+'))
->filter(fn ($flag) => $flag !== '' && !str_starts_with($flag, '-'))
->unique()
->values()
->toArray();
@@ -418,6 +418,12 @@ class System extends Component
return;
}
// Check VM status - must be stopped to remove EFI/TPM devices
if (!$this->status || $this->status->status !== 'stopped') {
$this->notify('VM must be stopped to remove system devices.', 'error');
return;
}
// Get the device definition before removing it
$deviceDefinition = null;
if (str_starts_with($deviceKey, 'efidisk') && isset($this->efiDisks[$deviceKey])) {
@@ -547,6 +553,12 @@ class System extends Component
return;
}
// Check VM status - must be stopped to add EFI disk
if (!$this->status || $this->status->status !== 'stopped') {
$this->notify('VM must be stopped to add an EFI disk.', 'error');
return;
}
$slot = 'efidisk0';
$volumeName = 'vm-' . $this->server->vm_id . '-efidisk0';
@@ -589,6 +601,12 @@ class System extends Component
return;
}
// Check VM status - must be stopped to add TPM device
if (!$this->status || $this->status->status !== 'stopped') {
$this->notify('VM must be stopped to add a TPM device.', 'error');
return;
}
$version = trim($this->newTpmVersion);
$slot = 'tpmstate0';