From 136f710ddb48f01e24892c5d2dde3b1f3a069fc4 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Fri, 7 Jun 2019 17:58:11 +0200 Subject: Fix sort --- src/Wallabag/CoreBundle/Repository/EntryRepository.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/Wallabag/CoreBundle/Repository') diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php index cf1cdb8a..aa761df3 100644 --- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php +++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php @@ -24,6 +24,8 @@ class EntryRepository extends EntityRepository */ public function getBuilderForAllByUser($userId, $sortBy = 'id', $direction = 'DESC') { + $sortBy = $sortBy ?: 'id'; + return $this ->getSortedQueryBuilderByUser($userId, $sortBy, $direction) ; @@ -40,6 +42,8 @@ class EntryRepository extends EntityRepository */ public function getBuilderForUnreadByUser($userId, $sortBy = 'id', $direction = 'DESC') { + $sortBy = $sortBy ?: 'id'; + return $this ->getSortedQueryBuilderByUser($userId, $sortBy, $direction) ->andWhere('e.isArchived = false') @@ -57,6 +61,8 @@ class EntryRepository extends EntityRepository */ public function getBuilderForArchiveByUser($userId, $sortBy = 'archivedAt', $direction = 'DESC') { + $sortBy = $sortBy ?: 'archivedAt'; + return $this ->getSortedQueryBuilderByUser($userId, $sortBy, $direction) ->andWhere('e.isArchived = true') @@ -74,6 +80,8 @@ class EntryRepository extends EntityRepository */ public function getBuilderForStarredByUser($userId, $sortBy = 'starredAt', $direction = 'DESC') { + $sortBy = $sortBy ?: 'starredAt'; + return $this ->getSortedQueryBuilderByUser($userId, $sortBy, $direction) ->andWhere('e.isStarred = true') @@ -579,6 +587,11 @@ class EntryRepository extends EntityRepository */ private function sortQueryBuilder(QueryBuilder $qb, $sortBy = 'createdAt', $direction = 'desc') { - return $qb->orderBy(sprintf('e.%s', $sortBy), $direction); + // in case one of these isn't defined, don't apply the orderBy + if (!$sortBy || !$direction) { + return $qb; + } + + return $qb->orderBy(sprintf('e.%s', $sortBy), strtoupper($direction)); } } -- cgit v1.2.3