public function submit(FormEvent $event) { $entity = $event->getData(); if (!empty($entity) && $entity->isLocked()) { $event->getForm()->addError(new FormError('error.element_locked')); } }
/** * Reorder the children of the parent form data at $this->name. * * For whatever reason we have to go through the parent object, just * getting the collection from the form event and reordering it does * not update the stored order. * * @param FormEvent $event */ public function onSubmit(FormEvent $event) { $form = $event->getForm()->getParent(); $data = $form->getData(); if (!is_object($data)) { return; } $accessor = PropertyAccess::getPropertyAccessor(); // use deprecated BC method to support symfony 2.2 $newCollection = $accessor->getValue($data, $this->name); if (!$newCollection instanceof Collection) { return; } /* @var $newCollection Collection */ $newCollection->clear(); /** @var $item FormBuilder */ foreach ($form->get($this->name) as $key => $item) { if ($item->get('_delete')->getData()) { // do not re-add a deleted child continue; } if ($item->getName() && !is_numeric($item->getName())) { // keep key in collection $newCollection[$item->getName()] = $item->getData(); } else { $newCollection[] = $item->getData(); } } }
public function preSubmit(FormEvent $event) { $data = $event->getData(); $form = $event->getForm(); $province_id = array_key_exists('province', $data) ? $data['province'] : null; $this->addCityForm($form, $province_id); }
public function onPreSubmit(FormEvent $event) { $form = $event->getForm(); $data = $event->getData(); $type = $this->app['orm.em']->getRepository(':Property')->find($data['property'])->getDataType(); $this->renderFormType($form, $type); }
/** * Create all diagnosis fields not already set. * * @param FormEvent $event */ public function buildForm(FormEvent $event) { $regimen = $event->getData(); if ($regimen->getId()) { $event->getForm()->remove('patient'); } $config = $event->getForm()->get('activities')->getConfig(); $type = $config->getType()->getName(); $options = $config->getOptions(); $qb = $options['options']['query_builder'] = $this->activityRepository->getQueryBuilder(); // If no diagnosis is present, look for patient. if (null === $regimen || null === $regimen->getDiagnosis()) { if (null === $regimen->getPatient()) { $qb->andWhere('activity.patient IS NULL'); $qb->andWhere('activity.diagnosis IS NULL'); } else { $qb->andWhere('activity.patient = :patient'); $qb->andWhere('activity.diagnosis IS NULL'); $qb->setParameter(':patient', $regimen->getPatient()); } } else { $qb->resetDQLPart('where')->where('activity.diagnosis = :diagnosis')->setParameter(':diagnosis', $regimen->getDiagnosis()); } if (($startDate = $regimen->getStartDate()) instanceof DateTime) { $qb->andWhere('activity.activityDate >= :startDate')->setParameter(':startDate', $startDate); } if (($endDate = $regimen->getEndDate()) instanceof DateTime) { $qb->andWhere('activity.activityDate <= :endDate')->setParameter(':endDate', $endDate); } $event->getForm()->add('activities', $type, $options); }
/** * Forbids to erase a value * * @param FormEvent $event */ public function onPreSubmit(FormEvent $event) { $data = $event->getData(); if ($data['file'] instanceof UploadedFile) { $event->getForm()->remove('remove'); } if (empty($data['file']) && (!isset($data['remove']) || !$data['remove'])) { $event->setData($event->getForm()->getViewData()); } }
/** * Listener for the {@link FormEvents::POST_SUBMIT} event. * * @param FormEvent $event The event object */ public function postSubmit(FormEvent $event) { if ($event->getForm()->isRoot()) { // Collect the submitted data of each form $this->dataCollector->collectSubmittedData($event->getForm()); // Assemble a form tree // This is done again after the view is built, but we need it here as the view is not always created. $this->dataCollector->buildPreliminaryFormTree($event->getForm()); } }
public function addFees(FormEvent $event) { /* @var $billingSpec BillingSpec */ $billingSpec = $event->getData(); //Attach a tier form if ($billingSpec->getType() == BillingSpec::TYPE_TIER) { $event->getForm()->add($this->factory->createNamed('fees', 'collection', $billingSpec->getFees(), array('type' => new TierFeeFormType(), 'allow_add' => true, 'by_reference' => false))); } elseif ($billingSpec->getType() == BillingSpec::TYPE_FLAT) { $event->getForm()->add($this->factory->createNamed('fees', 'collection', $billingSpec->getFees(), array('type' => new FlatFeeFormType(), 'allow_add' => true, 'by_reference' => false))); } }
/** * Listener for the {@link FormEvents::POST_SUBMIT} event. * * @param FormEvent $event The event object */ public function postSubmit(FormEvent $event) { if ($event->getForm()->isRoot()) { // Collect the submitted data of each form $this->dataCollector->collectSubmittedData($event->getForm()); // Assemble a form tree // This is done again in collectViewVariables(), but that method // is not guaranteed to be called (i.e. when no view is created) $this->dataCollector->buildPreliminaryFormTree($event->getForm()); } }
/** * {@inheritdoc} */ public function postSubmit(FormEvent $event) { $entity = $event->getForm()->getParent()->getData(); if (!$entity instanceof CaseMailboxProcessSettings || !$entity->getMailbox()) { return; } /** @var Tag[] $tags */ $tags = array_merge($event->getForm()->get('all')->getData(), $event->getForm()->get('owner')->getData()); foreach ($tags as $tag) { $tag->setOrganization($entity->getMailbox()->getOrganization()); } }
/** * @param FormEvent $event * * @return bool */ protected function hasPrimaryBehaviour(FormEvent $event) { if (!$event->getForm()->getConfig()->getOption('handle_primary')) { return false; } /** @var FormInterface $child */ foreach ($event->getForm() as $child) { $dataClass = $child->getConfig()->getDataClass(); if ($dataClass && !in_array('Oro\\Bundle\\FormBundle\\Entity\\PrimaryItem', class_implements($dataClass))) { return false; } } return true; }
/** * Form event handler that makes sure the participants are actually members * of the specified team * @param FormEvent $event * @return void */ public function checkTeamMembers(FormEvent $event) { $players = $event->getForm()->get('participants'); $team = $event->getForm()->get('team')->getData(); if (!$team || !$team instanceof \Model || !$team->isValid()) { return; } foreach ($players->getData() as $player) { if ($player && !$team->isMember($player->getId())) { $message = "{$player->getUsername()} is not a member of {$team->getName()}"; $players->addError(new FormError($message)); } } }
/** * @param FormEvent $event */ public function buildCredentials(FormEvent $event) { /** @var array $data */ $data = $event->getData(); if (is_null($data)) { return; } $propertyPath = is_array($data) ? '[factoryName]' : 'factoryName'; $factoryName = PropertyAccess::createPropertyAccessor()->getValue($data, $propertyPath); if (empty($factoryName)) { return; } $form = $event->getForm(); $form->add('config', 'form'); $configForm = $form->get('config'); $gatewayFactory = $this->registry->getGatewayFactory($factoryName); $config = $gatewayFactory->createConfig(); $propertyPath = is_array($data) ? '[config]' : 'config'; $firstTime = false == PropertyAccess::createPropertyAccessor()->getValue($data, $propertyPath); foreach ($config['payum.default_options'] as $name => $value) { $propertyPath = is_array($data) ? "[config][{$name}]" : "config[{$name}]"; if ($firstTime) { PropertyAccess::createPropertyAccessor()->setValue($data, $propertyPath, $value); } $type = is_bool($value) ? 'checkbox' : 'text'; $options = array(); $options['required'] = in_array($name, $config['payum.required_options']); $configForm->add($name, $type, $options); } $event->setData($data); }
function it_adds_payment_methods_choice_to_the_form(FormEvent $event, FormInterface $form, PaymentInterface $payment) { $event->getForm()->willReturn($form); $event->getData()->willReturn($payment); $form->add('method', Argument::type('string'), ['label' => 'sylius.form.checkout.payment_method', 'subject' => $payment, 'expanded' => true])->shouldBeCalled(); $this->preSetData($event); }
public function onPreSetData(FormEvent $event) { $form = $event->getForm(); if ('contact' === $form->getName()) { $form->add('sample_form', 'text'); } }
public function preSetData(FormEvent $event) { $form = $event->getForm(); $form->add('customData', CustomFormType::class, ['callback' => function (FormBuilderInterface $builder) { return $this->customFormModel->constructForm($builder); }, 'validationCallback' => 'validateForm']); }
public function onPreSetData(FormEvent $event) { $form = $event->getForm(); if (!is_object($this->user) || !$this->user instanceof UserInterface) { $form->add('guest', new GuestType()); } }
/** * PRE_SET_DATA event handler * * @param FormEvent $event */ public function preSetData(FormEvent $event) { $form = $event->getForm(); if ($this->calendarConfig->isPublicCalendarEnabled() && $this->calendarConfig->isSystemCalendarEnabled()) { $options = ['required' => false, 'label' => 'oro.calendar.systemcalendar.public.label', 'empty_value' => false, 'choices' => [false => 'oro.calendar.systemcalendar.scope.organization', true => 'oro.calendar.systemcalendar.scope.system']]; /** @var SystemCalendar|null $data */ $data = $event->getData(); if ($data) { $isPublicGranted = $this->securityFacade->isGranted('oro_public_calendar_management'); $isSystemGranted = $this->securityFacade->isGranted($data->getId() ? 'oro_system_calendar_update' : 'oro_system_calendar_create'); if (!$isPublicGranted || !$isSystemGranted) { $options['read_only'] = true; if (!$data->getId() && !$isSystemGranted) { $options['data'] = true; } unset($options['choices'][$isSystemGranted]); } } $form->add('public', 'choice', $options); } elseif ($this->calendarConfig->isPublicCalendarEnabled()) { $form->add('public', 'hidden', ['data' => true]); } elseif ($this->calendarConfig->isSystemCalendarEnabled()) { $form->add('public', 'hidden', ['data' => false]); } }
public function preSubmit(FormEvent $event) { $data = $event->getData(); $form = $event->getForm(); $country_id = array_key_exists('country', $data) ? $data['country'] : null; $this->addProvinceForm($form, $country_id); }
/** * @param FormEvent $event */ public function preSetData(FormEvent $event) { $parentData = $event->getForm()->getParent()->getData(); if ($parentData) { $this->transformer->setAcl($parentData); } }
public function preSetData(FormEvent $event) { $form = $event->getForm(); $data = $event->getData(); if (!$data instanceof $this->dataClass) { return; } //loop over all columns and add the input foreach ($this->columns as $column => $options) { if (is_string($options)) { $column = $options; $options = array(); } if (null === $options) { $options = array(); } $type = 'text'; if (array_key_exists('type', $options)) { $type = $options['type']; } $label = $column; if (array_key_exists('label', $options)) { $label = $options['label']; } $customOptions = array(); if (array_key_exists('options', $options)) { $customOptions = $options['options']; } $options = array('label' => $label . ' ' . strtoupper($data->getLocale())); $options = array_merge($options, $customOptions); $form->add($column, $type, $options); } }
public function preSetData(FormEvent $event) { $data = $event->getData(); $form = $event->getForm(); // During form creation setData() is called with null as an argument // by the FormBuilder constructor. We're only concerned with when // setData is called with an actual Entity object in it (whether new, // or fetched with Doctrine). This if statement let's us skip right // over the null condition. if (null === $data) { return; } // Check the comment type and presend the required field to enter page/blog post id switch ($data->getCommentType()) { case 'Blog': $form->add($this->factory->createNamed('blogPost', 'entity', null, array('auto_initialize' => false, 'class' => 'BardisCMS\\BlogBundle\\Entity\\Blog', 'property' => 'title', 'expanded' => false, 'multiple' => false, 'label' => 'Select Linked Blog Post', 'attr' => array('class' => 'autoCompleteItems autoCompleteBlogs', 'data-sonata-select2' => 'false'), 'required' => false))); break; /* case 'Page': $form->add($this->factory->createNamed('page', 'entity', null, array('auto_initialize' => false, 'class' => 'BardisCMS\PageBundle\Entity\Page', 'property' => 'title', 'expanded' => false, 'multiple' => false, 'label' => 'Select Linked Page', 'attr' => array('class' => 'autoCompleteItems autoCompletePages', 'data-sonata-select2' => 'false'), 'required' => false))); break; */ /* case 'Page': $form->add($this->factory->createNamed('page', 'entity', null, array('auto_initialize' => false, 'class' => 'BardisCMS\PageBundle\Entity\Page', 'property' => 'title', 'expanded' => false, 'multiple' => false, 'label' => 'Select Linked Page', 'attr' => array('class' => 'autoCompleteItems autoCompletePages', 'data-sonata-select2' => 'false'), 'required' => false))); break; */ default: } }
/** * @param FormEvent $event */ public function addFrontendWidgetField(FormEvent $event) { $form = $event->getForm(); $attribute = $event->getData(); $attributeType = ucfirst($attribute->getType()) . 'AttributeType'; $form->add('frontendWidget', 'choice', array('label' => 'Frontend widget', 'choices' => call_user_func(array("Fyb\\Component\\Attribute\\AttributeType\\" . $attributeType, 'getFrontendWidgetChoicesList')))); }
/** * @param FormEvent $event */ protected function addFormType(FormEvent $event) { $form = $event->getForm(); $data = $event->getData(); $event->setData($data); if ($form->has('contentId')) { $form->remove('contentId'); } if ($form->has('help-text')) { $form->remove('help-text'); } $choices = array(); if (!is_null($data)) { if (array_key_exists('contentType', $data) && $data['contentType'] != '') { $choices = array_merge($choices, $this->getChoices($data['contentType'], array_key_exists('choiceType', $data) && $data['choiceType'] != '' ? $data['choiceType'] : ReadContentRepositoryInterface::CHOICE_AND, array_key_exists('keywords', $data) && $data['keywords'] ? $data['keywords'] : null)); } if (array_key_exists('contentId', $data) && $data['contentId'] != '') { $choices = array_merge($choices, $this->getChoice($data['contentId'])); } } if (count($choices) > 0) { $form->add('contentId', 'choice', array('label' => false, 'empty_value' => ' ', 'required' => $this->required, 'choices' => $choices, 'attr' => $this->attributes)); } else { $form->add('contentId', 'hidden', array('required' => $this->required, 'error_mapping' => 'help-text')); $form->add('help-text', 'button', array('disabled' => true, 'label' => 'open_orchestra_backoffice.form.content_search.use')); } }
/** * @param FormEvent $event * @param string $formsEventName */ public function __construct(FormEvent $event, $formsEventName) { $this->event = $event; $this->data = $event->getData(); $this->form = $event->getForm(); $this->formsEventName = $formsEventName; }
/** * @param FormEvent $event */ public function preSubmit(FormEvent $event) { $data = $event->getData(); $form = $event->getForm(); $country = array_key_exists('country', $data) ? $data['country'] : null; $this->addDiscretionarySpendingForm($form, $country); }
public function preBind(FormEvent $event) { $form = $event->getForm(); $data = $event->getData(); $data = array_replace($this->unbind($form), $data ?: array()); $event->setData($data); }
/** * @param \Symfony\Component\Form\FormEvent $event */ public function onBind(FormEvent $event) { $collection = $event->getForm()->getData(); $data = $event->getData(); // looks like there is no way to remove other listeners $event->stopPropagation(); if (!$collection) { $collection = $data; } elseif (count($data) === 0) { $this->modelManager->collectionClear($collection); } else { // merge $data into $collection foreach ($collection as $entity) { if (!$this->modelManager->collectionHasElement($data, $entity)) { $this->modelManager->collectionRemoveElement($collection, $entity); } else { $this->modelManager->collectionRemoveElement($data, $entity); } } foreach ($data as $entity) { $this->modelManager->collectionAddElement($collection, $entity); } } $event->setData($collection); }
/** * @param FormEvent $event */ public function preSubmit(FormEvent $event) { $data = $event->getData(); $form = $event->getForm(); $headquartersId = array_key_exists('headquarter', $data) ? $data['headquarter'] : null; $this->addExamForm($form, $headquartersId); }
/** * Method called before set data * * @param FormEvent $event */ public function preSetData(FormEvent $event) { $data = $event->getData(); if (null === $data) { return; } if (is_null($data->getId()) === false) { $form = $event->getForm(); $this->disableField($form, 'code'); } if (!$this->securityFacade->isGranted('pim_enrich_attributegroup_add_attribute')) { $form = $event->getForm(); $this->hideGroupElement($form, $data); } $this->customizeForm($event->getForm(), $data); }