From 206f23b1ce10fdd22334a552f079ce6fdbf3ad5a Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Thu, 20 Dec 2018 15:57:28 -0600 Subject: [PATCH] TopDevices widget respect limit (#9572) --- .../Widgets/TopDevicesController.php | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Widgets/TopDevicesController.php b/app/Http/Controllers/Widgets/TopDevicesController.php index 22affe24e2..287b278b86 100644 --- a/app/Http/Controllers/Widgets/TopDevicesController.php +++ b/app/Http/Controllers/Widgets/TopDevicesController.php @@ -192,8 +192,10 @@ class TopDevicesController extends WidgetController private function getUptimeData($sort) { + $settings = $this->getSettings(); + /** @var Builder $query */ - $query = $this->deviceQuery()->orderBy('uptime', $sort); + $query = $this->deviceQuery()->orderBy('uptime', $sort)->limit($settings['device_count']); $results = $query->get()->map(function ($device) { return $this->standardRow($device, 'device_uptime', ['tab' => 'graphs', 'group' => 'system']); @@ -204,8 +206,10 @@ class TopDevicesController extends WidgetController private function getPingData($sort) { + $settings = $this->getSettings(); + /** @var Builder $query */ - $query = $this->deviceQuery()->orderBy('last_ping_timetaken', $sort); + $query = $this->deviceQuery()->orderBy('last_ping_timetaken', $sort)->limit($settings['device_count']); $results = $query->get()->map(function ($device) { return $this->standardRow($device, 'device_ping_perf', ['tab' => 'graphs', 'group' => 'poller']); @@ -216,9 +220,12 @@ class TopDevicesController extends WidgetController private function getProcessorData($sort) { + $settings = $this->getSettings(); + /** @var Builder $query */ $query = $this->withDeviceQuery(Processor::hasAccess(Auth::user()), (new Processor)->getTable()) - ->orderByRaw('AVG(`processor_usage`) ' . $sort); + ->orderByRaw('AVG(`processor_usage`) ' . $sort) + ->limit($settings['device_count']); $results = $query->get()->map(function ($port) { return $this->standardRow($port->device, 'device_processor', ['tab' => 'health', 'metric' => 'processor']); @@ -229,9 +236,12 @@ class TopDevicesController extends WidgetController private function getMemoryData($sort) { + $settings = $this->getSettings(); + /** @var Builder $query */ $query = $this->withDeviceQuery(Mempool::hasAccess(Auth::user()), (new Mempool)->getTable()) - ->orderBy('mempool_perc', $sort); + ->orderBy('mempool_perc', $sort) + ->limit($settings['device_count']); $results = $query->get()->map(function ($port) { return $this->standardRow($port->device, 'device_mempool', ['tab' => 'health', 'metric' => 'mempool']); @@ -242,8 +252,10 @@ class TopDevicesController extends WidgetController private function getPollerData($sort) { + $settings = $this->getSettings(); + /** @var Builder $query */ - $query = $this->deviceQuery()->orderBy('last_polled_timetaken', $sort); + $query = $this->deviceQuery()->orderBy('last_polled_timetaken', $sort)->limit($settings['device_count']); $results = $query->get()->map(function ($device) { return $this->standardRow($device, 'device_poller_perf', ['tab' => 'graphs', 'group' => 'poller']);