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\Disk\Forms; use ModulesGarden\ProxmoxAddon\App\Services\Vps\ProductService; use ModulesGarden\Servers\ProxmoxVps\App\Enum\ConfigurableOption; use ModulesGarden\Servers\ProxmoxVps\App\UI\Validators\NumberValidator; use ModulesGarden\Servers\ProxmoxVps\App\UI\Disk\Providers\DiskProvider; 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\Switcher; use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Forms\Fields\Text; use function ModulesGarden\Servers\ProxmoxVps\Core\Helper\sl; class CreateForm extends BaseForm implements ClientArea { use ProductService; public function initContent() { $this->initIds('createForm'); $this->setFormType('create'); $this->setProvider(new DiskProvider()); $this->initFields(); $this->loadDataToForm(); } public function getAllowedActions() { return ['create']; } private function initFields() { $max = $this->getWhmcsConfigOption(ConfigurableOption::ADDITIONAL_DISKS_SIZE , $this->configuration()->getAdditionalDiskSize()) ; //size $field = new Text('size'); $field->addValidator(new NumberValidator(1, $max, true)); $this->addField($field); //bus $field = new Select('bus'); $options=[]; foreach( $this->configuration()->getAdditionalDiskType() as $entery){ $options[$entery] = sl("lang")->tr($entery); } $field->setAvailableValues($options); $this->addField($field); //format $field = new Select('format'); $options=[]; foreach( $this->configuration()->getAdditionalDiskFormat() as $entery){ $options[$entery] = sl("lang")->tr($entery); } $field->setAvailableValues($options); $this->addField($field); //backup if ($this->configuration()->isPermissionAdditionalDiskBackup()) { $field = new Switcher('backup'); $this->addField($field); } } }