From 8c4caab81aca05cd2fde776a29cdc93e816480d7 Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Mon, 17 Jun 2024 02:28:36 -0500 Subject: [PATCH] Fix port pagination (#16127) * Fix ports pagination * Style fix --- app/Http/Controllers/Device/Tabs/PortsController.php | 11 +++++++---- resources/views/device/tabs/ports/detail.blade.php | 5 +++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Device/Tabs/PortsController.php b/app/Http/Controllers/Device/Tabs/PortsController.php index fdd45e6bf8..91ee4e6efc 100644 --- a/app/Http/Controllers/Device/Tabs/PortsController.php +++ b/app/Http/Controllers/Device/Tabs/PortsController.php @@ -41,7 +41,7 @@ use LibreNMS\Interfaces\UI\DeviceTab; class PortsController implements DeviceTab { private bool $detail = false; - private int $perPage = 15; + private int|string $perPage = 15; private string $sortOrder = 'asc'; private string $sortColumn = 'default'; @@ -68,7 +68,8 @@ class PortsController implements DeviceTab public function data(Device $device, Request $request): array { Validator::validate($request->all(), [ - 'perPage' => 'int', + 'page' => 'int', + 'perPage' => ['regex:/^(\d+|all)$/'], 'sort' => 'in:media,mac,port,traffic,speed', 'order' => 'in:asc,desc', 'disabled' => 'in:0,1', @@ -113,8 +114,10 @@ class PortsController implements DeviceTab $relationships[] = 'ipv6Networks.ipv6'; } - /** @var Collection|LengthAwarePaginator $ports */ - $ports = $this->getFilteredPortsQuery($device, $request, $relationships)->paginate($this->perPage); + /** @var Collection|LengthAwarePaginator $ports */ + $ports = $this->getFilteredPortsQuery($device, $request, $relationships) + ->paginate(fn ($total) => $this->perPage == 'all' ? $total : (int) $this->perPage) + ->appends('perPage', $this->perPage); $data = [ 'ports' => $ports, diff --git a/resources/views/device/tabs/ports/detail.blade.php b/resources/views/device/tabs/ports/detail.blade.php index fda948cd3f..64e3eb8d58 100644 --- a/resources/views/device/tabs/ports/detail.blade.php +++ b/resources/views/device/tabs/ports/detail.blade.php @@ -19,14 +19,15 @@
{{ $data['ports']->links('pagination::tailwind', ['perPage' => $data['perPage']]) }} @isset($data['perPage']) -