mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-26 19:11:07 +00:00
Merge pull request #1700 from delyriand/v2-fix-1551
Fix #1551 - Redirect to the last page when current page is out of range
This commit is contained in:
commit
a8c6b8ee0c
2 changed files with 19 additions and 1 deletions
|
@ -3,6 +3,7 @@
|
||||||
namespace Wallabag\CoreBundle\Controller;
|
namespace Wallabag\CoreBundle\Controller;
|
||||||
|
|
||||||
use Pagerfanta\Adapter\DoctrineORMAdapter;
|
use Pagerfanta\Adapter\DoctrineORMAdapter;
|
||||||
|
use Pagerfanta\Exception\OutOfRangeCurrentPageException;
|
||||||
use Pagerfanta\Pagerfanta;
|
use Pagerfanta\Pagerfanta;
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||||
|
@ -252,7 +253,13 @@ class EntryController extends Controller
|
||||||
$entries = new Pagerfanta($pagerAdapter);
|
$entries = new Pagerfanta($pagerAdapter);
|
||||||
|
|
||||||
$entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
|
$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(
|
return $this->render(
|
||||||
'WallabagCoreBundle:Entry:entries.html.twig',
|
'WallabagCoreBundle:Entry:entries.html.twig',
|
||||||
|
|
|
@ -216,6 +216,17 @@ class EntryControllerTest extends WallabagCoreTestCase
|
||||||
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testRangeException()
|
||||||
|
{
|
||||||
|
$this->logInAs('admin');
|
||||||
|
$client = $this->getClient();
|
||||||
|
|
||||||
|
$client->request('GET', '/all/list/900');
|
||||||
|
|
||||||
|
$this->assertEquals(302, $client->getResponse()->getStatusCode());
|
||||||
|
$this->assertEquals('/all/list', $client->getResponse()->getTargetUrl());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @depends testPostNewOk
|
* @depends testPostNewOk
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue