diff --git a/library/Eagle/Web/Controller.php b/library/Eagle/Web/Controller.php index 9a9ce140..a2918e52 100644 --- a/library/Eagle/Web/Controller.php +++ b/library/Eagle/Web/Controller.php @@ -4,9 +4,11 @@ namespace Icinga\Module\Eagle\Web; use Icinga\Data\ResourceFactory; use Icinga\Module\Eagle\Widget\ViewModeSwitcher; +use ipl\Stdlib\Contract\PaginationInterface; use ipl\Web\Compat\CompatController; use ipl\Sql\Connection; use ipl\Web\Control\LimitControl; +use ipl\Web\Control\PaginationControl; use ipl\Web\Url; class Controller extends CompatController @@ -73,6 +75,23 @@ class Controller extends CompatController return $limitControl; } + /** + * Create and return the PaginationControl + * + * This automatically shifts the pagination URL parameters from {@link $params}. + * + * @return PaginationControl + */ + public function createPaginationControl(PaginationInterface $paginatable) + { + $paginationControl = new PaginationControl($paginatable, Url::fromRequest()); + + $this->params->shift($paginationControl->getPageParam()); + $this->params->shift($paginationControl->getPageSizeParam()); + + return $paginationControl; + } + /** * Create and return the ViewModeSwitcher *