ClientAreaSection.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxVps\App\UI\Admin\Product\Sections\Lxc;
  3. use ModulesGarden\Servers\ProxmoxVps\Core\UI\Interfaces\AdminArea;
  4. use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Forms\Fields\Select;
  5. use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Forms\Fields\Switcher;
  6. use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Forms\Sections\BoxSection;
  7. use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Forms\Sections\HalfPageSection;
  8. class ClientAreaSection extends BoxSection implements AdminArea
  9. {
  10. protected $id = 'clientAreaSection';
  11. protected $name = 'clientAreaSection';
  12. protected $title = 'clientAreaSection';
  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. //Start
  32. $field = new Switcher('customconfigoption[permissionStart]');
  33. $field->setDefaultValue("on");
  34. $field->setDescription('tip');
  35. $this->leftSection->addField($field);
  36. //Reboot
  37. $field = new Switcher('customconfigoption[permissionReboot]');
  38. $field->setDescription('tip');
  39. $field->setDefaultValue("on");
  40. $this->rightSection->addField($field);
  41. //Stop
  42. $field = new Switcher('customconfigoption[permissionStop]');
  43. $field->setDefaultValue("on");
  44. $field->setDescription('tip');
  45. $this->leftSection->addField($field);
  46. //Shutdown
  47. $field = new Switcher('customconfigoption[permissionShutdown]');
  48. $field->setDefaultValue("on");
  49. $field->setDescription('tip');
  50. $this->rightSection->addField($field);
  51. //noVNC Console
  52. $field = new Switcher('customconfigoption[permissionNovnc]');
  53. $field->setDefaultValue("on");
  54. $field->setDescription('tip');
  55. $this->leftSection->addField($field);
  56. //SPICE Console
  57. $field = new Switcher('customconfigoption[permissionSpice]');
  58. $field->setDefaultValue("on");
  59. $field->setDescription('tip');
  60. $this->rightSection->addField($field);
  61. //xterm.js Console
  62. $field = new Switcher('customconfigoption[permissionXtermjs]');
  63. $field->setDefaultValue("on");
  64. $field->setDescription('tip');
  65. $this->leftSection->addField($field);
  66. //Reinstallation
  67. $field = new Switcher('customconfigoption[permissionReinstall]');
  68. $field->setDefaultValue("on");
  69. $field->setDescription('tip');
  70. $this->rightSection->addField($field);
  71. //OS Templates
  72. $field = new Select('customconfigoption[permissionOsTemplates][]');
  73. $field->setDescription('tip');
  74. $field->enableMultiple();
  75. $this->rightSection->addField($field);
  76. //MRTG Graphics
  77. $field = new Switcher('customconfigoption[permissionGraph]');
  78. $field->setDefaultValue("on");
  79. $field->setDescription('tip');
  80. $this->leftSection->addField($field);
  81. //Backup
  82. $field = new Switcher('customconfigoption[permissionBackup]');
  83. $field->setDefaultValue("on");
  84. $field->setDescription('tip');
  85. $this->rightSection->addField($field);
  86. //Scheduled Backup Jobs
  87. $field = new Switcher('customconfigoption[permissionBackupJob]');
  88. $field->setDefaultValue("on");
  89. $field->setDescription('tip');
  90. $this->leftSection->addField($field);
  91. //Task History
  92. $field = new Switcher('customconfigoption[permissionTaskHistory]');
  93. $field->setDefaultValue("on");
  94. $field->setDescription('tip');
  95. $this->rightSection->addField($field);
  96. //Network
  97. $field = new Switcher('customconfigoption[permissionNetwork]');
  98. $field->setDefaultValue("on");
  99. $field->setDescription('tip');
  100. $this->leftSection->addField($field);
  101. //Snapshots
  102. $field = new Switcher('customconfigoption[permissionSnapshot]');
  103. $field->setDefaultValue("on");
  104. $field->setDescription('tip');
  105. $this->rightSection->addField($field);
  106. //Firewall
  107. $field = new Switcher('customconfigoption[permissionFirewall]');
  108. $field->setDefaultValue("on");
  109. $field->setDescription('tip');
  110. $this->leftSection->addField($field);
  111. //Firewall Options
  112. $field = new Switcher('customconfigoption[permissionFirewallOption]');
  113. $field->setDefaultValue("on");
  114. $field->setDescription('tip');
  115. $this->rightSection->addField($field);
  116. //Disks Management
  117. $field = new Switcher('customconfigoption[permissionDisk]');
  118. $field->setDefaultValue("on");
  119. $field->setDescription('tip');
  120. $this->leftSection->addField($field);
  121. //Snapshot Jobs
  122. $field = new Switcher('customconfigoption[permissionSnapshotJob]');
  123. $field->setDescription('tip');
  124. $field->setDefaultValue("on");
  125. $this->leftSection->addField($field);
  126. //How Often
  127. $field = new Select('customconfigoption[permissionSnapshotJobPeriod][]');
  128. $field->setDescription('tip');
  129. $field->enableMultiple();
  130. $this->rightSection->addField($field);
  131. //permissionfirewalOptions
  132. $field = new Select("customconfigoption[permissionFirewalOptions][]");
  133. $field->enableMultiple();
  134. $field->setDescription('description');
  135. $this->addField($field);
  136. //permissionInformation
  137. $field = new Select("customconfigoption[permissionInformation][]");
  138. $field->enableMultiple();
  139. $field->setDescription('description');
  140. $this->addField($field);
  141. //permissionChangeHostname
  142. $field = new Switcher("customconfigoption[permissionChangeHostname]");
  143. $field->setDescription('description');
  144. $field->setDefaultValue("on");
  145. $this->addField($field);
  146. //permissionBackupCompress
  147. $field = new Select("customconfigoption[permissionBackupCompress][]");
  148. $field->enableMultiple();
  149. $field->setDescription('description');
  150. $this->leftSection->addField($field);
  151. }
  152. public function addField($field){
  153. $total = count($this->leftSection->getFields()) + count($this->rightSection->getFields());
  154. if($total % 2 == 0){
  155. $this->leftSection->addField($field);
  156. }else{
  157. $this->rightSection->addField($field);
  158. }
  159. return $this;
  160. }
  161. }