public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('type', 'choice', array('label' => 'I am a', 'choices' => array(User::ROLE_STUDENT => 'Student', User::ROLE_GS1_MEMBER => 'Member'), 'data' => 'student', 'attr' => array('class' => 'account_type')))->add('firstName', null, array('attr' => array('maxlength' => false), 'render_required_asterisk' => true))->add('lastName', null, array('attr' => array('maxlength' => false), 'render_required_asterisk' => true))->add('email', 'email', array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle', 'render_required_asterisk' => true))->add('plainPassword', 'repeated', array('type' => 'password', 'options' => array('translation_domain' => 'FOSUserBundle'), 'first_options' => array('label' => 'form.password', 'render_required_asterisk' => true), 'second_options' => array('label' => 'form.password_confirmation', 'render_required_asterisk' => true), 'invalid_message' => 'fos_user.password.mismatch'))->add('toc', 'checkbox', array('mapped' => false, 'label' => 'I agree to <a id="toc" href="#">terms & conditions</a>', 'constraints' => array(new IsTrue(array('message' => 'You must agree to terms & conditions')))))->add('studentProfile', new StudentRegistrationType($this->entityManager), array('label' => false, 'widget_form_group' => false, 'widget_type' => 'inline'));
     $builder->get('email')->setAttribute('render_required_asterisk', true);
     $builder->get('plainPassword')->setAttribute('render_required_asterisk', true);
     $builder->remove('username');
     $formModifier = function (FormInterface $form, $type = null) {
         if ($type === User::ROLE_GS1_MEMBER) {
             $form->add('memberProfile', new MemberProfileType(), array('label' => false, 'widget_form_group' => false, 'widget_type' => 'inline', 'constraints' => array(new Valid())))->remove("studentProfile");
         }
     };
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($formModifier) {
         $data = $event->getData();
         $formModifier($event->getForm(), $data !== null ? $data->getType() : null);
     });
     $builder->get('type')->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) use($formModifier) {
         $type = $event->getForm()->getData();
         $formModifier($event->getForm()->getParent(), $type);
     });
     $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
         $form = $event->getForm();
         if ($form->getErrors(true)->count() > 0) {
             $form->get('plainPassword')->get('first')->addError(new FormError('The form is invalid, you must re-enter your password'));
         }
     });
     //        $builder->get('activatedAccessCode')
     //            ->addModelTransformer(new StudentAccessCodeTransformer($this->entityManager));
 }
 /**
  * @param FormBuilderInterface $builder
  * @param array                $options
  *
  * @throws \Exception
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($options) {
         $form = $event->getForm();
         /** @var DataInterface $data */
         $data = $event->getData();
         if ($data) {
             $family = $data->getFamily();
         } else {
             $family = $options['family'];
         }
         if ($family) {
             $this->buildValuesForm($form, $family, $data, $options);
             $this->buildDataForm($form, $family, $data, $options);
         } else {
             $this->buildCreateForm($form, $options);
         }
     });
     $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
         $data = $event->getData();
         if ($data instanceof DataInterface) {
             $data->setUpdatedAt(new \DateTime());
         }
     });
 }
