<?php
namespace App\Form;
use App\Entity\model\Rent;
use App\Entity\Stop;
use EWZ\Bundle\RecaptchaBundle\Form\Type\EWZRecaptchaType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
class RentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void {
$dis = $options['disabled'];
$lang = 'fr';
$builder
->add('depStop', Select2EntityType::class, [
'label' => 'Départ de*',
'remote_route' => 'autocompletion_stops',
'remote_params' => ['lang' => $lang],
'class' => Stop::class,
'text_property' => 'name',
'delay' => 250,
'cache' => true,
'language' => $lang,
'placeholder' => 'Selectionnez une ville',
'disabled' => $dis
])
->add('depDatetime', DateTimeType::class, ['label' => 'Départ le *', 'disabled' => $dis])
->add('arrStop', Select2EntityType::class, [
'label' => 'Arrivée à*',
'remote_route' => 'autocompletion_stops',
'remote_params' => ['lang' => $lang],
'class' => Stop::class,
'text_property' => 'name',
'delay' => 250,
'cache' => true,
'language' => $lang,
'placeholder' => 'Selectionnez une ville',
'disabled' => $dis
])
->add('back', CheckboxType::class, ['label' => 'Pas de retour ', 'required' => false])
->add('toDatetime', DateTimeType::class, ['label' => 'Retour le ', 'disabled' => $dis])
->add('seat', IntegerType::class, ['label' => 'Nombre de personnes*', 'disabled' => $dis])
->add('name', TextType::class, ['label' => 'Votre nom*', 'disabled' => $dis, 'required' => true])
->add('phone', TextType::class, ['label' => 'Votre numéro de téléphone*', 'disabled' => $dis, 'required' => true])
->add('email', EmailType::class, ['label' => 'Votre adresse email*', 'disabled' => $dis, 'required' => true])
->add('comment', TextareaType::class, [
'label' => 'Commentaires',
'required' => false,
'attr' => ['placeholder' => 'Des informations complémentaires : étapes (escales), demandes particulières'],
'disabled' => $dis
])
->add('accepted', CheckboxType::class, ['label' => 'J\'accepte les conditions d\'utilisation**'])
->add('recaptcha', EWZRecaptchaType::class);
if (!$dis) {
$builder->add('sendmyquotation', SubmitType::class, ['label' => 'Envoyer ma demande devis', 'disabled' => $dis]);
}
}
public function configureOptions(OptionsResolver $resolver): void {
$resolver->setDefaults([
'data_class' => Rent::class,
'disabled' => false
]);
}
}