src/Model/Form/RegisterParty/UserForm.php line 82

Open in your IDE?
  1. <?php
  2. namespace App\Model\Form\RegisterParty;
  3. use App\Model\Builder\RegisterParty\UserBuilder;
  4. use App\Model\Form\AbstractUserForm;
  5. use App\Repository\CountryRepository;
  6. use App\Repository\OrganizationRepository;
  7. use App\Repository\StateRepository;
  8. use App\Entity\Country;
  9. use App\Entity\Organization;
  10. use App\Entity\State;
  11. use Gregwar\CaptchaBundle\Type\CaptchaType;
  12. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  13. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  14. use Symfony\Component\Form\Extension\Core\Type\TextType;
  15. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  16. use Symfony\Component\OptionsResolver\OptionsResolver;
  17. use Symfony\Component\Form\FormBuilderInterface;
  18. /**
  19.  * Class UserForm
  20.  */
  21. class UserForm extends AbstractUserForm
  22. {
  23.     /**
  24.      * {@inheritdoc}
  25.      */
  26.     public function buildForm(FormBuilderInterface $builder, array $options)
  27.     {
  28.         parent::buildForm($builder$options);
  29.         $isMunireg $options['is_munireg'];
  30.         $isNonRegistered $options['is_non_registered'];
  31.         $builder->add('department'TextType::class);
  32.         $builder->add('addressFirst'TextType::class, ['label' => 'Address 1']);
  33.         $builder->add('addressSecond'TextType::class, [
  34.             'label' => 'Address 2',
  35.             'required' => false
  36.         ]);
  37.         $builder->add('city'TextType::class);
  38.         if ($isMunireg || $isNonRegistered) {
  39.             $builder->add(
  40.                 'organization',
  41.                 EntityType::class,
  42.                 [
  43.                     'class' => Organization::class,
  44.                     'query_builder' => function (OrganizationRepository $organizationRepository) {
  45.                         return $organizationRepository->createQueryBuilder('u')
  46.                             ->orderBy('u.name''ASC');
  47.                     },
  48.                     'choice_label' => 'name',
  49.                     'placeholder' => '-- Choose an organization --',
  50.                 ]
  51.             );
  52.         }
  53.         if ($isNonRegistered) {
  54.             $builder->add('requestedOrganization'TextType::class, [
  55.                 'label' => 'Organization Name',
  56.                 'required' => false
  57.             ]);
  58.             $builder->add('isHomeOwner'CheckboxType::class, [
  59.                 'required' => false,
  60.                 'data' => true,
  61.                 'label' => 'Individual User',
  62.             ]);
  63.             $builder->add('registeringOrganization'CheckboxType::class, [
  64.                 'required' => false,
  65.                 'label' => 'Registering Organization',
  66.             ]);
  67.         }
  68.         $builder->add('zipCode'TextType::class);
  69.         $builder->add('state'EntityType::class, [
  70.             'class' => State::class,
  71.             'query_builder' => function (StateRepository $stateRepository) {
  72.                 return $stateRepository->createQueryBuilder('s')
  73.                     ->orderBy('s.name''ASC');
  74.             },
  75.             'choice_label' => function (State $state) {
  76.                 return $state->getName();
  77.             },
  78.             'placeholder' => '-- Choose an option --',
  79.             'required' => true
  80.         ]);
  81.         $builder->add('stateName'TextType::class, ['label' => 'State']);
  82.         $isRegisterCaptcha $options['is_captcha_for_register'];
  83.         if ($isRegisterCaptcha) {
  84.             $builder->add('captcha'CaptchaType::class, [
  85.                 'length' => 6,
  86.                 'background_color' => [255,255,255],
  87.             ]);
  88.         }
  89.         $builder->add(
  90.             'country',
  91.             EntityType::class,
  92.             [
  93.                 'class' => Country::class,
  94.                 'query_builder' => function (CountryRepository $countryRepository) {
  95.                     return $countryRepository->createQueryBuilder('c')
  96.                         ->orderBy('c.name''ASC');
  97.                 },
  98.                 'choice_label' => 'name',
  99.                 'placeholder' => '-- Choose an option --'
  100.             ]
  101.         );
  102.         $isNew $options['is_new'];
  103.         if (!$isNew) {
  104.             $builder->add('enabled'CheckboxType::class);
  105.         }
  106.         $isGrantedAdmin $options['is_granted_admin'];
  107.         if ($isGrantedAdmin) {
  108.             $builder->add('isAdmin'CheckboxType::class);
  109.         }
  110.         if ($isMunireg) {
  111.             $label 'Register As Individual';
  112.             if (!$isNew) {
  113.                 $label 'Individual User';
  114.             }
  115.             $builder->add('registerAsIndividual'CheckboxType::class, [
  116.                 'label' => $label
  117.             ]);
  118.         }
  119.         if ($isMunireg) {
  120. //            $builder->add(
  121. //                'organization',
  122. //                EntityType::class,
  123. //                [
  124. //                    'class' => Organization::class,
  125. //                    'query_builder' => function (OrganizationRepository $organizationRepository) {
  126. //                        return $organizationRepository->createQueryBuilder('u')
  127. //                            ->orderBy('u.name', 'ASC');
  128. //                    },
  129. //                    'choice_label' => 'name',
  130. //                    'placeholder' => '-- Choose an option --',
  131. //                ]
  132. //            );
  133.             $builder->add('notes'TextareaType::class, [
  134.                 'required' => false
  135.             ]);
  136.         }
  137.     }
  138.     /**
  139.      * {@inheritdoc}
  140.      */
  141.     public function configureOptions(OptionsResolver $resolver)
  142.     {
  143.         $resolver->setDefaults(['data_class' => UserBuilder::class, 'is_granted_non_admin' => false]);
  144.         $resolver->setRequired('is_new');
  145.         $resolver->setRequired('is_munireg');
  146.         $resolver->setRequired('is_granted_admin');
  147.         $resolver->setRequired('is_non_registered');
  148.         $resolver->setRequired('is_captcha_for_register');
  149.         $resolver->setRequired('only_super_admins');
  150.         $resolver->setRequired('is_granted_non_admin');
  151.     }
  152.     /**
  153.      * {@inheritdoc}
  154.      */
  155.     public function getName()
  156.     {
  157.         return 'user_register_party';
  158.     }
  159. }