Example #3
0
 /**
  * @param FormBuilderInterface $builder
  * @param array $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($builder) {
         $event->getForm()->add('dateStart', 'datetime', array('label' => !(!$event->getData()->getId() && $event->getData()->getReplannedBy()) ? 'enigmatic.crm.activity.form.field.dateStart.label' : 'enigmatic.crm.activity.form.field.dateStart.replann.label', 'widget' => 'single_text', 'input' => 'datetime', 'format' => 'dd-MM-yyyy H:m', 'required' => true, 'attr' => array('class' => 'datetimepicker', 'placeholder' => 'dd-mm-yyyy h:m')));
         if (!(!$event->getData()->getId() && $event->getData()->getReplannedBy())) {
             $event->getForm()->add('type', 'genemu_jqueryselect2_entity', array('class' => 'EnigmaticCRMBundle:ActivityType', 'multiple' => false, 'expanded' => false, 'label' => 'enigmatic.crm.activity.form.field.type.label', 'empty_value' => 'enigmatic.crm.activity.form.field.type.empty_value', 'choices' => $this->getArrayOfEntities(), 'required' => true))->add('comment', 'textarea', array('label' => 'enigmatic.crm.activity.form.field.comment.label', 'required' => false));
         }
         if (!$event->getData()->getAccount() || $event->getData()->getId()) {
             $event->getForm()->add('account', 'genemu_jqueryselect2_entity', array('class' => 'EnigmaticCRMBundle:Account', 'multiple' => false, 'expanded' => false, 'label' => 'enigmatic.crm.activity.form.field.account.label', 'empty_value' => 'enigmatic.crm.activity.form.field.account.empty_value', 'required' => true, 'query_builder' => function (EntityRepository $er) use($event) {
                 $params = array();
                 if ($this->authorizationChecker->isGranted('ROLE_RCA') && !$this->authorizationChecker->isGranted('ROLE_RS')) {
                     $params['search']['agency'] = $this->userManager->getCurrent() ? $this->userManager->getCurrent()->getAgency() : null;
                 } elseif ($this->authorizationChecker->isGranted('ROLE_CA') && !$this->authorizationChecker->isGranted('ROLE_RS')) {
                     $params['search']['agency'] = $this->userManager->getCurrent() ? $this->userManager->getCurrent()->getAgency() : null;
                     $params['search']['account_owner'] = $this->userManager->getCurrent();
                 }
                 return $er->getER($params);
             }));
         }
         if ($event->getData()->getId()) {
             $event->getForm()->add('dateEnd', 'datetime', array('label' => 'enigmatic.crm.activity.form.field.dateEnd.label', 'widget' => 'single_text', 'input' => 'datetime', 'format' => 'dd-MM-yyyy H:m', 'required' => true, 'attr' => array('class' => 'datetimepicker', 'placeholder' => 'dd-mm-yyyy h:m')));
         }
         if (!$event->getData()->getUser()) {
             $event->getForm()->add('user', 'genemu_jqueryselect2_entity', array('class' => 'EnigmaticCRMBundle:User', 'multiple' => false, 'expanded' => false, 'label' => 'enigmatic.crm.activity.form.field.user.label', 'empty_value' => 'enigmatic.crm.activity.form.field.user.empty_value', 'required' => true));
         }
     });
     $builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) use($options) {
         if (!$event->getData()->getId()) {
             $date = clone $event->getData()->getDateStart();
             $event->getData()->setDateEnd($date->modify('+30 min'));
         }
     });
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('type', 'choice', array('choices' => Beneficiary::getTypeChoices()))->add('first_name', 'text', array('required' => true))->add('middle_name', 'text', array('required' => false))->add('last_name', 'text', array('required' => true))->add('birth_date', 'date', array('widget' => 'single_text', 'format' => 'MM-dd-yyyy', 'attr' => array('class' => 'jq-date input-small')))->add('city', 'text', array('required' => true))->add('street', 'text', array('required' => true))->add('state', 'entity', array('class' => 'WealthbotAdminBundle:State', 'label' => 'State', 'empty_value' => 'Select a State'))->add('zip', 'text', array('required' => true))->add('relationship', 'text', array('required' => true))->add('share', 'number', array('required' => true));
     $factory = $builder->getFormFactory();
     $showSsn = $this->showSsn;
     $updateSsn = function (FormInterface $form, $ssn) use($factory) {
         $form->add($factory->createNamed('ssn_1', 'text', null, array('property_path' => false, 'attr' => array('value' => $ssn[1]), 'constraints' => array(new NotBlank(array('message' => 'Can not be blank.')), new Regex(array('pattern' => '/^\\d+$/', 'message' => 'Must be number.')), new Length(array('min' => 3, 'max' => 3, 'minMessage' => 'Must have {{ limit }} digits.', 'maxMessage' => 'Must have {{ limit }} digits.'))))))->add($factory->createNamed('ssn_2', 'text', null, array('property_path' => false, 'attr' => array('value' => $ssn[2]), 'constraints' => array(new NotBlank(array('message' => 'Can not be blank.')), new Regex(array('pattern' => '/^\\d+$/', 'message' => 'Must be number.')), new Length(array('min' => 2, 'max' => 2, 'minMessage' => 'Must have {{ limit }} digits.', 'maxMessage' => 'Must have {{ limit }} digits.'))))))->add($factory->createNamed('ssn_3', 'text', null, array('property_path' => false, 'attr' => array('value' => $ssn[3]), 'constraints' => array(new NotBlank(array('message' => 'Can not be blank.')), new Regex(array('pattern' => '/^\\d+$/', 'message' => 'Must be number.')), new Length(array('min' => 4, 'max' => 4, 'minMessage' => 'Must have {{ limit }} digits.', 'maxMessage' => 'Must have {{ limit }} digits.'))))));
     };
     $builder->addEventListener(FormEvents::PRE_BIND, function (FormEvent $event) use($updateSsn) {
         $form = $event->getForm();
         $data = $event->getData();
         if (array_key_exists('ssn_1', $data) && array_key_exists('ssn_2', $data) && array_key_exists('ssn_3', $data)) {
             $updateSsn($form, array('', $data['ssn_1'], $data['ssn_2'], $data['ssn_3']));
         }
     });
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($updateSsn, $showSsn) {
         $form = $event->getForm();
         $data = $event->getData();
         $ssn = array('', '', '', '');
         if (true === $showSsn) {
             if ($data !== null && preg_match('/^([0-9]{3})([0-9]{2})([0-9]{4})$/', $data->getSsn(), $matches)) {
                 $ssn = $matches;
             }
         }
         $updateSsn($form, $ssn);
     });
     $builder->addEventListener(FormEvents::BIND, array($this, 'validatePreSave'));
     if (!$this->isPreSaved) {
         $builder->addEventListener(FormEvents::BIND, array($this, 'validate'));
     }
 }
Example #5
0
 /**
  * @param FormBuilderInterface $builder
  * @param array                $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('name')->add('description')->add('countries')->add('tags', 'text', ['mapped' => false]);
     $tagManager = $this->tagManager;
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         if (!$event->getData() || !$event->getData()->getId()) {
             $event->getForm()->add('url', 'url')->add('type', 'text', ['mapped' => false, 'constraints' => [new Constraints\NotBlank(['groups' => ['new']]), new Constraints\Choice(['choices' => Platform::getAvailableTypes(), 'groups' => ['new'], 'message' => 'Неправильный тип площадки'])]]);
         }
     });
     $builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) use($tagManager) {
         /** @var Platform $platform */
         $platform = $event->getData();
         $form = $event->getForm();
         $formTags = $form['tags']->getData();
         if (!empty($formTags) && !is_string($formTags)) {
             $error = new FormError('неправильный формат тегов');
             $form['tags']->addError($error);
         } else {
             $tagNames = $tagManager->splitTagNames($form['tags']->getData());
             $tags = $tagManager->loadOrCreateTags($tagNames);
             $tagManager->replaceTags($tags, $platform);
         }
         if (!$platform->getId() && $platform->getUrl()) {
             // для новой площадки
             $url = new Url($platform->getUrl());
             $platform->setUrl(rtrim($url->format('hp'), '//'));
             if (in_array($url->getHostname(), ['vk.com', 'vkontakte.ru']) !== ($form['type']->getData() == 'vk')) {
                 $error = new FormError('Тип площадки не соответствует адресу');
                 $form['url']->addError($error);
             }
         }
     });
 }
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('entityName', 'hidden', ['attr' => ['data-default-value' => Email::ENTITY_CLASS], 'constraints' => [new Assert\Choice(['choices' => ['', Email::ENTITY_CLASS]])]])->add('type', 'choice', ['label' => 'oro.email.emailtemplate.type.label', 'multiple' => false, 'expanded' => true, 'choices' => ['html' => 'oro.email.datagrid.emailtemplate.filter.type.html', 'txt' => 'oro.email.datagrid.emailtemplate.filter.type.txt'], 'required' => true])->add('translations', 'oro_email_emailtemplate_translatation', ['label' => 'oro.email.emailtemplate.translations.label', 'locales' => $this->getLanguages(), 'labels' => $this->getLocaleLabels(), 'content_options' => ['constraints' => [new Assert\NotBlank()], 'attr' => ['data-default-value' => $this->cm->get('oro_email.signature', '')]], 'subject_options' => ['constraints' => [new Assert\NotBlank()]]])->add('visible', 'checkbox', ['label' => 'oro.email.autoresponserule.form.template.visible.label', 'required' => false]);
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $form = $event->getForm();
         if ($form->has('owner')) {
             $form->remove('owner');
         }
         if (!$event->getData()) {
             $emailTemplate = new EmailTemplate();
             $emailTemplate->setContent($this->cm->get('oro_email.signature', ''));
             $emailTemplate->setEntityName(Email::ENTITY_CLASS);
             $event->setData($emailTemplate);
         }
     });
     $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
         $template = $event->getData();
         if (!$template || $template->getName()) {
             return;
         }
         $proposedName = $template->getSubject();
         while ($this->templateExists($proposedName)) {
             $proposedName .= rand(0, 10);
         }
         $template->setName($proposedName);
     });
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('security', new FundFormType());
     if ($this->account) {
         $builder->add('account_id', 'hidden', array('data' => $this->account->getId(), 'property_path' => false));
     }
     $em = $this->em;
     $ria = $this->account->getClient()->getProfile()->getRia();
     $builder->addEventListener(FormEvents::PRE_BIND, function (FormEvent $event) use($em, $ria) {
         $form = $event->getForm();
         $data = $event->getData();
         $existSecurity = $em->getRepository('WealthbotAdminBundle:Security')->findOneBy(array('name' => $data['security']['name'], 'symbol' => $data['security']['symbol']));
         if ($existSecurity) {
             $form->get('security')->setData($existSecurity);
             $existSecurityAssignment = $em->getRepository('WealthbotAdminBundle:SecurityAssignment')->findOneBy(array('ria_user_id' => $ria->getId(), 'security_id' => $existSecurity->getId()));
             if ($existSecurityAssignment) {
                 $form->setData($existSecurityAssignment);
             }
         }
     });
     $builder->addEventListener(FormEvents::BIND, function (FormEvent $event) use($ria) {
         $data = $event->getData();
         if ($data) {
             //                $data->setRia($ria); Deprecated
         }
     });
 }
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     if ($options['autocomplete']) {
         $builder->addEventListener(FormEvents::PRE_SET_DATA, [$this, 'preSetData']);
         $builder->addEventListener(FormEvents::PRE_SUBMIT, [$this, 'preSubmit']);
     }
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $this->checkOptions($options);
     $fieldName = $builder->getName();
     $className = $options['translation_data_class'];
     $id = $options['object_id'];
     $locales = $options['locales'];
     $userLocale = $this->userLocale;
     // fetch data for each locale on this field of the object
     $translations = $this->translatablefieldmanager->getTranslatedFields($className, $fieldName, $id, $locales, $userLocale);
     // 'populate' fields by *hook on form generation
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($fieldName, $locales, $translations) {
         $form = $event->getForm();
         foreach ($locales as $locale) {
             $data = array_key_exists($locale, $translations) && array_key_exists($fieldName, $translations[$locale]) ? $translations[$locale][$fieldName] : NULL;
             $form->add($locale, 'text', ['label' => false, 'data' => $data]);
         }
         // extra field for twig rendering
         $form->add('currentFieldName', 'hidden', array('data' => $fieldName));
     });
     // submit
     $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) use($fieldName, $className, $id, $locales, $userLocale) {
         $form = $event->getForm();
         $this->translatablefieldmanager->persistTranslations($form, $className, $fieldName, $id, $locales, $userLocale);
     });
 }
 /**
  * @param FormBuilderInterface $builder
  * @param array $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $originalRecipients = new ArrayCollection();
     $builder->add('originator', 'text', ['disabled' => true, 'mapped' => false, 'data' => $this->currentUser->getFullname()])->add('recipients', 'collection', ['type' => 'azhuravlov_sa_recipient', 'allow_add' => true, 'allow_delete' => true, 'by_reference' => false])->add('subject')->add('priority', 'choice', ['choices' => Approval::getPriorities()])->add('body', 'textarea', ['attr' => array('style' => 'height: 500px;')])->add('submit', 'submit', ['attr' => array('class' => 'btn btn-success btn-lg')]);
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         /** @var Approval $data */
         $data = $event->getData();
         $data->setOriginator($this->currentUser);
     });
     // Recipients before
     $builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) use(&$originalRecipients) {
         /** @var Approval $entity */
         $entity = $event->getData();
         foreach ($entity->getRecipients() as $recipient) {
             $originalRecipients->add($recipient);
         }
     });
     // Recipients after
     $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) use(&$originalRecipients) {
         /** @var Approval $entity */
         $entity = $event->getData();
         foreach ($originalRecipients as $recipient) {
             if (false === $entity->getRecipients()->contains($recipient)) {
                 $entity->getRecipients()->removeElement($recipient);
             }
         }
     });
 }
