From 9a57653aec85b0f5220436d5cb76545e66c24a11 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Fri, 12 Oct 2018 22:13:33 +0200 Subject: [PATCH] Redirect to the current view instead of homepage --- .../CoreBundle/Controller/EntryController.php | 4 +-- .../CoreBundle/Repository/EntryRepository.php | 33 +++++++++---------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php index ab50ebdf..dfb5eb54 100644 --- a/src/Wallabag/CoreBundle/Controller/EntryController.php +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php @@ -251,7 +251,7 @@ class EntryController extends Controller /** * Shows random entry depending on the given type. * - * @param Entry $entry + * @param string $type * * @Route("/{type}/random", name="random_entry", requirements={"_locale": "unread|starred|archive|untagged|all"}) * @@ -267,7 +267,7 @@ class EntryController extends Controller $bag->clear(); $bag->add('notice', 'flashes.entry.notice.no_random_entry'); - return $this->redirect($this->generateUrl('homepage')); + return $this->redirect($this->generateUrl($type)); } return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()])); diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php index 05563079..879e6671 100644 --- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php +++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php @@ -435,7 +435,7 @@ class EntryRepository extends EntityRepository * Returns a random entry, filtering by status. * * @param $userId - * @param string $status can be unread, archive or starred + * @param string $type can be unread, archive, starred, etc * * @throws \Doctrine\ORM\NoResultException * @throws \Doctrine\ORM\NonUniqueResultException @@ -444,26 +444,25 @@ class EntryRepository extends EntityRepository * * @return Entry */ - public function getRandomEntry($userId, $status = '') + public function getRandomEntry($userId, $type = '') { $qb = $this->getQueryBuilderByUser($userId) ->select('MIN(e.id)', 'MAX(e.id)'); - if ('unread' === $status) { - $qb->andWhere('e.isArchived = false'); - } - - if ('archive' === $status) { - $qb->andWhere('e.isArchived = true'); - } - - if ('starred' === $status) { - $qb->andWhere('e.isStarred = true'); - } - - if ('untagged' === $status) { - $qb->leftJoin('e.tags', 't'); - $qb->andWhere('t.id is null'); + switch ($type) { + case 'unread': + $qb->andWhere('e.isArchived = false'); + break; + case 'archive': + $qb->andWhere('e.isArchived = true'); + break; + case 'starred': + $qb->andWhere('e.isStarred = true'); + break; + case 'untagged': + $qb->leftJoin('e.tags', 't'); + $qb->andWhere('t.id is null'); + break; } $idLimits = $qb -- 2.41.0