VmUpdateForm.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmUpdate\Forms;
  3. use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService;
  4. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmUpdate\Providers\VmUpdateProvider;
  5. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmUpdate\Sections\Qemu\AdditionalDiskSection;
  6. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmUpdate\Sections\Lxc;
  7. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmUpdate\Sections\Qemu;
  8. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmUpdate\Sections\VirtualNetworkSection;
  9. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea;
  10. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\BaseStandaloneFormExtSections;
  11. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Sections\HalfPageSection;
  12. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VirtualNetwork\Pages\VirtualNetworkDataTable;
  13. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Disk\Pages\DiskDataTable;
  14. class VmUpdateForm extends BaseStandaloneFormExtSections implements ClientArea
  15. {
  16. use ProductService;
  17. public function initContent()
  18. {
  19. $this->unsetShowTitle();
  20. $this->title = null;
  21. $this->addClass("lu-col-md-12");
  22. $this->setFormType('update');
  23. $this->setProvider(new VmUpdateProvider());
  24. //standard
  25. if($this->configuration()->isQemu() && !$this->configuration()->isDetailsCombinedView()){
  26. $this->addSection((new Qemu\GeneralSection())->setMainContainer($this->mainContainer));
  27. }
  28. if($this->configuration()->isLxc() && !$this->configuration()->isDetailsCombinedView()){
  29. $this->addSection((new Lxc\GeneralSection())->setMainContainer($this->mainContainer));
  30. }
  31. //combined
  32. if($this->configuration()->isDetailsCombinedView()){
  33. //rightSection
  34. $rightSection = new HalfPageSection('rightSection');
  35. $rightSection->setMainContainer($this->mainContainer);
  36. //network
  37. $rightSection->addSection(new VirtualNetworkDataTable());
  38. //kvm
  39. if($this->configuration()->isQemu()){
  40. $this->addSection((new Qemu\GeneralCombinedSection())->setMainContainer($this->mainContainer));
  41. //disk
  42. $rightSection->addSection((new DiskDataTable())->setMainContainer($this->mainContainer));
  43. }
  44. //lxc
  45. if($this->configuration()->isLxc()){
  46. $this->addSection((new Lxc\GeneralCombinedSection())->setMainContainer($this->mainContainer));
  47. //disk
  48. $rightSection->addSection((new Lxc\AdditionalDiskSection())->setMainContainer($this->mainContainer));
  49. }
  50. $this->addSection($rightSection);
  51. }
  52. $this->loadDataToForm();
  53. }
  54. }