Example #11
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('metatag', 'checkbox', array('required' => false))->add('display', 'checkbox', array('required' => false))->add('cod', 'text', array('attr' => array('pattern' => "^\\w*\$", 'oninvalid' => "setCustomValidity('The code can not have blank spaces neither special characters')", 'oninput' => "setCustomValidity('')"), 'label' => $this->translator->trans('Cod', array(), null, $this->locale)))->add('i18n_title', 'texti18n', array('label' => $this->translator->trans('Title', array(), null, $this->locale)))->add('i18n_description', 'textareai18n', array('required' => false, 'label' => $this->translator->trans('Description', array(), null, $this->locale)));
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $tag = $event->getData();
         $fields = $tag->getProperty("customfield");
         foreach (array_filter(preg_split('/[,\\s]+/', $fields)) as $field) {
             $auxField = explode(":", $field);
             $formOptions = array('mapped' => false, 'required' => false, 'data' => $tag->getProperty($auxField[0]));
             try {
                 $event->getForm()->add($auxField[0], isset($auxField[1]) ? $auxField[1] : 'text', $formOptions);
             } catch (\InvalidArgumentException $e) {
                 $event->getForm()->add($auxField[0], 'text', $formOptions);
             }
         }
     });
     $builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) {
         $tag = $event->getData();
         $fields = $tag->getProperty("customfield");
         foreach (array_filter(preg_split('/[,\\s]+/', $fields)) as $field) {
             $auxField = explode(":", $field);
             $data = $event->getForm()->get($auxField[0])->getData();
             $tag->setProperty($auxField[0], $data);
         }
     });
 }
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('prices', ProductPriceCollectionType::NAME, ['label' => 'orob2b.pricing.productprice.entity_plural_label', 'required' => false, 'mapped' => false, 'constraints' => [new UniqueProductPrices()]]);
     $builder->addEventListener(FormEvents::POST_SET_DATA, [$this, 'onPostSetData']);
     $builder->addEventListener(FormEvents::PRE_SUBMIT, [$this, 'onPreSubmit']);
     $builder->addEventListener(FormEvents::POST_SUBMIT, [$this, 'onPostSubmit'], 10);
 }
