GeneralSection.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace ModulesGarden\Servers\ZimbraEmail\App\UI\Client\Ressource\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\App\Validators\PasswordsValidator;
  8. use ModulesGarden\Servers\ZimbraEmail\App\Validators\RepeatPasswordValidator;
  9. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Fields\Hidden;
  10. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Fields\Password;
  11. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Fields\Select;
  12. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Fields\Text;
  13. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Fields\Number;
  14. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Sections\InputGroup;
  15. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Fields\InputGroupElements;
  16. /**
  17. *
  18. * Created by PhpStorm.
  19. * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.com )
  20. * Date: 12.11.19
  21. * Time: 13:39
  22. * Class GeneralSection
  23. */
  24. class GeneralSection extends FreeFieldsSection
  25. {
  26. protected $id = 'generalSection';
  27. protected $name = 'generalSection';
  28. use FormExtendedTrait;
  29. public function initContent()
  30. {
  31. /**
  32. * hosting id
  33. */
  34. $hid = $this->getRequestValue('id');
  35. /**
  36. * product manager allow to check product settings
  37. */
  38. $productManager = new ProductManager();
  39. $productManager->loadByHostingId($hid);
  40. $email = new InputGroup('usernameGroup');
  41. $email->addTextField('username', false, true);
  42. $email->addInputAddon('emailSign', false, '@');
  43. $email->addInputComponent((new InputGroupElements\Text('domain'))->addHtmlAttribute('readonly','true'));
  44. $this->addSection($email);
  45. $this->generateDoubleSection([new Text('display_name'), new Select('status')]);
  46. $passwd = new Password('password');
  47. $passwd->setDescription('description');
  48. $passwd->addValidator(new PasswordsValidator());
  49. $passwd->notEmpty();
  50. $repPasswd = (new Password('repeat_password'))->addValidator(new RepeatPasswordValidator());
  51. $repPasswd->notEmpty();
  52. $this->generateDoubleSection([$passwd, $repPasswd]);
  53. $type = new Select('type');
  54. $capacity = new Text('capacity');
  55. $this->generateDoubleSection([$type, $capacity]);
  56. $field = new Text('description');
  57. $this->addField($field);
  58. $field = new Text('notes');
  59. $this->addField($field);
  60. }
  61. }