|
|
@@ -4,11 +4,13 @@ namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmCreate\Sections;
|
|
|
|
|
|
use ModulesGarden\ProxmoxAddon\App\Models\VirtualNetwork;
|
|
|
use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService;
|
|
|
+use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ResourceManager;
|
|
|
use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmCreate\Validators\DiskSizeValidator;
|
|
|
use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea;
|
|
|
use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Select;
|
|
|
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;
|
|
|
use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Sections\BaseSection;
|
|
|
use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Sections\BoxSection;
|
|
|
use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Sections\HalfPageSection;
|
|
|
@@ -28,12 +30,15 @@ class AdditionalDiskSection extends BaseSection implements ClientArea
|
|
|
public function initFields()
|
|
|
{
|
|
|
//size
|
|
|
- $field = new Text('additionalDiskSize');
|
|
|
- $field->addValidator(new DiskSizeValidator('disk',false));
|
|
|
- $field->replaceClasses(['lu-col-md-6']);
|
|
|
+ $this->resourceManager = new ResourceManager();
|
|
|
+ $field = new Range('additionalDiskSize', $this->configuration()->serverDiskSize->min, $this->resourceManager->disk()->free());
|
|
|
+ $field->addValidator(new DiskSizeValidator('additionalDiskSize',true));
|
|
|
+ $field->setDefaultValue($this->configuration()->serverDiskSize->min);
|
|
|
+ $field->setDescription('description');
|
|
|
+// $field->replaceClasses(['lu-col-md-6']);
|
|
|
$this->addField($field);
|
|
|
//bus
|
|
|
- if($this->configuration()->isQemu()){
|
|
|
+ if($this->configuration()->isQemu() && count($this->configuration()->getAdditionalDiskType()) > 1){
|
|
|
$field = new Select('additionalDiskBus');
|
|
|
$options=[];
|
|
|
foreach( $this->configuration()->getAdditionalDiskType() as $entery){
|
|
|
@@ -44,7 +49,7 @@ class AdditionalDiskSection extends BaseSection implements ClientArea
|
|
|
$this->addField($field);
|
|
|
}
|
|
|
//format
|
|
|
- if($this->configuration()->isQemu()){
|
|
|
+ if($this->configuration()->isQemu() && count($this->configuration()->getAdditionalDiskFormat()) > 1){
|
|
|
$field = new Select('additionalDiskFormat');
|
|
|
$options=[];
|
|
|
foreach( $this->configuration()->getAdditionalDiskFormat() as $entery){
|
|
|
@@ -64,12 +69,8 @@ class AdditionalDiskSection extends BaseSection implements ClientArea
|
|
|
//backup
|
|
|
if ($this->configuration()->isPermissionAdditionalDiskBackup())
|
|
|
{
|
|
|
- $field = new Select('additionalDiskBackup');
|
|
|
- $field->setAvailableValues([
|
|
|
- 'on' => 'Enable',
|
|
|
- 'off'=>'Disable',
|
|
|
- ]);
|
|
|
- $field->replaceClasses(['lu-col-md-6']);
|
|
|
+ $field = new Switcher('additionalDiskBackup');
|
|
|
+// $field->replaceClasses(['lu-col-md-6']);
|
|
|
$this->addField($field);
|
|
|
}
|
|
|
}
|