Example #13
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $projects = $this->projectRepository->getFormChoices();
     $first = key($projects);
     $builder->add('name', TextType::class, array('label' => 'Name'))->add('project', ChoiceType::class, array('label' => 'Project', 'choices' => $projects))->add('url', UrlType::class, array('label' => 'Export URL'))->add('encryptionKey', TextType::class, ['label' => 'Encryption key'])->add('active', BooleanType::class, ['label' => 'Active'])->add('notes', TextareaType::class, ['label' => 'Notes'])->add('save', SubmitType::class, array('label' => 'Save'));
     $builder->get('project')->addModelTransformer(new EntityTransformer($this->projectRepository));
     $formModifier = function (FormInterface $form, Project $project = null) use($first) {
         if (null === $project && false !== $first) {
             $project = $this->projectRepository->getItem($first);
         }
         $statuses = null === $project ? [] : $this->areaStatusRepository->getFormChoices($project);
         $form->add('areaStatus', new ChoiceType(), ['label' => 'Area status', 'choices' => $statuses]);
     };
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($formModifier) {
         $data = $event->getData();
         $formModifier($event->getForm(), $data->getProject());
         if (!empty($data->getAreaStatus())) {
             $data->setAreaStatus($data->getAreaStatus()->getId());
         }
     });
     $builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) {
         $data = $event->getData();
         if (!empty($data->getAreaStatus()) && null !== $data->getProject()) {
             $this->areaStatusRepository->setProject($data->getProject());
             $data->setAreaStatus($this->areaStatusRepository->getItem($data->getAreaStatus()));
         }
     });
     $builder->get('project')->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) use($formModifier) {
         $project = $event->getForm()->getData();
         $formModifier($event->getForm()->getParent(), $project);
     });
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $cityEmptyMessage = $this->translator->trans('No city found.');
     $stateEmptyMessage = $this->translator->trans('No state found.');
     $countryEmptyMessage = $this->translator->trans('No country found.');
     $builder->add('name', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType', array('label' => 'address.name'))->add('address', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType', array('required' => true))->add('addressNumber', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType', array('required' => false))->add('complement', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType', array('required' => false))->add('location', 'LoginCidadao\\CoreBundle\\Form\\Type\\CitySelectorComboType', array('level' => 'city'));
     if (isset($this->preferredCountries[0])) {
         $id = $this->preferredCountries[0]->getId();
     } else {
         $id = null;
     }
     $builder->add('preferredcountries', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\HiddenType', array("data" => $id, "required" => false, "mapped" => false))->add('postalCode');
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $data = $event->getData();
         if ($data instanceof PersonAddress) {
             if ($data->getCity()) {
                 $data->setState($data->getCity()->getState());
                 $data->setCountry($data->getCity()->getState()->getCountry());
             } elseif ($data->getLocation() instanceof SelectData) {
                 $data->getLocation()->toObject($data);
             }
         }
     });
     $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
         $address = $event->getData();
         if ($address instanceof PersonAddress) {
             $address->getLocation()->toObject($address);
         }
     });
 }
