ParcBundle/Form/RetirageType.php line 23

Open in your IDE?
  1. <?php
  2. namespace ParcBundle\Form;
  3. use App\Entity\Retirage;
  4. use App\Entity\Images;
  5. use PhpParser\Parser\Multiple;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  8. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  9. use Symfony\Component\Form\Extension\Core\Type\TextType;
  10. use Symfony\Component\Form\Extension\Core\Type\TelType;
  11. use Symfony\Component\Form\Extension\Core\Type\DateType;
  12. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  13. use Symfony\Component\Form\Extension\Core\Type\CollectionType;
  14. use Symfony\Component\Form\Extension\Core\Type\FileType;
  15. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  16. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  17. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  18. use Symfony\Component\Form\FormBuilderInterface;
  19. use Symfony\Component\OptionsResolver\OptionsResolver;
  20. class RetirageType extends AbstractType
  21. {
  22.     public function buildForm(FormBuilderInterface $builder, array $options)
  23.     {
  24.         $builder
  25.             ->add('name'TextType::class, [
  26.                 'label' => 'Nom',
  27.                 'attr' => [
  28.                     'placeholder' => 'Nom',
  29.                     'required'   => true,
  30.                     'field-name' => 'Nom'
  31.                 ]
  32.             ])
  33.             ->add('firstName'TextType::class, [
  34.                 'label' => 'Prénom',
  35.                 'attr' => [
  36.                     'placeholder' => 'Prénom',
  37.                     'required'   => true,
  38.                     'field-name' => 'Prénom'
  39.                 ]
  40.             ])
  41.             ->add('mail'EmailType::class, [
  42.                 'label' => 'Email',
  43.                 'attr' => [
  44.                     'placeholder' => 'Email',
  45.                     'required'   => true,
  46.                     'field-name' => 'Email'
  47.                 ]
  48.             ])
  49.             ->add('phone'TelType::class, [
  50.                 'label' => 'Téléphone',
  51.                 'attr' => [
  52.                     'placeholder' => 'Téléphone',
  53.                     'required'   => true,
  54.                     'field-name' => 'Téléphone'
  55.                 ]
  56.             ])
  57.             ->add('adress'TextType::class, [
  58.                 'label' => 'Adresse',
  59.                 'attr' => [
  60.                     'placeholder' => 'Adresse',
  61.                     'required'    => true,
  62.                     'type'        => 'search',
  63.                     'field-name' => 'Adresse'
  64.                 ]
  65.             ])
  66.             ->add('city'TextType::class, [
  67.                 'label' => 'Ville',
  68.                 'attr' => [
  69.                     'placeholder' => 'Ville',
  70.                     'required'    => true,
  71.                     'autocomplete' => 'address-level2',
  72.                     'field-name' => 'Ville'
  73.                 ]
  74.             ])
  75.             ->add('postalCode'TextType::class, [
  76.                 'label' => 'Code Postal',
  77.                 'attr' => [
  78.                     'placeholder' => 'Code postal',
  79.                     'required'    => true,
  80.                     'autocomplete' => 'postal-code',
  81.                     'field-name' => 'Code-postal'
  82.                 ]
  83.             ])
  84.             ->add('parc'ChoiceType::class, [
  85.                 'label' => 'Quel parc avez-vous visité ?',
  86.                 'placeholder' => '-- Séléctionner un parc --',
  87.                 'required'   => true,
  88.                 'choices'  => [
  89.                     'Zoo African-Safari' => '1',
  90.                     'Animaparc' => '2',
  91.                 ],
  92.             ])
  93.             ->add('visitDate'DateType::class, [
  94.                 'label' => 'Quelle était la date de votre visite ?',
  95.                 'widget' => 'single_text',
  96.                 'attr' => [
  97.                     'required'   => true,
  98.                     'min' => date('2022-01-01'),
  99.                     'max' => date('Y-m-d'),
  100.                 ]
  101.             ])
  102.             ->add('creationDate'DateType::class, [
  103.                 'label' => 'Date de la demande',
  104.                 'widget' => 'single_text',
  105.                 'empty_data' => '',
  106.             ])
  107.             ->add('ticketNumber'IntegerType::class, [
  108.                 'label' => 'Quel était votre numéro de ticket ? (facultatif)',
  109.                 'required'   => false,
  110.                 'attr' => [
  111.                     'rows' => 1,
  112.                     'placeholder' => 'Exemple : numéro de ticket 43',
  113.                     'max' => '100'
  114.                 ],
  115.             ])
  116.             ->add('comment'TextType::class, [
  117.                 'label' => 'Pouvez-vous nous décrire des éléments présents sur votre photo ? (facultatif)',
  118.                 'required'   => false,
  119.                 'attr' => [
  120.                     'rows' => 1,
  121.                     'placeholder' => 'Exemple : 2 personnes sur la photo, casquette rouge, tee-shirt vert',
  122.                 ],
  123.             ])
  124.             ->add('images'FileType::class, [
  125.                 'label' => 'Ajouter votre photo',
  126.                 'multiple' => true,
  127.                 'mapped' => false,
  128.                 'required' => false,
  129.                 'attr'     => [
  130.                     'accept' => 'image/*',
  131.                     'class'  => 'retirage_images',
  132.                     'id'=> "retirage_images_0",
  133.                 ],
  134.             ])
  135.             ->add('numberPhoto'CollectionType::class, [
  136.                 'label' => 'Nombre de retirages photos',
  137.                 'entry_type'   => ChoiceType::class,
  138.                 'entry_options'  => [
  139.                     'label' => 'Nombre de retirages photos',
  140.                     'choices'  => [
  141.                         '0'    => '0',
  142.                         '1'    => '1',
  143.                         '2'    => '2',
  144.                         '3'    => '3',
  145.                         '4'    => '4',
  146.                         '5'    => '5',
  147.                     ],
  148.                     'choice_attr' => [
  149.                         'class' => 'form-control'
  150.                     ],
  151.                     'data' => '0'
  152.                 ],
  153.                 'mapped' => false,
  154.                 'required' => false,
  155.                 'allow_add' => true,
  156.                 'prototype' => true,
  157.             ])
  158.             ->add('numberMagnet'CollectionType::class, [
  159.                 'label' => 'Nombre de retirages photos',
  160.                 'entry_type'   => ChoiceType::class,
  161.                 'entry_options'  => [
  162.                     'label' => 'Nombre de magnets',
  163.                     'choices'  => [
  164.                         '0'    => '0',
  165.                         '1'    => '1',
  166.                         '2'    => '2',
  167.                         '3'    => '3',
  168.                         '4'    => '4',
  169.                         '5'    => '5',
  170.                     ],
  171.                     'choice_attr' => [
  172.                         'class' => 'form-control'
  173.                     ],
  174.                     'data' => '0'
  175.                 ],
  176.                 'mapped' => false,
  177.                 'required' => false,
  178.                 'allow_add' => true,
  179.                 'prototype' => true,
  180.             ])
  181.             ->add('numberKeyChain'CollectionType::class, [
  182.                 'label' => 'Nombre de portes clés',
  183.                 'entry_type'   => ChoiceType::class,
  184.                 'entry_options'  => [
  185.                     'label' => 'Nombre de portes clés',
  186.                     'choices'  => [
  187.                         '0'    => '0',
  188.                         '1'    => '1',
  189.                         '2'    => '2',
  190.                         '3'    => '3',
  191.                         '4'    => '4',
  192.                         '5'    => '5',
  193.                     ],
  194.                     'choice_attr' => [
  195.                         'class' => 'form-control'
  196.                     ],
  197.                     'data' => '0'
  198.                 ],
  199.                 'mapped' => false,
  200.                 'required' => false,
  201.                 'allow_add' => true,
  202.                 'prototype' => true,
  203.             ])
  204.             ->add('isDone'CheckboxType::class, [
  205.                 'label' => 'La demande a été traitée',
  206.                 'required'   => false,
  207.             ])
  208.             ->add('submit'SubmitType::class, [
  209.                 'label' => 'Envoyer la demande',
  210.                 'attr'     => [
  211.                     'class' => 'form-control w-100 btn btn-golderod'
  212.                 ]
  213.             ]);
  214.     }
  215.     public function configureOptions(OptionsResolver $resolver)
  216.     {
  217.         $resolver->setDefaults([
  218.             // Configure your form options here
  219.         ]);
  220.     }
  221. }