Merge pull request #3076 from wallabag/hotfix/2979
Disable negative numbers in filters
This commit is contained in:
commit
a2ae05a61c
@ -3,6 +3,7 @@
|
|||||||
namespace Wallabag\CoreBundle\Form\Type;
|
namespace Wallabag\CoreBundle\Form\Type;
|
||||||
|
|
||||||
use Doctrine\ORM\EntityRepository;
|
use Doctrine\ORM\EntityRepository;
|
||||||
|
use Lexik\Bundle\FormFilterBundle\Filter\FilterOperands;
|
||||||
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
|
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
|
||||||
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\NumberRangeFilterType;
|
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\NumberRangeFilterType;
|
||||||
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\DateRangeFilterType;
|
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\DateRangeFilterType;
|
||||||
@ -33,7 +34,7 @@ class EntryFilterType extends AbstractType
|
|||||||
$this->user = $tokenStorage->getToken() ? $tokenStorage->getToken()->getUser() : null;
|
$this->user = $tokenStorage->getToken() ? $tokenStorage->getToken()->getUser() : null;
|
||||||
|
|
||||||
if (null === $this->user || !is_object($this->user)) {
|
if (null === $this->user || !is_object($this->user)) {
|
||||||
return null;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,6 +42,14 @@ class EntryFilterType extends AbstractType
|
|||||||
{
|
{
|
||||||
$builder
|
$builder
|
||||||
->add('readingTime', NumberRangeFilterType::class, [
|
->add('readingTime', NumberRangeFilterType::class, [
|
||||||
|
'left_number_options' => [
|
||||||
|
'condition_operator' => FilterOperands::OPERATOR_GREATER_THAN_EQUAL,
|
||||||
|
'attr' => ['min' => 0],
|
||||||
|
],
|
||||||
|
'right_number_options' => [
|
||||||
|
'condition_operator' => FilterOperands::OPERATOR_LOWER_THAN_EQUAL,
|
||||||
|
'attr' => ['min' => 0],
|
||||||
|
],
|
||||||
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
|
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
|
||||||
$lower = $values['value']['left_number'][0];
|
$lower = $values['value']['left_number'][0];
|
||||||
$upper = $values['value']['right_number'][0];
|
$upper = $values['value']['right_number'][0];
|
||||||
|
@ -591,6 +591,26 @@ class EntryControllerTest extends WallabagCoreTestCase
|
|||||||
$this->assertCount(1, $crawler->filter('div[class=entry]'));
|
$this->assertCount(1, $crawler->filter('div[class=entry]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testFilterOnReadingTimeWithNegativeValue()
|
||||||
|
{
|
||||||
|
$this->logInAs('admin');
|
||||||
|
$client = $this->getClient();
|
||||||
|
|
||||||
|
$crawler = $client->request('GET', '/unread/list');
|
||||||
|
|
||||||
|
$form = $crawler->filter('button[id=submit-filter]')->form();
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'entry_filter[readingTime][right_number]' => -22,
|
||||||
|
'entry_filter[readingTime][left_number]' => -22,
|
||||||
|
];
|
||||||
|
|
||||||
|
$crawler = $client->submit($form, $data);
|
||||||
|
|
||||||
|
// forcing negative value results in no entry displayed
|
||||||
|
$this->assertCount(0, $crawler->filter('div[class=entry]'));
|
||||||
|
}
|
||||||
|
|
||||||
public function testFilterOnReadingTimeOnlyUpper()
|
public function testFilterOnReadingTimeOnlyUpper()
|
||||||
{
|
{
|
||||||
$this->logInAs('admin');
|
$this->logInAs('admin');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user