EditGeneralSection.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace ModulesGarden\Servers\ZimbraEmail\App\UI\Client\EmailAccount\Sections;
  3. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Product\ProductManager;
  4. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Repository\ClassOfServices;
  5. use ModulesGarden\Servers\ZimbraEmail\App\Traits\FormExtendedTrait;
  6. use ModulesGarden\Servers\ZimbraEmail\App\UI\Admin\Custom\Sections\FreeFieldsSection;
  7. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Fields\Hidden;
  8. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Fields\Select;
  9. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Fields\Text;
  10. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Sections\InputGroup;
  11. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Fields\InputGroupElements;
  12. /**
  13. *
  14. * Created by PhpStorm.
  15. * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.com )
  16. * Date: 12.11.19
  17. * Time: 13:52
  18. * Class EditGeneralSection
  19. */
  20. class EditGeneralSection extends FreeFieldsSection
  21. {
  22. protected $id = 'editGeneralSection';
  23. protected $name = 'editGeneralSection';
  24. use FormExtendedTrait;
  25. public function initContent()
  26. {
  27. /**
  28. * hosting id
  29. */
  30. $hid = $this->getRequestValue('id');
  31. /**
  32. * product manager allow to check product settings
  33. */
  34. $productManager = new ProductManager();
  35. $productManager->loadByHostingId($hid);
  36. /**
  37. * add fields
  38. */
  39. $field = new Hidden('id');
  40. $this->addField($field);
  41. $this->generateDoubleSection([new Text('firstname'), new Text('lastname')]);
  42. $email =new InputGroup('usernameGroup');
  43. $email->addInputComponent((new InputGroupElements\Text('username'))->addHtmlAttribute('readonly','true'));
  44. $email->addInputAddon('emailSign', false, '@');
  45. $email->addInputComponent((new InputGroupElements\Text('domain'))->addHtmlAttribute('readonly','true'));
  46. $this->addSection($email);
  47. $this->generateDoubleSection([new Text('display_name'), new Select('status')]);
  48. if($productManager->get('cos_name') === ClassOfServices::CLASS_OF_SERVICE_QUOTA)
  49. {
  50. $field = new Hidden('currentCosId');
  51. $this->addField($field);
  52. $field = new Select('cosId');
  53. $this->addField($field);
  54. }
  55. }
  56. }