src/Form/AdvertType.php line 25

Open in your IDE?
  1. <?php
  2. /**
  3.  * User: remmel
  4.  * Date: 3/19/16
  5.  * Time: 2:23 PM
  6.  */
  7. namespace App\Form;
  8. use App\Entity\Advert;
  9. use App\Entity\Stop;
  10. use Symfony\Component\Form\AbstractType;
  11. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  12. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  13. use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
  14. use Symfony\Component\Form\Extension\Core\Type\MoneyType;
  15. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  16. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  17. use Symfony\Component\Form\Extension\Core\Type\TextType;
  18. use Symfony\Component\Form\FormBuilderInterface;
  19. use Symfony\Component\OptionsResolver\OptionsResolver;
  20. use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
  21. class AdvertType extends AbstractType
  22. {
  23.     public function buildForm(FormBuilderInterface $builder, array $options): void {
  24.         $dis $options['disabled'];
  25.         $lang 'fr';
  26.         $builder
  27.             ->add('depStop'Select2EntityType::class, [
  28.                 'label' => 'Départ de*',
  29.                 'remote_route' => 'autocompletion_stops',
  30.                 'remote_params' => ['lang' => $lang],
  31.                 'class' => Stop::class,
  32.                 'text_property' => 'name',
  33.                 'delay' => 250,
  34.                 'cache' => true,
  35.                 'language' => $lang,
  36.                 'placeholder' => 'Selectionnez une ville',
  37.                 'disabled' => $dis
  38.             ])
  39.             ->add('depDatetime'DateTimeType::class, ['label' => 'Départ le*''disabled' => $dis])
  40.             ->add('arrStop'Select2EntityType::class, [
  41.                 'label' => 'Arrivée à*',
  42.                 'remote_route' => 'autocompletion_stops',
  43.                 'remote_params' => ['lang' => $lang],
  44.                 'class' => Stop::class,
  45.                 'text_property' => 'name',
  46.                 'delay' => 250,
  47.                 'cache' => true,
  48.                 'language' => $lang,
  49.                 'placeholder' => 'Selectionnez une ville',
  50.                 'disabled' => $dis
  51.             ])
  52.             ->add('arrDatetime'DateTimeType::class, ['label' => 'Arrivée le*''disabled' => $dis])
  53.             ->add('seat'ChoiceType::class, ['label' => 'Nombre de places''choices' => ['1' => '1''2' => '2'], 'disabled' => $dis])
  54.             ->add('buy'MoneyType::class, ['label' => 'Prix d\'achat*''disabled' => $dis])
  55.             ->add('resale'MoneyType::class, ['label' => 'Prix de revente*''disabled' => $dis])
  56.             ->add('contact'TextType::class, ['label' => 'Téléphone / email*''disabled' => $dis'required' => true])
  57.             ->add('comment'TextareaType::class, [
  58.                 'label' => 'Commentaires',
  59.                 'required' => false,
  60.                 'attr' => ['placeholder' => 'Lieu de remise, envoi par email, billet avec retour, frais de changment de nom...'],
  61.                 'disabled' => $dis
  62.             ]);
  63.         if (!$dis) {
  64.             $builder->add('accepted'CheckboxType::class, ['label' => 'J\'accepte les conditions d\'utilisation**''disabled' => $dis])
  65.                 ->add('save'SubmitType::class, ['label' => 'Publier''disabled' => $dis]);
  66.         }
  67.     }
  68.     public function configureOptions(OptionsResolver $resolver): void {
  69.         $resolver->setDefaults([
  70.             'data_class' => Advert::class,
  71.             'disabled' => false
  72.         ]);
  73.     }
  74. }