Recurring transactions support pagination.

This commit is contained in:
James Cole
2018-08-07 20:47:05 +02:00
parent 723abf44bd
commit 477788658b
2 changed files with 15 additions and 8 deletions

View File

@@ -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'));
}
/**