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\ProxmoxCloudVps\App\UI\Disk\Forms; use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService; use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ResourceManager; use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Disk\Providers\DiskProvider; use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Disk\Validators\DiskSizeValidator; use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Validators\NumberValidator; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\BaseForm; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Hidden; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Switcher; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Text; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Range; class UpdateForm extends BaseForm implements ClientArea { use ProductService; public function initContent() { $this->resourceManager = new ResourceManager(); $this->initIds('updateDiskForm'); $this->setFormType('update'); $this->setProvider(new DiskProvider()); $this->initFields(); $this->loadDataToForm(); $diskSize = parent::getFormData()['size']; $rangeField = $this->getField('additionalDiskSize'); $rangeField->setMinValue($diskSize); $rangeField->setDefaultValue($diskSize); if ($this->configuration()->serverDiskSize->max > ($this->resourceManager->disk()->free() + $diskSize)) { $rangeField->setMaxValue($this->resourceManager->disk()->free() + $diskSize); } else { $rangeField->setMaxValue($this->configuration()->serverDiskSize->max); } $backupSwitcher = $this->getField('backup'); // if ( parent::getFormData()['id'] == 'scsi0') { $backupSwitcher->addClass('hidden'); // } } public function getAllowedActions() { return ['update']; } private function initFields() { //entity id $this->addField(new Hidden("id")); //size $field = new Range('additionalDiskSize', 0, 0); $field->addValidator(new DiskSizeValidator('additionalDiskSize',true)); $this->addField($field); //backup if ($this->configuration()->isPermissionAdditionalDiskBackup()) { $field = new Switcher('backup'); $this->addField($field); } } }