AdditonalDisk.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Admin\Product\Sections\Qemu;
  3. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\AdminArea;
  4. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Select;
  5. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Switcher;
  6. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Sections\BoxSection;
  7. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Sections\HalfPageSection;
  8. class AdditonalDisk extends BoxSection implements AdminArea
  9. {
  10. protected $id = 'additonalDisk';
  11. protected $name = 'additonalDisk';
  12. protected $title = 'additonalDisk';
  13. /**
  14. * @var HalfPageSection
  15. */
  16. private $leftSection;
  17. /**
  18. * @var HalfPageSection
  19. */
  20. private $rightSection;
  21. public function initContent()
  22. {
  23. $this->leftSection = new HalfPageSection('leftSection');
  24. $this->rightSection = new HalfPageSection('rightSection');
  25. $this->addSection($this->leftSection)
  26. ->addSection($this->rightSection);
  27. $this->initFields();
  28. }
  29. private function initFields()
  30. {
  31. //Disks Storage
  32. $field = new Select('customconfigoption[additionalDiskStorage]');
  33. $field->setDefaultValue('local-lvm');
  34. $field->setDescription('tip');
  35. $this->leftSection->addField($field);
  36. //Disks Type
  37. $field = new Select('customconfigoption[additionalDiskType][]');
  38. $field->setDescription('tip');
  39. $field->enableMultiple();
  40. $field->setDefaultValue(["ide"]);
  41. $this->rightSection->addField($field);
  42. //Disk Format
  43. $field = new Select('customconfigoption[additionalDiskFormat][]');
  44. $field->enableMultiple();
  45. $field->setDefaultValue(["raw"]);
  46. $field->setDescription('tip');
  47. $this->leftSection->addField($field);
  48. //Disk Skip Replication
  49. $field = new Switcher('customconfigoption[additionalDiskReplicate]');
  50. $field->setDescription('tip');
  51. $this->rightSection->addField($field);
  52. //Disk Cache
  53. $field = new Select('customconfigoption[additionalDiskCache]');
  54. $field->setDescription('tip');
  55. $this->leftSection->addField($field);
  56. //Disk Discard
  57. $field = new Switcher('customconfigoption[additionalDiskDiscard]');
  58. $field->setDescription('tip');
  59. $this->rightSection->addField($field);
  60. //Disk IO Thread
  61. $field = new Switcher('customconfigoption[additionalDiskIoThread]');
  62. $field->setDescription('tip');
  63. $this->leftSection->addField($field);
  64. //Allow Backups On Additional Disks
  65. $field = new Switcher('customconfigoption[permissionAdditionalDiskBackup]');
  66. $field->setDescription('tip');
  67. $this->rightSection->addField($field);
  68. //Limits
  69. $field = new Switcher('customconfigoption[additionalDiskSpeed]');
  70. $field->setDescription('tip');
  71. $this->leftSection->addField($field);
  72. //ssd
  73. $field = new Switcher('customconfigoption[additionalDiskSsd]');
  74. $field->setDescription('tip');
  75. $this->rightSection->addField($field);
  76. }
  77. }