Redirect to the current view instead of homepage

This commit is contained in:
Jeremy Benoist 2018-10-12 22:13:33 +02:00
parent 90a0d086a8
commit 9a57653aec
No known key found for this signature in database
GPG key ID: BCA73962457ACC3C
2 changed files with 18 additions and 19 deletions

View 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()]));

View 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