Example #15
0
 /**
  * @param FormBuilderInterface $builder
  * @param array $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $person = $this->person;
     $clientId = $this->clientId;
     $receiversConfig = array('label' => 'Receivers', 'ajax_choice_attr' => array('filter' => array('route' => 'lc_dev_broadcasts_grid_receivers_filter', 'search_prop' => 'username', 'extra_form_prop' => array('client_id' => 'client_id')), 'selected' => array('route' => 'lc_dev_broadcasts_grid_receivers', 'extra_form_prop' => array('person_id' => 'receivers', 'client_id' => 'client_id')), 'property_value' => 'id', 'property_text' => 'fullNameOrUsername', 'search_prop_label' => 'dev.broadcasts.receivers.filter'), 'required' => true, 'empty_data' => null, 'class' => 'PROCERGSLoginCidadaoCoreBundle:Person', 'property' => 'fullNameOrUsername');
     $builder->add('category', 'entity', array('required' => true, 'empty_data' => null, 'class' => 'PROCERGS\\LoginCidadao\\NotificationBundle\\Entity\\Category', 'property' => 'name', 'query_builder' => function (CategoryRepository $repository) use($person, $clientId) {
         return $repository->getOwnedCategoriesQuery($person)->andWhere('c.id = :clientId')->setParameter('clientId', $clientId);
     }));
     $builder->add('client_id', 'hidden', array('required' => false, 'mapped' => false, 'data' => $clientId));
     $builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) use(&$receiversConfig, &$person, $clientId) {
         $entity = $event->getData();
         $form = $event->getForm();
         $receiversConfig['query_builder'] = function (PersonRepository $repository) use($clientId, &$entity) {
             $sql = $repository->getFindAuthorizedByClientIdQuery($clientId);
             if (!empty($entity['receivers'])) {
                 $sql->andWhere('p.id in (:receivers)');
                 $sql->setParameter('receivers', $entity['receivers']);
             }
             return $sql;
         };
         $form->add('receivers', 'ajax_choice', $receiversConfig);
     });
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use(&$receiversConfig, &$person, &$clientId) {
         $entity = $event->getData();
         $form = $event->getForm();
         $receiversConfig['query_builder'] = function (PersonRepository $repository) {
             $sql = $repository->createQueryBuilder('u');
             $sql->where('1 != 1');
             return $sql;
         };
         $form->add('receivers', 'ajax_choice', $receiversConfig);
     });
 }
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('page_url', 'text', ['label' => 'mautic.page.point.action.form.page.url', 'label_attr' => ['class' => 'control-label'], 'attr' => ['class' => 'form-control', 'tooltip' => 'mautic.page.point.action.form.page.url.descr', 'placeholder' => 'http://']]);
     // $default = (isset($options['data']) && isset($options['data']['first_time'])) ? $options['data']['first_time'] : false;
     // $builder->add('first_time', 'yesno_button_group', array(
     //     'label'       => 'mautic.page.point.action.form.first.time.only',
     //     'attr'        => array(
     //         'tooltip' => 'mautic.page.point.action.form.first.time.only.descr'
     //     ),
     //     'data'        => $default
     // ));
     $builder->add('page_hits', 'integer', ['label' => 'mautic.page.hits', 'label_attr' => ['class' => 'control-label'], 'required' => false, 'attr' => ['class' => 'form-control', 'tooltip' => 'mautic.page.point.action.form.page.hits.descr']]);
     $formModifier = function (FormInterface $form, $data) use($builder) {
         $unit = isset($data['accumulative_time_unit']) ? $data['accumulative_time_unit'] : 'H';
         $form->add('accumulative_time_unit', 'hidden', ['data' => $unit]);
         $secondsTransformer = new SecondsConversionTransformer($unit);
         $form->add($builder->create('accumulative_time', 'text', ['label' => 'mautic.page.point.action.form.accumulative.time', 'required' => false, 'label_attr' => ['class' => 'control-label'], 'attr' => ['class' => 'form-control', 'tooltip' => 'mautic.page.point.action.form.accumulative.time.descr'], 'auto_initialize' => false])->addViewTransformer($secondsTransformer)->getForm());
         $unit = isset($data['returns_within_unit']) ? $data['returns_within_unit'] : 'H';
         $secondsTransformer = new SecondsConversionTransformer($unit);
         $form->add('returns_within_unit', 'hidden', ['data' => $unit]);
         $form->add($builder->create('returns_within', 'text', ['label' => 'mautic.page.point.action.form.returns.within', 'required' => false, 'label_attr' => ['class' => 'control-label'], 'attr' => ['class' => 'form-control', 'tooltip' => 'mautic.page.point.action.form.returns.within.descr', 'onBlur' => 'Mautic.EnablesOption(this.id)'], 'auto_initialize' => false])->addViewTransformer($secondsTransformer)->getForm());
         $unit = isset($data['returns_after_unit']) ? $data['returns_after_unit'] : 'H';
         $secondsTransformer = new SecondsConversionTransformer($unit);
         $form->add('returns_after_unit', 'hidden', ['data' => $unit]);
         $form->add($builder->create('returns_after', 'text', ['label' => 'mautic.page.point.action.form.returns.after', 'required' => false, 'label_attr' => ['class' => 'control-label'], 'attr' => ['class' => 'form-control', 'tooltip' => 'mautic.page.point.action.form.returns.after.descr', 'onBlur' => 'Mautic.EnablesOption(this.id)'], 'auto_initialize' => false])->addViewTransformer($secondsTransformer)->getForm());
     };
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($formModifier) {
         $data = $event->getData();
         $formModifier($event->getForm(), $data);
     });
     $builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) use($formModifier) {
         $data = $event->getData();
         $formModifier($event->getForm(), $data);
     });
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     global $CONFIG;
     $builder->add('email', 'email', array('label' => 'Email', 'required' => true, 'max_length' => VARCHAR_COLUMN_LENGTH_USED));
     $builder->add('username', 'text', array('label' => 'Username', 'required' => true, 'max_length' => VARCHAR_COLUMN_LENGTH_USED, 'attr' => array('autofocus' => 'autofocus')));
     $builder->add('password1', 'password', array('label' => 'Password', 'required' => true));
     $builder->add('password2', 'password', array('label' => 'Repeat password', 'required' => true));
     $builder->add("agree", "checkbox", array('required' => true, 'label' => 'I agree to the terms and conditions'));
     if ($CONFIG->newUserRegisterAntiSpam) {
         $builder->add('antispam', 'text', array('label' => 'What is 2 + 2?', 'required' => true));
         $myExtraFieldValidatorSpam = function (FormEvent $event) {
             $form = $event->getForm();
             $myExtraField = $form->get('antispam')->getData();
             if ($myExtraField != '4' && $myExtraField != 'four') {
                 $form['antispam']->addError(new FormError("Please prove you are human"));
             }
         };
         $builder->addEventListener(FormEvents::POST_BIND, $myExtraFieldValidatorSpam);
     }
     /** agree to terms **/
     $myExtraFieldValidator1 = function (FormEvent $event) {
         $form = $event->getForm();
         $myExtraField = $form->get('agree')->getData();
         if (empty($myExtraField)) {
             $form['agree']->addError(new FormError("Please agree to the terms and conditions"));
         }
     };
     $builder->addEventListener(FormEvents::POST_BIND, $myExtraFieldValidator1);
     /** email looks real **/
     $myExtraFieldValidator2 = function (FormEvent $event) {
         $form = $event->getForm();
         $myExtraField = $form->get('email')->getData();
         if (!filter_var($myExtraField, FILTER_VALIDATE_EMAIL)) {
             $form['email']->addError(new FormError("Please enter a email address"));
         }
     };
     $builder->addEventListener(FormEvents::POST_BIND, $myExtraFieldValidator2);
     /** username alphanumeric **/
     $myExtraFieldValidator3 = function (FormEvent $event) {
         $form = $event->getForm();
         $myExtraField = $form->get('username')->getData();
         if (!ctype_alnum($myExtraField) || strlen($myExtraField) < 2) {
             $form['username']->addError(new FormError("Please choose a username with numbers and letters only and at least 2 characters."));
         }
     };
     $builder->addEventListener(FormEvents::POST_BIND, $myExtraFieldValidator3);
     /** passwords **/
     $myExtraFieldValidator4 = function (FormEvent $event) {
         $form = $event->getForm();
         $myExtraField1 = $form->get('password1')->getData();
         $myExtraField2 = $form->get('password2')->getData();
         if (strlen($myExtraField1) < 2) {
             $form['password1']->addError(new FormError("Please choose a password with at least 2 characters."));
         }
         if ($myExtraField1 != $myExtraField2) {
             $form['password2']->addError(new FormError("Please enter your password again; they did not match."));
         }
     };
     $builder->addEventListener(FormEvents::POST_BIND, $myExtraFieldValidator4);
 }
Example #18
0
 /**
  * define form fields.
  *
  * @param FormBuilderInterface $builder
  * @param array                $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $viewToIdTransformer = new ViewToIdTransformer($this->entityManager);
     $builder->add('name', null, ['label' => 'form.article.name.label'])->add('description', null, ['label' => 'form.article.description.label', 'required' => false])->add('image', 'media', ['required' => false, 'label' => 'form.article.image.label'])->add($builder->create('blog', 'hidden', ['label' => 'form.article.blog.label'])->addModelTransformer($viewToIdTransformer))->add('template')->add('tags', 'tags', ['required' => false, 'multiple' => true])->remove('visibleOnFront');
     $builder->get('blog')->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $data = $event->getData();
         $parent = $event->getForm()->getParent();
         $this->manageCategories($data, $parent);
         $this->manageTemplate($data, $parent);
     });
     $builder->get('blog')->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
         $data = $event->getData();
         $parent = $event->getForm()->getParent();
         $this->manageCategories($data, $parent);
     });
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $data = $event->getData();
         $form = $event->getForm();
         $this->manageTags($data, $form);
     });
     $builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
         $form = $event->getForm();
         $data = $form->getData();
         $this->manageTags($data, $form);
     });
 }
Example #19
0
 /**
  * @param FormBuilderInterface $builder
  * @param array $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('parentPage', EntityIdentifierType::NAME, ['class' => $this->dataClass, 'multiple' => false])->add('title', 'text', ['label' => 'orob2b.cms.page.title.label', 'required' => true, 'constraints' => [new NotBlank()]])->add('content', OroRichTextType::NAME, ['label' => 'orob2b.cms.page.content.label', 'required' => false, 'wysiwyg_options' => ['statusbar' => true, 'resize' => true]]);
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         /** @var Page $page */
         $page = $event->getData();
         $form = $event->getForm();
         if ($page && $page->getId()) {
             $form->add('slug', SlugType::NAME, ['label' => 'orob2b.redirect.slug.entity_label', 'mapped' => false, 'type' => 'update', 'current_slug' => $page->getCurrentSlug()->getSlugUrl()]);
         } else {
             $form->add('slug', SlugType::NAME, ['label' => 'orob2b.redirect.slug.entity_label', 'mapped' => false, 'type' => 'create']);
         }
     });
     $builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) {
         $slugData = $event->getForm()->get('slug')->getData();
         /** @var Page $page */
         $page = $event->getData();
         if ($slugData['mode'] === 'new') {
             if (isset($slugData['redirect']) && $slugData['redirect']) {
                 // Leave the old slug for page. And add a new slug as current for page
                 $slug = new Slug();
                 $slug->setUrl($slugData['slug']);
                 $page->setCurrentSlug($slug);
             } else {
                 // Change current slug url
                 $page->setCurrentSlugUrl($slugData['slug']);
             }
         }
     });
 }
