From 2bb883219c55c815a1bcf522dafd696a7df3757e Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 21 Apr 2016 09:10:37 +0200 Subject: [PATCH] Take page size into account. --- app/Http/Controllers/CategoryController.php | 5 +++-- app/Repositories/Category/SingleCategoryRepository.php | 10 ++++++---- .../Category/SingleCategoryRepositoryInterface.php | 7 ++++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php index 7848cf2529..6b1456a5fa 100644 --- a/app/Http/Controllers/CategoryController.php +++ b/app/Http/Controllers/CategoryController.php @@ -226,10 +226,11 @@ class CategoryController extends Controller $hideCategory = true; // used in list. $page = intval(Input::get('page')); + $pageSize = Preferences::get('transactionPageSize', 50)->data; - $set = $repository->getJournalsInRange($category, $page, $start, $end); + $set = $repository->getJournalsInRange($category, $start, $end, $page, $pageSize); $count = $repository->countJournalsInRange($category, $start, $end); - $journals = new LengthAwarePaginator($set, $count, 50, $page); + $journals = new LengthAwarePaginator($set, $count, $pageSize, $page); $journals->setPath('categories/show/' . $category->id . '/' . $date); return view('categories.show_with_date', compact('category', 'journals', 'hideCategory', 'subTitle', 'carbon')); diff --git a/app/Repositories/Category/SingleCategoryRepository.php b/app/Repositories/Category/SingleCategoryRepository.php index 4025ada2ca..57509641c9 100644 --- a/app/Repositories/Category/SingleCategoryRepository.php +++ b/app/Repositories/Category/SingleCategoryRepository.php @@ -178,21 +178,23 @@ class SingleCategoryRepository extends ComponentRepository implements SingleCate /** * @param Category $category - * @param int $page * @param Carbon $start * @param Carbon $end + * @param int $page + * @param int $pageSize + * * * @return Collection */ - public function getJournalsInRange(Category $category, $page, Carbon $start, Carbon $end): Collection + public function getJournalsInRange(Category $category, Carbon $start, Carbon $end, int $page, int $pageSize = 50): Collection { - $offset = $page > 0 ? $page * 50 : 0; + $offset = $page > 0 ? $page * $pageSize : 0; return $category->transactionjournals() ->after($start) ->before($end) ->expanded() - ->take(50) + ->take($pageSize) ->offset($offset) ->get(TransactionJournal::QUERYFIELDS); } diff --git a/app/Repositories/Category/SingleCategoryRepositoryInterface.php b/app/Repositories/Category/SingleCategoryRepositoryInterface.php index 7219b8980c..011fc522a1 100644 --- a/app/Repositories/Category/SingleCategoryRepositoryInterface.php +++ b/app/Repositories/Category/SingleCategoryRepositoryInterface.php @@ -93,14 +93,15 @@ interface SingleCategoryRepositoryInterface /** * @param Category $category - * @param int $page - * * @param Carbon $start * @param Carbon $end + * @param int $page + * @param int $pageSize + * * * @return Collection */ - public function getJournalsInRange(Category $category, $page, Carbon $start, Carbon $end): Collection; + public function getJournalsInRange(Category $category, Carbon $start, Carbon $end, int $page, int $pageSize = 50): Collection; /** * @param Category $category