/**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $entity = $options['entity'];
     $view = $options['view'];
     $entityConfig = $this->configurator->getEntityConfiguration($entity);
     $entityProperties = $entityConfig[$view]['fields'];
     foreach ($entityProperties as $name => $metadata) {
         $formFieldOptions = $metadata['type_options'];
         if ('association' === $metadata['type']) {
             if ($metadata['associationType'] & ClassMetadata::TO_MANY) {
                 $formFieldOptions['attr']['multiple'] = true;
             }
             // supported associations are displayed using advanced JavaScript widgets
             $formFieldOptions['attr']['data-widget'] = 'select2';
         }
         if ('collection' === $metadata['fieldType']) {
             if (!isset($formFieldOptions['allow_add'])) {
                 $formFieldOptions['allow_add'] = true;
             }
             if (!isset($formFieldOptions['allow_delete'])) {
                 $formFieldOptions['allow_delete'] = true;
             }
             // The "delete_empty" option exists as of Sf >= 2.5
             if (class_exists('Symfony\\Component\\Form\\FormErrorIterator')) {
                 if (!isset($formFieldOptions['delete_empty'])) {
                     $formFieldOptions['delete_empty'] = true;
                 }
             }
         } elseif ('checkbox' === $metadata['fieldType'] && !isset($formFieldOptions['required'])) {
             $formFieldOptions['required'] = false;
         }
         if (!isset($formFieldOptions['required'])) {
             if (null !== ($guessRequired = $this->guesser->guessRequired($builder->getOption('data_class'), $name))) {
                 $formFieldOptions['required'] = $guessRequired->getValue();
             }
         }
         // Configure "placeholder" option for entity fields
         if ('association' === $metadata['type'] && $metadata['associationType'] & ClassMetadata::TO_ONE && !isset($formFieldOptions[$placeHolderOptionName = $this->getPlaceholderOptionName()]) && false === $formFieldOptions['required']) {
             $formFieldOptions[$placeHolderOptionName] = 'form.label.empty_value';
         }
         $formFieldOptions['attr']['field_type'] = $metadata['fieldType'];
         $formFieldOptions['attr']['field_css_class'] = $metadata['class'];
         $formFieldOptions['attr']['field_help'] = $metadata['help'];
         $formFieldType = $this->useLegacyFormComponent() ? $metadata['fieldType'] : $this->getFormTypeFqcn($metadata['fieldType']);
         $builder->add($name, $formFieldType, $formFieldOptions);
     }
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('username', null, array('read_only' => 'true'));
     $builder->add('email', 'email', array('label' => 'form.email', 'read_only' => 'true', 'translation_domain' => 'FOSUserBundle'));
     $builder->add('firstName', 'text', array('label' => 'form.firstName', 'read_only' => 'true', 'translation_domain' => 'FOSUserBundle'));
     $builder->add('surname', 'text', array('label' => 'form.surname', 'read_only' => 'true', 'translation_domain' => 'FOSUserBundle'));
     $builder->add('birthdate', 'birthday', array('required' => false, 'read_only' => 'true', 'format' => 'yyyy-MM-dd', 'widget' => 'single_text', 'label' => 'form.birthdate', 'translation_domain' => 'FOSUserBundle'));
     $builder->add('mobile', null, array('required' => false, 'read_only' => 'true', 'label' => 'form.mobile', 'translation_domain' => 'FOSUserBundle'));
     $user = $this->getUser();
     $allRoles = $this->translateRoles($builder->getOption('available_roles'));
     $securityHelper = $this->securityHelper;
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($user, $allRoles, $securityHelper) {
         $person = $event->getData();
         $form = PersonResumeFormType::populateCountryStateCity($person, $event->getForm());
         $roles = PersonResumeFormType::filterRoles($person, $form, $allRoles, $securityHelper);
     });
 }
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $entity = $options['entity'];
     $view = $options['view'];
     $entityConfig = $this->configurator->getEntityConfiguration($entity);
     $entityProperties = $entityConfig[$view]['fields'];
     foreach ($entityProperties as $name => $metadata) {
         $formFieldOptions = $metadata['type_options'];
         if ('association' === $metadata['type']) {
             $toManyAssociations = array(ClassMetadata::ONE_TO_MANY, ClassMetadata::MANY_TO_MANY);
             if (in_array($metadata['associationType'], $toManyAssociations)) {
                 $formFieldOptions['attr']['multiple'] = true;
             }
             // supported associations are displayed using advanced JavaScript widgets
             $formFieldOptions['attr']['data-widget'] = 'select2';
         }
         if ('collection' === $metadata['fieldType']) {
             if (!isset($formFieldOptions['allow_add'])) {
                 $formFieldOptions['allow_add'] = true;
             }
             if (!isset($formFieldOptions['allow_delete'])) {
                 $formFieldOptions['allow_delete'] = true;
             }
             if (version_compare(Kernel::VERSION, '2.5.0', '>=')) {
                 if (!isset($formFieldOptions['delete_empty'])) {
                     $formFieldOptions['delete_empty'] = true;
                 }
             }
         } elseif ('checkbox' === $metadata['fieldType'] && !isset($formFieldOptions['required'])) {
             $formFieldOptions['required'] = false;
         }
         if (!isset($formFieldOptions['required'])) {
             if (null !== ($guessRequired = $this->guesser->guessRequired($builder->getOption('data_class'), $name))) {
                 $formFieldOptions['required'] = $guessRequired->getValue();
             }
         }
         $formFieldOptions['attr']['field_type'] = $metadata['fieldType'];
         $formFieldOptions['attr']['field_css_class'] = $metadata['class'];
         $formFieldOptions['attr']['field_help'] = $metadata['help'];
         $formFieldType = $this->useLegacyFormComponent() ? $metadata['fieldType'] : $this->getFormTypeFqcn($metadata['fieldType']);
         $builder->add($name, $formFieldType, $formFieldOptions);
     }
 }
 /**
  * Assert that the form element has an inner type of type $typeClass and
  * the specified options with their values.
  *
  * @param FormBuilderInterface $element
  * @param string               $typeClass FQN class
  * @param array                $options   keys are option names, values the
  *                                        expected option values
  */
 private function assertFormType(FormBuilderInterface $element, $typeClass, array $options)
 {
     $type = $element->getType()->getInnerType();
     $this->assertInstanceOf($typeClass, $type);
     foreach ($options as $option => $expected) {
         $this->assertEquals($expected, $element->getOption($option), "Option '{$option}' does not have the expected value '" . serialize($expected) . "'");
     }
 }
 /**
  * @param mixed $data
  * @param FormBuilderInterface $form
  * @return array
  */
 public function fillDefaultData($data, FormBuilderInterface $form)
 {
     if (!$data) {
         $data = [];
     }
     foreach ($this->getLocales() as $locale) {
         $localeId = $locale->getId();
         if (!array_key_exists($localeId, $data)) {
             if ($locale->getParentLocale()) {
                 $data[$localeId] = new FallbackType(FallbackType::PARENT_LOCALE);
             } else {
                 $data[$localeId] = new FallbackType(FallbackType::SYSTEM);
             }
             if ($form->hasOption('default_callback')) {
                 /** @var \Closure $defaultCallback */
                 $defaultCallback = $form->getOption('default_callback');
                 $data[$localeId] = $defaultCallback($data[$localeId]);
             }
         }
     }
     return $data;
 }
