From: Nicolas LÅ“uillet Date: Tue, 12 Apr 2016 14:40:18 +0000 (+0200) Subject: Restore old behavior for OutOfRangeCurrentPageException X-Git-Tag: 2.0.2~13^2~3 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=1880da742027ec08f73e116143f2f514155ab7fd;p=github%2Fwallabag%2Fwallabag.git Restore old behavior for OutOfRangeCurrentPageException --- diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php index e6077707..cba58858 100644 --- a/src/Wallabag/CoreBundle/Controller/EntryController.php +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php @@ -3,6 +3,7 @@ namespace Wallabag\CoreBundle\Controller; use Pagerfanta\Adapter\DoctrineORMAdapter; +use Pagerfanta\Exception\OutOfRangeCurrentPageException; use Pagerfanta\Pagerfanta; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Bundle\FrameworkBundle\Controller\Controller; @@ -252,7 +253,13 @@ class EntryController extends Controller $entries = new Pagerfanta($pagerAdapter); $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage()); - $entries->setCurrentPage($page); + try { + $entries->setCurrentPage($page); + } catch (OutOfRangeCurrentPageException $e) { + if ($page > 1) { + return $this->redirect($this->generateUrl($type, array('page' => $entries->getNbPages())), 302); + } + } return $this->render( 'WallabagCoreBundle:Entry:entries.html.twig', diff --git a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php index 2d846454..a3527898 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php @@ -225,7 +225,8 @@ class EntryControllerTest extends WallabagCoreTestCase $client->request('GET', '/all/list/900'); - $this->assertEquals(404, $client->getResponse()->getStatusCode()); + $this->assertEquals(302, $client->getResponse()->getStatusCode()); + $this->assertEquals('/all/list', $client->getResponse()->getTargetUrl()); } /**