mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-18 02:03:40 +00:00
Recurring transactions support pagination.
This commit is contained in:
@@ -31,6 +31,8 @@ use FireflyIII\Models\Recurrence;
|
||||
use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface;
|
||||
use FireflyIII\Transformers\RecurrenceTransformer;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Support\Collection;
|
||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
|
||||
/**
|
||||
@@ -77,19 +79,24 @@ class IndexController extends Controller
|
||||
$pageSize = (int)app('preferences')->get('listPageSize', 50)->data;
|
||||
$collection = $this->recurring->get();
|
||||
|
||||
// split collection
|
||||
$total = $collection->count();
|
||||
/** @var Collection $recurrences */
|
||||
$recurrences = $collection->slice(($page - 1) * $pageSize, $pageSize);
|
||||
|
||||
$transformer = new RecurrenceTransformer(new ParameterBag);
|
||||
$recurring = [];
|
||||
/** @var Recurrence $recurrence */
|
||||
foreach ($collection as $recurrence) {
|
||||
foreach ($recurrences as $recurrence) {
|
||||
$array = $transformer->transform($recurrence);
|
||||
$array['first_date'] = new Carbon($array['first_date']);
|
||||
$array['repeat_until'] = null === $array['repeat_until'] ? null : new Carbon($array['repeat_until']);
|
||||
$array['latest_date'] = null === $array['latest_date'] ? null : new Carbon($array['latest_date']);
|
||||
$recurring[] = $array;
|
||||
}
|
||||
|
||||
return view('recurring.index', compact('recurring', 'page', 'pageSize'));
|
||||
$paginator = new LengthAwarePaginator($recurring, $total, $pageSize, $page);
|
||||
$paginator->setPath(route('recurring.index'));
|
||||
return view('recurring.index', compact('paginator', 'page', 'pageSize','total'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user