]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Redirect to the current view instead of homepage
authorJeremy Benoist <jeremy.benoist@gmail.com>
Fri, 12 Oct 2018 20:13:33 +0000 (22:13 +0200)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Sat, 19 Jan 2019 20:10:16 +0000 (21:10 +0100)
src/Wallabag/CoreBundle/Controller/EntryController.php
src/Wallabag/CoreBundle/Repository/EntryRepository.php

index ab50ebdfdf7550f82f09a83e2bf74d64743c3e66..dfb5eb5490c2ad502015238abaea05e6dd985a9e 100644 (file)
@@ -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()]));
index 0556307918c87a9fc6b27644a870ab25da37fc19..879e66719a60ef39d561d5f65424c8d2a7da96a6 100644 (file)
@@ -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