Browse Source

additional slider

andre 4 years ago
parent
commit
6e8b4b3747
1 changed files with 13 additions and 2 deletions
  1. 13 2
      app/UI/VmUpdate/Sections/Qemu/AdditionalDiskSection.php

+ 13 - 2
app/UI/VmUpdate/Sections/Qemu/AdditionalDiskSection.php

@@ -5,11 +5,13 @@ namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmUpdate\Sections\Qemu;
 use MGProvision\Proxmox\v2\models\MountPoint;
 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;
@@ -30,8 +32,11 @@ class AdditionalDiskSection extends BaseSection implements ClientArea
     public function initFields()
     {
         //size
-        $field = new Text('additionalDiskSize');
-        $field->addValidator(new DiskSizeValidator('disk',false));
+        $this->resourceManager = new ResourceManager();
+        $field = new Range('additionalDiskSize', $this->configuration()->serverDiskSize->min, $this->resourceManager->disk()->free() - $this->configuration()->serverDiskSize->min);
+        $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
@@ -43,6 +48,9 @@ class AdditionalDiskSection extends BaseSection implements ClientArea
             }
             $field->setAvailableValues($options);
             $field->replaceClasses(['lu-col-md-6']);
+            if($this->configuration()->isQemu() && count($this->configuration()->getAdditionalDiskType()) < 2){
+                $field->addClass('hidden');
+            }
             $this->addField($field);
         }
         //format
@@ -54,6 +62,9 @@ class AdditionalDiskSection extends BaseSection implements ClientArea
             }
             $field->setAvailableValues($options);
             $field->replaceClasses(['lu-col-md-6']);
+            if($this->configuration()->isQemu() && count($this->configuration()->getAdditionalDiskFormat()) < 2){
+                $field->addClass('hidden');
+            }
             $this->addField($field);
         }
         if($this->configuration()->isLxc()){