]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge pull request #1418 from wallabag/v2-previewpicture-filter
authorJeremy Benoist <j0k3r@users.noreply.github.com>
Sun, 13 Sep 2015 08:14:42 +0000 (10:14 +0200)
committerJeremy Benoist <j0k3r@users.noreply.github.com>
Sun, 13 Sep 2015 08:14:42 +0000 (10:14 +0200)
filter for entries with previewPicture

src/Wallabag/CoreBundle/Filter/EntryFilterType.php
src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php

index 85d1a0610c1e576fc40947bbf336c44695c0a922..de95eed96ca82a4ee15bfcdfed02e1b482f500bd 100644 (file)
@@ -39,10 +39,21 @@ class EntryFilterType extends AbstractType
                         $expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->literal('%'.$value.'%'));
 
                         return $filterQuery->createCondition($expression);
-                    },
+                },
             ))
             ->add('isArchived', 'filter_checkbox')
-            ->add('isStarred', 'filter_checkbox');
+            ->add('isStarred', 'filter_checkbox')
+            ->add('previewPicture', 'filter_checkbox', array(
+                'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
+                    if (false === $values['value']) {
+                        return;
+                    }
+
+                    $expression = $filterQuery->getExpr()->isNotNull($field);
+
+                    return $filterQuery->createCondition($expression);
+                },
+            ));
     }
 
     public function getName()
index 1ecaecc56a901fe7bf5593df67097ff420394b4c..89182d98f3b2f5dde6926b00149dc30d8114537d 100644 (file)
                 <div class="col s12">
                     <label>{% trans %}Status{% endtrans %}</label>
                 </div>
+
+                <div class="input-field col s6">
+                    {{ form_widget(form.previewPicture) }}
+                    <label for="entry_filter_previewPicture">{% trans %}Has a preview picture{% endtrans %}</label>
+                </div>
+
                 <div class="input-field col s6">
                     {{ form_widget(form.isArchived) }}
                     <label for="entry_filter_isArchived">{% trans %}Archived{% endtrans %}</label>
index a92835b3162b6072014e08e15a123227e376f64f..77b57884679d0dbd0651ed37ce27ae9ba799908c 100644 (file)
@@ -369,4 +369,17 @@ class EntryControllerTest extends WallabagCoreTestCase
         $crawler = $client->submit($form);
         $this->assertCount(2, $crawler->filter('div[class=entry]'));
     }
+
+    public function testPreviewPictureFilter()
+    {
+        $this->logInAs('admin');
+        $client = $this->getClient();
+
+        $crawler = $client->request('GET', '/unread/list');
+        $form = $crawler->filter('button[id=submit-filter]')->form();
+        $form['entry_filter[previewPicture]']->tick();
+
+        $crawler = $client->submit($form);
+        $this->assertCount(1, $crawler->filter('div[class=entry]'));
+    }
 }