VmUpdateForm.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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\Disk\Pages\DiskDataTable;
  13. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VirtualNetwork\Pages\VirtualNetworkDataTable;
  14. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VirtualInterface\Pages\VirtualInterfaceDataTable;
  15. class VmUpdateForm extends BaseStandaloneFormExtSections implements ClientArea
  16. {
  17. use ProductService;
  18. public function initContent()
  19. {
  20. $this->unsetShowTitle();
  21. $this->title = null;
  22. $this->addClass("lu-col-md-12");
  23. $this->setFormType('update');
  24. $this->setProvider(new VmUpdateProvider());
  25. //standard
  26. if($this->configuration()->isQemu() && !$this->configuration()->isDetailsCombinedView()){
  27. $this->addSection((new Qemu\GeneralSection())->setMainContainer($this->mainContainer));
  28. }
  29. if($this->configuration()->isLxc() && !$this->configuration()->isDetailsCombinedView()){
  30. $this->addSection((new Lxc\GeneralSection())->setMainContainer($this->mainContainer));
  31. }
  32. //combined
  33. if($this->configuration()->isDetailsCombinedView()){
  34. //rightSection
  35. $rightSection = new HalfPageSection('rightSection');
  36. $rightSection->setMainContainer($this->mainContainer);
  37. //network
  38. $rightSection->addSection((new VirtualNetworkDataTable())->setMainContainer($this->mainContainer));
  39. //interfaces
  40. $rightSection->addSection((new VirtualInterfaceDataTable())->setMainContainer($this->mainContainer));
  41. //kvm
  42. if($this->configuration()->isQemu()){
  43. $this->addSection((new Qemu\GeneralCombinedSection())->setMainContainer($this->mainContainer));
  44. //disk
  45. $rightSection->addSection((new DiskDataTable())->setMainContainer($this->mainContainer));
  46. }
  47. //lxc
  48. if($this->configuration()->isLxc()){
  49. $this->addSection((new Lxc\GeneralCombinedSection())->setMainContainer($this->mainContainer));
  50. //disk
  51. $rightSection->addSection((new Lxc\AdditionalDiskSection())->setMainContainer($this->mainContainer));
  52. }
  53. $this->addSection($rightSection);
  54. }
  55. $this->loadDataToForm();
  56. }
  57. }