grid = $grid;
$this->initPaginator();
}
/**
* Initialize work for Paginator.
*
* @return void
*/
protected function initPaginator()
{
$this->paginator = $this->grid->model()->paginator();
if ($this->paginator instanceof LengthAwarePaginator) {
$this->paginator->appends(request()->all());
}
}
/**
* Get Pagination links.
*
* @return string
*/
protected function paginationLinks()
{
return $this->paginator->render('admin::grid.pagination');
}
/**
* Get per-page selector.
*
* @return string|null
*/
protected function perPageSelector()
{
if (! $this->grid->getPerPages()) {
return;
}
return (new PerPageSelector($this->grid))->render();
}
/**
* Get range infomation of paginator.
*
* @return string|\Symfony\Component\Translation\TranslatorInterface
*/
protected function paginationRanger()
{
$parameters = [
'first' => $this->paginator->firstItem(),
'last' => $this->paginator->lastItem(),
'total' => $this->paginator->total(),
];
$parameters = collect($parameters)->flatMap(function ($parameter, $key) {
return [$key => "$parameter"];
});
$color = Admin::color()->dark80();
return "".trans('admin.pagination.range', $parameters->all()).'';
}
/**
* Render Paginator.
*
* @return string
*/
public function render()
{
return $this->paginationRanger().
$this->paginationLinks().
$this->perPageSelector();
}
}