http://modulesgarden.com * CONTACT -> contact@modulesgarden.com * * * This software is furnished under a license and may be used and copied * only in accordance with the terms of such license and with the * inclusion of the above copyright notice. This software or any other * copies thereof may not be provided or otherwise made available to any * other person. No title to and ownership of the software is hereby * transferred. * * * ******************************************************************** */ namespace ModulesGarden\Servers\ProxmoxVps\App\UI\ServiceInformation\Forms; use ModulesGarden\ProxmoxAddon\App\Services\ApiService; use ModulesGarden\ProxmoxAddon\App\Services\Vps\ProductService; use ModulesGarden\Servers\ProxmoxVps\App\UI\ServiceInformation\Providers\UpdateProvider; use ModulesGarden\Servers\ProxmoxVps\App\UI\Validators\HostnameValidator; use ModulesGarden\Servers\ProxmoxVps\App\UI\Validators\ShhPublicKeyValidator; use function ModulesGarden\Servers\ProxmoxVps\Core\Helper\isAdmin; use ModulesGarden\Servers\ProxmoxVps\Core\UI\Interfaces\ClientArea; use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Forms\BaseForm; use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Forms\Fields\Select; use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Forms\Fields\Text; use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Forms\Fields\Textarea; class UpdateForm extends BaseForm implements ClientArea { use ProductService; use ApiService; public function initContent() { $this->initIds('updateForm'); $this->setFormType('update'); $this->setProvider(new UpdateProvider()); $this->initFields(); $this->loadDataToForm(); } public function getAllowedActions() { return ['update']; } private function initFields() { //Hostname $field = new Text("hostname"); $field->addValidator(new HostnameValidator()); $this->addField($field); if ($this->configuration()->isLxc()) { return; } //ISO if(isAdmin() || $this->configuration()->isPermissionIsoImage() && $this->vm()->getCdRom()->count()){ $field = new Select("iso"); $field->notEmpty(); $this->addField($field); } //boot device 1 $field = new Select("bootOrder0"); $field->notEmpty(); $this->addField($field); //boot device 2 $field = new Select("bootOrder1"); $field->notEmpty(); $this->addField($field); //boot device 3 $field = new Select("bootOrder2"); $field->notEmpty(); $this->addField($field); //sshkeys for kvm only if($this->configuration()->isPermissionSshkeys()){ $field = new Textarea("sshkeys"); $field->addValidator(new ShhPublicKeyValidator(false)); $this->addField($field); } } }