diff options
author | Jeremy Benoist <j0k3r@users.noreply.github.com> | 2015-09-13 10:14:42 +0200 |
---|---|---|
committer | Jeremy Benoist <j0k3r@users.noreply.github.com> | 2015-09-13 10:14:42 +0200 |
commit | 40f59b219bfd438bdaf4f36227a43f2b674ece00 (patch) | |
tree | 5b882749cea7003f049940fccdfd4cb990c538a9 | |
parent | fb96ea884532e9804194afd92a98c5c6aecc177e (diff) | |
parent | 497e0cad7ca2d2e771c8d41f7bc50ab2bc222cdb (diff) | |
download | wallabag-40f59b219bfd438bdaf4f36227a43f2b674ece00.tar.gz wallabag-40f59b219bfd438bdaf4f36227a43f2b674ece00.tar.zst wallabag-40f59b219bfd438bdaf4f36227a43f2b674ece00.zip |
Merge pull request #1418 from wallabag/v2-previewpicture-filter
filter for entries with previewPicture
3 files changed, 32 insertions, 2 deletions
diff --git a/src/Wallabag/CoreBundle/Filter/EntryFilterType.php b/src/Wallabag/CoreBundle/Filter/EntryFilterType.php index 85d1a061..de95eed9 100644 --- a/src/Wallabag/CoreBundle/Filter/EntryFilterType.php +++ b/src/Wallabag/CoreBundle/Filter/EntryFilterType.php | |||
@@ -39,10 +39,21 @@ class EntryFilterType extends AbstractType | |||
39 | $expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->literal('%'.$value.'%')); | 39 | $expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->literal('%'.$value.'%')); |
40 | 40 | ||
41 | return $filterQuery->createCondition($expression); | 41 | return $filterQuery->createCondition($expression); |
42 | }, | 42 | }, |
43 | )) | 43 | )) |
44 | ->add('isArchived', 'filter_checkbox') | 44 | ->add('isArchived', 'filter_checkbox') |
45 | ->add('isStarred', 'filter_checkbox'); | 45 | ->add('isStarred', 'filter_checkbox') |
46 | ->add('previewPicture', 'filter_checkbox', array( | ||
47 | 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { | ||
48 | if (false === $values['value']) { | ||
49 | return; | ||
50 | } | ||
51 | |||
52 | $expression = $filterQuery->getExpr()->isNotNull($field); | ||
53 | |||
54 | return $filterQuery->createCondition($expression); | ||
55 | }, | ||
56 | )); | ||
46 | } | 57 | } |
47 | 58 | ||
48 | public function getName() | 59 | public function getName() |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig index 1ecaecc5..89182d98 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig | |||
@@ -70,6 +70,12 @@ | |||
70 | <div class="col s12"> | 70 | <div class="col s12"> |
71 | <label>{% trans %}Status{% endtrans %}</label> | 71 | <label>{% trans %}Status{% endtrans %}</label> |
72 | </div> | 72 | </div> |
73 | |||
74 | <div class="input-field col s6"> | ||
75 | {{ form_widget(form.previewPicture) }} | ||
76 | <label for="entry_filter_previewPicture">{% trans %}Has a preview picture{% endtrans %}</label> | ||
77 | </div> | ||
78 | |||
73 | <div class="input-field col s6"> | 79 | <div class="input-field col s6"> |
74 | {{ form_widget(form.isArchived) }} | 80 | {{ form_widget(form.isArchived) }} |
75 | <label for="entry_filter_isArchived">{% trans %}Archived{% endtrans %}</label> | 81 | <label for="entry_filter_isArchived">{% trans %}Archived{% endtrans %}</label> |
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php index a92835b3..77b57884 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php | |||
@@ -369,4 +369,17 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
369 | $crawler = $client->submit($form); | 369 | $crawler = $client->submit($form); |
370 | $this->assertCount(2, $crawler->filter('div[class=entry]')); | 370 | $this->assertCount(2, $crawler->filter('div[class=entry]')); |
371 | } | 371 | } |
372 | |||
373 | public function testPreviewPictureFilter() | ||
374 | { | ||
375 | $this->logInAs('admin'); | ||
376 | $client = $this->getClient(); | ||
377 | |||
378 | $crawler = $client->request('GET', '/unread/list'); | ||
379 | $form = $crawler->filter('button[id=submit-filter]')->form(); | ||
380 | $form['entry_filter[previewPicture]']->tick(); | ||
381 | |||
382 | $crawler = $client->submit($form); | ||
383 | $this->assertCount(1, $crawler->filter('div[class=entry]')); | ||
384 | } | ||
372 | } | 385 | } |