, * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ namespace Chill\EventBundle\Form; use Chill\EventBundle\Form\Type\PickEventTypeType; use Chill\MainBundle\Form\Type\ScopePickerType; use Chill\MainBundle\Templating\TranslatableStringHelper; use Chill\MainBundle\Entity\User; use Chill\MainBundle\Entity\Center; use Chill\MainBundle\Entity\Scope; use Chill\MainBundle\Form\Type\ChillDateTimeType; use Chill\MainBundle\Form\Type\UserPickerType; use Chill\MainBundle\Security\Authorization\AuthorizationHelper; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Core\Role\Role; class EventType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('name') ->add('date', ChillDateTimeType::class, array( 'required' => true )) ->add('circle', ScopePickerType::class, [ 'center' => $options['center'], 'role' => $options['role'] ]) ->add('type', PickEventTypeType::class, array( 'placeholder' => 'Pick a type of event', 'attr' => array( 'class' => '' ) )) ->add('moderator', UserPickerType::class, array( 'center' => $options['center'], 'role' => $options['role'], 'placeholder' => 'Pick a moderator', 'attr' => array( 'class' => '' ), 'required' => false )) ; } /** * @param OptionsResolver $resolver */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'data_class' => 'Chill\EventBundle\Entity\Event' )); $resolver ->setRequired(array('center', 'role')) ->setAllowedTypes('center', Center::class) ->setAllowedTypes('role', Role::class) ; } /** * @return string */ public function getName() { return 'chill_eventbundle_event'; } }