AdminAreaSection.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. namespace ModulesGarden\ProxmoxAddon\App\UI\Settings\Sections;
  3. use ModulesGarden\ProxmoxAddon\App\UI\Validators\IpAddressAndHostnameValidator;
  4. use ModulesGarden\ProxmoxAddon\Core\UI\Widget\Forms\Fields\Switcher;
  5. use ModulesGarden\ProxmoxAddon\Core\UI\Widget\Forms\Fields\Text;
  6. use ModulesGarden\ProxmoxAddon\Core\UI\Widget\Forms\Sections\BoxSection;
  7. use ModulesGarden\ProxmoxAddon\Core\UI\Widget\Forms\Sections\HalfPageSection;
  8. class AdminAreaSection extends BoxSection
  9. {
  10. protected $id = 'adminAreaSection';
  11. protected $name = 'adminAreaSection';
  12. protected $title = 'adminAreaSection';
  13. protected $leftSection;
  14. protected $rightSection;
  15. public function initContent(){
  16. //Add Sections
  17. $this->leftSection = new HalfPageSection('left');
  18. $this->rightSection = new HalfPageSection('right');
  19. $this->addSection($this->leftSection);
  20. $this->addSection($this->rightSection);
  21. $this->initFields();
  22. }
  23. protected function initFields(){
  24. //Start
  25. $field = new Switcher('permissionStart');
  26. $field->setDescription('tip');
  27. $field->setDefaultValue("on");
  28. $this->addField($field);
  29. //Reboot
  30. $field = new Switcher('permissionReboot');
  31. $field->setDescription('tip');
  32. $field->setDefaultValue("on");
  33. $this->addField($field);
  34. //Stop
  35. $field = new Switcher('permissionStop');
  36. $field->setDescription('tip');
  37. $field->setDefaultValue("on");
  38. $this->addField($field);
  39. //Shutdown
  40. $field = new Switcher('permissionShutdown');
  41. $field->setDescription('tip');
  42. $field->setDefaultValue("on");
  43. $this->addField($field);
  44. //noVNC Console
  45. $field = new Switcher('permissionNovnc');
  46. $field->setDescription('tip');
  47. $field->setDefaultValue("on");
  48. $this->addField($field);
  49. //SPICE Console
  50. $field = new Switcher('permissionSpice');
  51. $field->setDescription('tip');
  52. $field->setDefaultValue("on");
  53. $this->addField($field);
  54. //xterm.js Console
  55. $field = new Switcher('permissionXtermjs');
  56. $field->setDescription('tip');
  57. $this->addField($field);
  58. //Migrate
  59. $field = new Switcher('permissionMigrate');
  60. $field->setDescription('tip');
  61. $field->setDefaultValue("on");
  62. $this->addField($field);
  63. //Information
  64. $field = new Switcher('permissionInformation');
  65. $field->setDescription('tip');
  66. $field->setDefaultValue("on");
  67. $this->addField($field);
  68. //IpAddresses
  69. $field = new Switcher('permissionIpAddresses');
  70. $field->setDescription('tip');
  71. $field->setDefaultValue("on");
  72. $this->addField($field);
  73. //IPSet
  74. $field = new Switcher('permissionIpSet');
  75. $field->setDescription('tip');
  76. $field->setDefaultValue("on");
  77. $this->addField($field);
  78. //Reinstallation
  79. $field = new Switcher('permissionReinstall');
  80. $field->setDescription('tip');
  81. $field->setDefaultValue("on");
  82. $this->addField($field);
  83. //MRTG Graphics
  84. $field = new Switcher('permissionGraph');
  85. $field->setDescription('tip');
  86. $field->setDefaultValue("on");
  87. $this->addField($field);
  88. //User Details
  89. $field = new Switcher('permissionUserDetails');
  90. $field->setDescription('tip');
  91. $field->setDefaultValue("on");
  92. $this->addField($field);
  93. //AccountResources
  94. $field = new Switcher('permissionAccountResources');
  95. $field->setDescription('tip');
  96. $field->setDefaultValue("on");
  97. $this->addField($field);
  98. //Vms
  99. $field = new Switcher('permissionVms');
  100. $field->setDescription('tip');
  101. $field->setDefaultValue("on");
  102. $this->addField($field);
  103. }
  104. public function addField($field){
  105. $total = count($this->leftSection->getFields()) + count($this->rightSection->getFields());
  106. if($total % 2 == 0){
  107. $this->leftSection->addField($field);
  108. }else{
  109. $this->rightSection->addField($field);
  110. }
  111. return $this;
  112. }
  113. }