Browse Source

try to fix problem of slider for additional disk in createVM

andre 4 years ago
parent
commit
d1ed561a85
1 changed files with 12 additions and 11 deletions
  1. 12 11
      app/UI/VmCreate/Sections/AdditionalDiskSection.php

+ 12 - 11
app/UI/VmCreate/Sections/AdditionalDiskSection.php

@@ -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);
         }
     }