Example #20
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $employee = $event->getData();
         $form = $event->getForm();
         if ($employee && $employee->getId() === NULL && $this->boundlessAccess || $employee && $employee->getId() !== NULL && $this->boundedAccess) {
             $form->add('username', 'text', ['label' => 'employee.username.label', 'attr' => ['placeholder' => 'employee.username.placeholder']]);
         }
     });
     $builder->add('name', 'text', ['required' => FALSE, 'label' => 'employee.name.label', 'attr' => ['placeholder' => 'employee.name.placeholder']])->add('surname', 'text', ['required' => FALSE, 'label' => 'employee.surname.label', 'attr' => ['placeholder' => 'employee.surname.placeholder']])->add('patronymic', 'text', ['required' => FALSE, 'label' => 'employee.patronymic.label', 'attr' => ['placeholder' => 'employee.patronymic.placeholder']])->add('email', 'email', ['required' => FALSE, 'label' => 'employee.email.label', 'attr' => ['placeholder' => 'employee.email.placeholder']])->add('phoneNumber', 'text', ['required' => FALSE, 'label' => 'employee.phone_number.label', 'attr' => ['placeholder' => 'employee.phone_number.placeholder']])->add('skypeName', 'text', ['required' => FALSE, 'label' => 'employee.skype_name.label', 'attr' => ['placeholder' => 'employee.skype_name.placeholder']]);
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $employee = $event->getData();
         $form = $event->getForm();
         if ($employee && $employee->getId() !== NULL) {
             $form->add('employeeGroup', 'text', ['required' => FALSE, 'read_only' => TRUE, 'disabled' => TRUE, 'data_class' => 'AppBundle\\Entity\\Employee\\EmployeeGroup', 'label' => 'employee.employee_group.label'])->add('password', 'repeated', ['required' => FALSE, 'first_name' => "password", 'second_name' => "password_confirm", 'type' => "password", 'first_options' => ['label' => 'employee.password.label', 'attr' => ['placeholder' => 'employee.password.placeholder']], 'second_options' => ['label' => 'employee.password_confirm.label', 'attr' => ['placeholder' => 'employee.password_confirm.placeholder']]]);
             if ($this->boundedAccess) {
                 $form->add('isEnabled', 'checkbox', ['required' => FALSE, 'label' => 'employee.is_enabled.label']);
             }
             $form->add('update', 'submit', ['label' => 'common.update.label']);
             if ($this->boundlessAccess) {
                 $form->add('update_and_return', 'submit', ['label' => 'common.update_and_return.label']);
             }
         } else {
             $form->add('employeeGroup', 'entity', ['class' => "AppBundle\\Entity\\Employee\\EmployeeGroup", 'empty_data' => 0, 'choice_label' => "name", 'label' => 'employee.employee_group.label', 'empty_value' => 'common.choice.placeholder', 'invalid_message' => $this->_translator->trans('employee.employee_group.invalid_massage', [], 'validators'), 'query_builder' => function (EmployeeGroupRepository $repository) {
                 return $repository->getSubordinateRolesQuery($this->boundlessAccess);
             }])->add('password', 'repeated', ['required' => TRUE, 'first_name' => "password", 'second_name' => "password_confirm", 'type' => "password", 'first_options' => ['label' => 'employee.password.label', 'attr' => ['data-rule-required' => "true", 'data-msg-required' => $this->_translator->trans('employee.password.not_blank', [], 'validators'), 'placeholder' => 'employee.password.placeholder']], 'second_options' => ['label' => 'employee.password_confirm.label', 'attr' => ['data-rule-required' => "true", 'data-msg-required' => $this->_translator->trans('employee.password_confirm.not_blank', [], 'validators'), 'placeholder' => 'employee.password_confirm.placeholder']]])->add('create', 'submit', ['label' => 'common.create.label']);
             if ($this->boundlessAccess) {
                 $form->add('create_and_return', 'submit', ['label' => 'common.create_and_return.label']);
             }
         }
     });
 }
Example #21
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('gridName', 'hidden', ['required' => false])->add('entityClass', 'hidden', ['required' => false])->add('entityId', 'hidden', ['required' => false])->add('from', 'oro_email_email_address_from', ['required' => true, 'label' => 'oro.email.from_email_address.label', 'attr' => ['class' => 'from taggable-field']])->add('to', 'oro_email_email_address_recipients', ['required' => false, 'attr' => ['class' => 'taggable-field forged-required']])->add('cc', 'oro_email_email_address_recipients', ['required' => false, 'attr' => ['class' => 'taggable-field']])->add('bcc', 'oro_email_email_address_recipients', ['required' => false, 'attr' => ['class' => 'taggable-field']])->add('subject', 'text', ['required' => true, 'label' => 'oro.email.subject.label'])->add('body', 'oro_resizeable_rich_text', ['required' => false, 'label' => 'oro.email.email_body.label'])->add('template', 'oro_email_template_list', ['label' => 'oro.email.template.label', 'required' => false, 'depends_on_parent_field' => 'entityClass', 'configs' => ['allowClear' => true]])->add('type', 'choice', ['label' => 'oro.email.type.label', 'required' => true, 'data' => 'html', 'choices' => ['html' => 'oro.email.datagrid.emailtemplate.filter.type.html', 'txt' => 'oro.email.datagrid.emailtemplate.filter.type.txt'], 'expanded' => true])->add('attachments', 'oro_email_attachments', ['type' => 'oro_email_attachment', 'required' => false, 'allow_add' => true, 'prototype' => false, 'options' => ['required' => false]])->add('bodyFooter', 'hidden')->add('parentEmailId', 'hidden')->add('signature', 'hidden')->add('contexts', 'oro_email_contexts_select', ['label' => 'oro.email.contexts.label', 'tooltip' => 'oro.email.contexts.tooltip', 'required' => false, 'read_only' => true]);
     $builder->addEventListener(FormEvents::PRE_SET_DATA, [$this, 'initChoicesByEntityName']);
     $builder->addEventListener(FormEvents::PRE_SET_DATA, [$this, 'fillFormByTemplate']);
     $builder->addEventListener(FormEvents::PRE_SUBMIT, [$this, 'initChoicesByEntityName']);
 }
 protected function buildDeleteField(FormBuilderInterface $builder, array $options)
 {
     // add delete only if there is a file
     $storage = $this->storage;
     $translator = $this->translator;
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($options, $storage, $translator) {
         $form = $event->getForm();
         $object = $form->getParent()->getData();
         // no object or no uploaded file: no delete button
         if (null === $object || null === $storage->resolveUri($object, $form->getName())) {
             return;
         }
         $form->add('delete', $this->getFieldType('checkbox'), array('label' => $translator->trans('form.label.delete', array(), 'VichUploaderBundle'), 'required' => false, 'mapped' => false));
     });
     // delete file if needed
     $handler = $this->handler;
     $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) use($handler) {
         $delete = $event->getForm()->has('delete') ? $event->getForm()->get('delete')->getData() : false;
         $entity = $event->getForm()->getParent()->getData();
         if (!$delete) {
             return;
         }
         $handler->remove($entity, $event->getForm()->getName());
     });
 }
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('definition', 'hidden', array('required' => false));
     $factory = $builder->getFormFactory();
     $that = $this;
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($that, $factory) {
         $form = $event->getForm();
         /** @var AbstractQueryDesigner $data */
         $data = $event->getData();
         if ($data) {
             $entity = $data->getEntity();
         } else {
             $entity = null;
         }
         $that->addFields($form, $factory, $entity);
     });
     $builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) use($that, $factory) {
         $form = $event->getForm();
         /** @var AbstractQueryDesigner $data */
         $data = $event->getData();
         if ($data) {
             $entity = $data['entity'];
         } else {
             $entity = null;
         }
         $that->addFields($form, $factory, $entity);
     });
 }
