src/Form/RegistrationFormStepOneType.php line 16

  1. <?php
  2. namespace App\Form;
  3. use App\Entity\User;
  4. use App\Util\USA as USAUtil;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  7. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  10. use Symfony\Component\Form\Extension\Core\Type\TextType;
  11. use Symfony\Component\Form\FormBuilderInterface;
  12. use Symfony\Component\OptionsResolver\OptionsResolver;
  13. class RegistrationFormStepOneType extends AbstractType
  14. {
  15.     public const DEMO_TEXT 'disabled for the demo';
  16.     public function buildForm(FormBuilderInterface $builder, array $options): void
  17.     {
  18.         $builder
  19.             ->add('userName'TextType::class, [
  20.                 'label' => 'username',
  21.                 'required' => true,
  22.                 'help' => 'demo purpose only',
  23.             ])
  24.             ->add('plainPassword'ChoiceType::class, [
  25.                 'choices' => USAUtil::getUsStateDemocraticParties(),
  26.                 'label' => 'please select your second most liked state',
  27.                 'mapped' => false,
  28.                 'required' =>true,
  29.                 'help' => 'demo purpose only',
  30.                 'placeholder' => '-- Select State or Territory --',
  31.             ])
  32.             ->add('email'EmailType::class,[ 'disabled' => true'attr' => ['placeholder' => self::DEMO_TEXT]])
  33.             ->add('passwordPlaceholder'RepeatedType::class, [
  34.                 'disabled' => true,
  35.                 'type' => TextType::class,
  36.                 'required' => false,
  37.                 'mapped' => false,
  38.                 'invalid_message' => 'The password fields must match.',
  39.                 'first_options' => ['label' => 'Password''attr' => ['placeholder' => self::DEMO_TEXT]],
  40.                 'second_options' => ['label' => 'Repeat Password''attr' => ['placeholder' => self::DEMO_TEXT]],
  41.             ])
  42.             ->add('fullName'TextType::class, ['disabled' => true'attr' => ['placeholder' => self::DEMO_TEXT]] )
  43.             ->add('employer'TextType::class, ['disabled' => true'attr' => ['placeholder' => self::DEMO_TEXT]] )
  44.             ->add('occupation'TextType::class, ['disabled' => true'attr' => ['placeholder' => self::DEMO_TEXT]] )
  45.             ->add('confirmed'CheckboxType::class, [
  46.                 'label' => 'I certify that the above information is true and correct.',
  47.                 'required' => true,
  48.                 'mapped' => false,
  49.                 'label_attr' => ['class' => 'disclaimer-text']
  50.             ])
  51.            ;
  52.     }
  53.     public function configureOptions(OptionsResolver $resolver): void
  54.     {
  55.         $resolver->setDefaults([
  56.             'data_class' => User::class,
  57.         ]);
  58.     }
  59. }