<?php
/**
* User: remmel
* Date: 3/19/16
* Time: 2:23 PM
*/
namespace App\Form;
use App\Entity\Advert;
use App\Entity\Stop;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
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 AdvertType 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('arrDatetime', DateTimeType::class, ['label' => 'Arrivée le*', 'disabled' => $dis])
->add('seat', ChoiceType::class, ['label' => 'Nombre de places', 'choices' => ['1' => '1', '2' => '2'], 'disabled' => $dis])
->add('buy', MoneyType::class, ['label' => 'Prix d\'achat*', 'disabled' => $dis])
->add('resale', MoneyType::class, ['label' => 'Prix de revente*', 'disabled' => $dis])
->add('contact', TextType::class, ['label' => 'Téléphone / email*', 'disabled' => $dis, 'required' => true])
->add('comment', TextareaType::class, [
'label' => 'Commentaires',
'required' => false,
'attr' => ['placeholder' => 'Lieu de remise, envoi par email, billet avec retour, frais de changment de nom...'],
'disabled' => $dis
]);
if (!$dis) {
$builder->add('accepted', CheckboxType::class, ['label' => 'J\'accepte les conditions d\'utilisation**', 'disabled' => $dis])
->add('save', SubmitType::class, ['label' => 'Publier', 'disabled' => $dis]);
}
}
public function configureOptions(OptionsResolver $resolver): void {
$resolver->setDefaults([
'data_class' => Advert::class,
'disabled' => false
]);
}
}