Example #24
0
 /**
  * {@inheritdoc}
  *
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('folders', 'collection', ['required' => false, 'allow_add' => true, 'type' => 'oro_email_email_folder_api', 'error_bubbling' => false])->add('from', 'oro_email_email_address_api', ['required' => false])->add('to', 'oro_email_email_address_api', ['required' => false, 'multiple' => true])->add('cc', 'oro_email_email_address_api', ['required' => false, 'multiple' => true])->add('bcc', 'oro_email_email_address_api', ['required' => false, 'multiple' => true])->add('subject', 'text', ['required' => false, 'constraints' => [new Assert\Length(['max' => 500])]])->add('body', 'text', ['required' => false])->add('bodyType', 'hidden', ['required' => false, 'data_transformer' => 'oro_email.email_body_type_transformer'])->add('createdAt', 'oro_datetime', ['required' => false])->add('sentAt', 'oro_datetime', ['required' => false])->add('receivedAt', 'oro_datetime', ['required' => false])->add('internalDate', 'oro_datetime', ['required' => false])->add('importance', 'hidden', ['required' => false, 'data_transformer' => 'oro_email.email_importance_transformer'])->add('head', 'choice', ['required' => false, 'choices' => [0 => false, 1 => true]])->add('seen', 'choice', ['required' => false, 'choices' => [0 => false, 1 => true]])->add('messageId', 'text', ['required' => false, 'constraints' => [new Assert\Length(['max' => 255])]])->add('xMessageId', 'text', ['required' => false, 'constraints' => [new Assert\Length(['max' => 255])]])->add('xThreadId', 'text', ['required' => false, 'constraints' => [new Assert\Length(['max' => 255])]])->add('thread', 'oro_entity_identifier', ['required' => false, 'class' => 'OroEmailBundle:EmailThread', 'multiple' => false, 'error_bubbling' => false])->add('refs', 'text', ['required' => false]);
     $builder->addEventSubscriber(new PatchSubscriber());
     $builder->addEventListener(FormEvents::POST_SET_DATA, [$this, 'postSetData']);
     $builder->addEventListener(FormEvents::POST_SUBMIT, [$this, 'postSubmit']);
 }
 /**
  * @param FormBuilderInterface $builder
  */
 protected function addListeners(FormBuilderInterface $builder)
 {
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         /** @var ProductPrice $data */
         $data = $event->getData();
         $form = $event->getForm();
         $precision = null;
         if ($data && $data->getProduct()) {
             /** @var Product $product */
             $product = $data->getProduct();
             $precision = $this->getPrecision($product, $data->getUnit()->getCode());
         }
         $this->addQuantity($form, $precision);
     });
     $builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
         $form = $event->getForm();
         $data = $event->getData();
         $precision = null;
         if ($data && array_key_exists('unit', $data) && $form->getData()) {
             $unitCode = $data['unit'];
             /** @var Product $product */
             $product = $form->getData()->getProduct();
             $precision = $this->getPrecision($product, $unitCode);
         }
         $this->addQuantity($form, $precision, true);
     });
     $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
         /** @var ProductPrice $price */
         $price = $event->getData();
         if ($price) {
             $price->updatePrice();
         }
     });
 }
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->addModelTransformer(new TaggingTransformer($this->tagRepository, $options['delimiter']));
     $builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) use($options) {
         $tags = $event->getData();
         $event->setData(is_array($tags) ? implode($options['delimiter'], $tags) : $tags);
     });
     // TODO: BUG FIXME not work when object have no id (none persited object)
     $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
         $object = $event->getForm()->getParent()->getData();
         if (!$object instanceof TagsAwareInterface || !$object instanceof OriginContextInterface) {
             return;
         }
         $tags = $this->tagRepository->resolveWithString($event->getData()) ?: array();
         $object->setTags(null);
         /** @var TaggingInterface[] $oldTaggings */
         $oldTaggings = $this->taggingRepository->findBy(array('originAlias' => $object->getOriginalAlias(), 'originId' => $object->getId()));
         foreach ($oldTaggings as $oldTagging) {
             if (!in_array($oldTagging->getTag(), $tags)) {
                 $this->taggingRepository->getManager()->remove($oldTagging);
             }
         }
         $this->taggingRepository->getManager()->flush();
         foreach ($tags as $tag) {
             $tagging = $this->taggingRepository->findWithTagAndAlias($tag, $object, true);
             $this->originator->setOrigin($tagging, $object);
             $this->taggingRepository->add($tagging);
             $object->addTag($tag);
         }
     });
 }
