X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FFilter%2FEntryFilterType.php;h=f40c1c2d4b568a1c8af605c57cd29382f2c4d691;hb=57162494557c5eac938a7d6800ac1b112f73efc9;hp=11c69abdf9ea4f21ef6083fda665636ecf46b796;hpb=616f9fea26af9d9c9dd6134388811c120f1e9656;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Filter/EntryFilterType.php b/src/Wallabag/CoreBundle/Filter/EntryFilterType.php index 11c69abd..f40c1c2d 100644 --- a/src/Wallabag/CoreBundle/Filter/EntryFilterType.php +++ b/src/Wallabag/CoreBundle/Filter/EntryFilterType.php @@ -6,9 +6,26 @@ use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; +use Doctrine\ORM\EntityRepository; +use Wallabag\CoreBundle\Entity\User; class EntryFilterType extends AbstractType { + private $user; + private $repository; + + /** + * Repository & user are used to get a list of language entries for this user + * + * @param EntityRepository $entryRepository + * @param User $user + */ + public function __construct(EntityRepository $entryRepository, User $user) + { + $this->repository = $entryRepository; + $this->user = $user; + } + public function buildForm(FormBuilderInterface $builder, array $options) { $builder @@ -33,7 +50,7 @@ class EntryFilterType extends AbstractType ->add('domainName', 'filter_text', array( 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { $value = $values['value']; - if (strlen($value) <= 3 || empty($value)) { + if (strlen($value) <= 2 || empty($value)) { return; } $expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->literal('%'.$value.'%')); @@ -45,9 +62,7 @@ class EntryFilterType extends AbstractType ->add('isStarred', 'filter_checkbox') ->add('previewPicture', 'filter_checkbox', array( 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { - $value = $values['value']; - - if (false === $value) { + if (false === $values['value']) { return; } @@ -55,7 +70,11 @@ class EntryFilterType extends AbstractType return $filterQuery->createCondition($expression); }, - )); + )) + ->add('language', 'filter_choice', array( + 'choices' => $this->repository->findDistinctLanguageByUser($this->user->getId()), + )) + ; } public function getName()