X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FFilter%2FEntryFilterType.php;h=771daef1799edb9c02637570a82b89877e93bbac;hb=refs%2Fpull%2F1383%2Fhead;hp=2fa2f8a08033beada4f9e36436e3373b45a68dc9;hpb=3162601c59cb07615afeebc007e157ca64c658c7;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Filter/EntryFilterType.php b/src/Wallabag/CoreBundle/Filter/EntryFilterType.php index 2fa2f8a0..771daef1 100644 --- a/src/Wallabag/CoreBundle/Filter/EntryFilterType.php +++ b/src/Wallabag/CoreBundle/Filter/EntryFilterType.php @@ -5,6 +5,7 @@ namespace Wallabag\CoreBundle\Filter; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; class EntryFilterType extends AbstractType { @@ -15,16 +16,30 @@ class EntryFilterType extends AbstractType ->add('createdAt', 'filter_date_range', array( 'left_date_options' => array( 'attr' => array( - 'placeholder' => 'dd/mm/yyyy'), + 'placeholder' => 'dd/mm/yyyy', + ), 'format' => 'dd/MM/yyyy', - 'widget' => 'single_text' + 'widget' => 'single_text', ), 'right_date_options' => array( 'attr' => array( - 'placeholder' => 'dd/mm/yyyy'), + 'placeholder' => 'dd/mm/yyyy', + ), 'format' => 'dd/MM/yyyy', - 'widget' => 'single_text' - ))); + 'widget' => 'single_text', + ), + )) + ->add('domainName', 'filter_text', array( + 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { + $value = $values['value']; + if (strlen($value) <= 3 || empty($value)) { + return; + } + $expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->literal('%'.$value.'%')); + + return $filterQuery->createCondition($expression); + }, + )); } public function getName() @@ -35,8 +50,8 @@ class EntryFilterType extends AbstractType public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( - 'csrf_protection' => false, - 'validation_groups' => array('filtering') + 'csrf_protection' => false, + 'validation_groups' => array('filtering'), )); } }