Exemplo n.º 6
0
 /**
  * @param FormBuilderInterface $builder
  *
  * @return FormBuilderInterface
  */
 private function createPositionTab(FormBuilderInterface $builder)
 {
     $source = $builder->getOption('router')->generate('clastic_backoffice_menu_item_tree', ['menuId' => $builder->getData()->getMenu()->getId()]);
     return $this->createTab($builder, 'position_tab', ['label' => 'Position'])->add('position', TreeType::class, ['source' => $source]);
 }
Exemplo n.º 7
0
 /**
  * @param FormBuilderInterface $builder
  * @param array $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $label = $builder->getOption('label', false);
     $builder->add('name', null, ['label' => $label ? 'Nazwa pojazdu' : false, 'attr' => ['placeholder' => 'Nazwa pojazdu']])->add('photoUrl', UrlType::class, ['label' => $label ? 'URL obrazka' : false, 'attr' => ['placeholder' => 'Podaj adres URL obrazka']])->add('description', TextareaType::class, ['label' => $label ? 'Opsi pojazdu' : false, 'attr' => ['placeholder' => 'Podaj opis pojazdu']])->add('brand', null, ['label' => $label ? 'Marka pojazdu' : false, 'attr' => ['placeholder' => 'Marka pojazdu']])->add('engine', null, ['label' => $label ? 'Silnik pojazdu' : false, 'attr' => ['placeholder' => 'Moc silnika']])->add('year', null, ['label' => $label ? 'Rok produkcji' : false, 'attr' => ['placeholder' => 'Rok produkcji']])->add('amount', null, ['label' => $label ? 'Ilośc dostępnych pojazdów' : false, 'attr' => ['placeholder' => 'Ilość dostępnych pojazdów']])->add('price', null, ['label' => $label ? 'Koszt wynajmu' : false, 'attr' => ['placeholder' => 'Koszt wynajmu (jeden dzień)']]);
 }