vendor/sylius/grid-bundle/src/Bundle/Form/Type/Filter/StringFilterType.php line 23

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Sylius package.
  4.  *
  5.  * (c) Sylius Sp. z o.o.
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. declare(strict_types=1);
  11. namespace Sylius\Bundle\GridBundle\Form\Type\Filter;
  12. use Sylius\Component\Grid\Filter\StringFilter;
  13. use Symfony\Component\Form\AbstractType;
  14. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  15. use Symfony\Component\Form\Extension\Core\Type\TextType;
  16. use Symfony\Component\Form\FormBuilderInterface;
  17. use Symfony\Component\OptionsResolver\OptionsResolver;
  18. final class StringFilterType extends AbstractType
  19. {
  20.     public function buildForm(FormBuilderInterface $builder, array $options): void
  21.     {
  22.         if (!isset($options['type'])) {
  23.             $builder
  24.                 ->add('type'ChoiceType::class, [
  25.                     'choices' => [
  26.                         'sylius.ui.contains' => StringFilter::TYPE_CONTAINS,
  27.                         'sylius.ui.not_contains' => StringFilter::TYPE_NOT_CONTAINS,
  28.                         'sylius.ui.equal' => StringFilter::TYPE_EQUAL,
  29.                         'sylius.ui.not_equal' => StringFilter::TYPE_NOT_EQUAL,
  30.                         'sylius.ui.empty' => StringFilter::TYPE_EMPTY,
  31.                         'sylius.ui.not_empty' => StringFilter::TYPE_NOT_EMPTY,
  32.                         'sylius.ui.starts_with' => StringFilter::TYPE_STARTS_WITH,
  33.                         'sylius.ui.ends_with' => StringFilter::TYPE_ENDS_WITH,
  34.                         'sylius.ui.in' => StringFilter::TYPE_IN,
  35.                         'sylius.ui.not_in' => StringFilter::TYPE_NOT_IN,
  36.                     ],
  37.                 ])
  38.             ;
  39.         }
  40.         $builder
  41.             ->add('value'TextType::class, [
  42.                 'required' => false,
  43.                 'label' => 'sylius.ui.value',
  44.             ])
  45.         ;
  46.     }
  47.     public function configureOptions(OptionsResolver $resolver): void
  48.     {
  49.         $resolver
  50.             ->setDefaults([
  51.                 'data_class' => null,
  52.             ])
  53.             ->setDefined('type')
  54.             ->setAllowedValues('type', [
  55.                 StringFilter::TYPE_CONTAINS,
  56.                 StringFilter::TYPE_NOT_CONTAINS,
  57.                 StringFilter::TYPE_EQUAL,
  58.                 StringFilter::TYPE_NOT_EQUAL,
  59.                 StringFilter::TYPE_EMPTY,
  60.                 StringFilter::TYPE_NOT_EMPTY,
  61.                 StringFilter::TYPE_STARTS_WITH,
  62.                 StringFilter::TYPE_ENDS_WITH,
  63.                 StringFilter::TYPE_IN,
  64.                 StringFilter::TYPE_NOT_IN,
  65.             ])
  66.         ;
  67.     }
  68.     public function getBlockPrefix(): string
  69.     {
  70.         return 'sylius_grid_filter_string';
  71.     }
  72. }