Example #27
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $steam = $builder->getData();
     $builder->add('name', 'text', ['label' => 'game.name'])->add('machine', 'dedipanel_machine_entity')->add('dir', 'text', ['label' => 'game.dir'])->add('port', 'integer', ['label' => 'game.port'])->add('game', 'entity', ['label' => 'game.selectGame', 'class' => 'DPGameBundle:Game', 'query_builder' => function (GameRepository $repo) {
         return $repo->getQBAvailableSteamGames();
     }])->add('mode', 'choice', ['choices' => SteamServer::getModeList(), 'empty_value' => 'steam.chooseGameMode', 'label' => 'steam.gameMode', 'required' => false])->add('maxplayers', 'integer', ['label' => 'game.maxplayers'])->add('rconPassword', 'text', ['label' => 'game.rcon.password'])->add('svPassword', 'text', ['label' => 'steam.svPassword', 'required' => false])->add('core', 'dedipanel_core_assignment', ['machine' => $steam->getMachine()])->add('alreadyInstalled', 'dictionary', ['name' => 'yes_no', 'label' => 'game.isAlreadyInstalled', 'expanded' => true]);
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         /** @var \Symfony\Component\Form\FormInterface $form */
         $form = $event->getForm();
         /** @var \DP\GameServer\SteamServerBundle\Entity\SteamServer $steam */
         $steam = $event->getData();
         if ($steam->getId() != null && $steam->getInstallationStatus() > 100) {
             $form->add('rebootAt', 'time', ['label' => 'steam.rebootAt', 'required' => false]);
         }
     });
     $builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) {
         /** @var \Symfony\Component\Form\FormInterface $form */
         $form = $event->getForm();
         /** @var \DP\GameServer\SteamServerBundle\Entity\SteamServer $steam */
         $steam = $event->getData();
         if ($steam->getGame() !== null && $steam->getGame()->getAppId() == 740) {
             // == csgo
             $form->add('mode', 'choice', ['choices' => SteamServer::getModeList(), 'label' => 'steam.gameMode', 'empty_value' => 'steam.chooseGameMode']);
         } elseif ($steam->getGame() !== null) {
             $form->remove('mode');
         }
     });
 }
 /**
  * buildForm 
  * Grabs organization-specific class types
  * 
  * @param FormBuilderInterface $builder 
  * @param array $options 
  * @access public
  * @return void
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('organization', 'entity', array('class' => 'TSKUserBundle:Organization', 'attr' => array('class' => 'input-medium')));
     $factory = $builder->getFormFactory();
     $builder->addEventListener(FormEvents::PRE_BIND, function (FormEvent $event) use($factory) {
         $form = $event->getForm();
         $data = $event->getData();
         $organization = !empty($data['organization']) ? $data['organization'] : '';
         $school = !empty($data['school']) ? $data['school'] : '';
         if ($organization) {
             $form->add($factory->createNamed('school', 'entity', NULL, array('class' => 'TSKSchoolBundle:School', 'data' => $school, 'required' => true, 'attr' => array('class' => 'input-medium'), 'empty_value' => '-- Select School', 'query_builder' => function (EntityRepository $er) use($organization) {
                 return $er->createQueryBuilder('s')->innerJoin('s.contact', 'c', 'WITH', 'c.organization = :organization')->setParameter(':organization', $organization);
             })));
         }
     });
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($factory) {
         $form = $event->getForm();
         $data = $event->getData();
         $organization = $data->getOrganization();
         $school = $data->getSchool();
         if ($organization) {
             $form->add($factory->createNamed('school', 'entity', NULL, array('class' => 'TSK\\SchoolBundle\\Entity\\School', 'data' => $school, 'required' => true, 'empty_value' => '-- Select School', 'attr' => array('class' => 'input-medium'), 'query_builder' => function (EntityRepository $er) use($organization) {
                 return $er->createQueryBuilder('s')->innerJoin('s.contact', 'c', 'WITH', 'c.organization = :organization')->setParameter(':organization', $organization);
             })));
         }
     });
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('institution', 'entity', array('class' => 'App\\ResumeBundle\\Entity\\Institution', 'label' => false, 'required' => true, 'attr' => array('class' => 'institution-select'), 'widget_form_group' => false, 'horizontal_input_wrapper_class' => "col-sm-6 col-xs-12 institution-wrapper"))->add('otherInstitution', 'text', array('label' => false, 'required' => true, 'attr' => array('placeholder' => 'Institution name'), 'widget_form_group' => false, 'horizontal_input_wrapper_class' => 'other-institution-wrapper col-sm-6 col-xs-12 hidden', 'constraints' => array(new Length(array('max' => 100)))))->add('degree', null, array('label' => false, 'widget_form_group' => false, 'horizontal_input_wrapper_class' => "col-sm-6 col-xs-12 pull-right", 'constraints' => array(new Length(array('max' => 100)), new NotBlank()), 'attr' => array('placeholder' => 'Degree (e.g. Bachelor of Commerce) ', 'maxlength' => false)));
     // If institution is empty remove that field
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $ev) {
         $edu = $ev->getData();
         if ($edu === null) {
             return;
         }
         if ($edu->getInstitution() === null) {
             $ev->getForm()->remove('institution');
         }
     });
     // Remove institution if other institution has an error or has a value
     $builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) {
         $edu = $event->getData();
         if (!$edu->getInstitution() && !$edu->getOtherInstitution()) {
             $event->getForm()->remove('institution');
             $event->getForm()->get('otherInstitution')->addError(new FormError("Institution name is required"));
         }
         if (!$edu->getInstitution() && $edu->getOtherInstitution()) {
             $event->getForm()->remove('institution');
         }
     });
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     // You could tag the permission managers and then get them
     // here instead of hard coding ...
     $builder->add('permissionType', 'choice', array('choices' => array('admin' => 'sonata admins', 'object' => 'objects', 'route' => 'routes'), 'label' => 'Permission Type'));
     $builder->add('identity', 'tsk_identity_dropdown');
     $builder->add('identityType', 'hidden');
     $factory = $builder->getFormFactory();
     // We use a closure to populate permissions and masks for user
     $refreshPerms = function ($form, $perms) use($factory) {
         $form->add($factory->createNamed('permissions', 'collection', $perms, array('type' => 'tsk_permission_type', 'options' => array('label_attr' => array('class' => 'perm-collection')))));
     };
     //
     // Use FormEvents to add the permissions array dynamically
     //
     $builder->addEventListener(FormEvents::PRE_BIND, function (FormEvent $event) use($factory, $refreshPerms) {
         $form = $event->getForm();
         $data = $event->getData();
         if (!empty($data['identity'])) {
             $perms = $this->permissionsManager->getPermissionsForIdentity($data['identity'], $data['identityType']);
             $refreshPerms($form, $perms);
         }
     });
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($factory, $refreshPerms) {
         $form = $event->getForm();
         $data = $event->getData();
         if ($data->getIdentity()) {
             $perms = $this->permissionsManager->getPermissionsForIdentity($data->getIdentity(), $data->getIdentityType());
             $refreshPerms($form, $perms);
         }
     });
 }