diff options
Diffstat (limited to 'src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php')
-rw-r--r-- | src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php b/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php index a3e36fdd..ee66c728 100644 --- a/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php +++ b/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php | |||
@@ -11,6 +11,7 @@ use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\CheckboxFilterType; | |||
11 | use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\ChoiceFilterType; | 11 | use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\ChoiceFilterType; |
12 | use Symfony\Component\Form\AbstractType; | 12 | use Symfony\Component\Form\AbstractType; |
13 | use Symfony\Component\Form\FormBuilderInterface; | 13 | use Symfony\Component\Form\FormBuilderInterface; |
14 | use Symfony\Component\HttpFoundation\Response; | ||
14 | use Symfony\Component\OptionsResolver\OptionsResolver; | 15 | use Symfony\Component\OptionsResolver\OptionsResolver; |
15 | use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; | 16 | use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; |
16 | 17 | ||
@@ -89,12 +90,27 @@ class EntryFilterType extends AbstractType | |||
89 | if (strlen($value) <= 2 || empty($value)) { | 90 | if (strlen($value) <= 2 || empty($value)) { |
90 | return; | 91 | return; |
91 | } | 92 | } |
92 | $expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->literal('%'.$value.'%')); | 93 | $expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->lower($filterQuery->getExpr()->literal('%'.$value.'%'))); |
93 | 94 | ||
94 | return $filterQuery->createCondition($expression); | 95 | return $filterQuery->createCondition($expression); |
95 | }, | 96 | }, |
96 | 'label' => 'entry.filters.domain_label', | 97 | 'label' => 'entry.filters.domain_label', |
97 | ]) | 98 | ]) |
99 | ->add('httpStatus', TextFilterType::class, [ | ||
100 | 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { | ||
101 | $value = $values['value']; | ||
102 | if (false === array_key_exists($value, Response::$statusTexts)) { | ||
103 | return; | ||
104 | } | ||
105 | |||
106 | $paramName = sprintf('%s', str_replace('.', '_', $field)); | ||
107 | $expression = $filterQuery->getExpr()->eq($field, ':'.$paramName); | ||
108 | $parameters = array($paramName => $value); | ||
109 | |||
110 | return $filterQuery->createCondition($expression, $parameters); | ||
111 | }, | ||
112 | 'label' => 'entry.filters.http_status_label', | ||
113 | ]) | ||
98 | ->add('isArchived', CheckboxFilterType::class, [ | 114 | ->add('isArchived', CheckboxFilterType::class, [ |
99 | 'label' => 'entry.filters.archived_label', | 115 | 'label' => 'entry.filters.archived_label', |
100 | ]) | 116 | ]) |