From 2bd19c655bc24bacff538ae1a5162d2ac39e5cd1 Mon Sep 17 00:00:00 2001 From: SourceDoctor Date: Mon, 27 Jan 2020 13:17:52 +0100 Subject: [PATCH] enhance poller group management (#11073) --- .../Controllers/Table/DeviceController.php | 5 +++++ includes/html/pages/devices.inc.php | 5 +++++ includes/html/pages/pollers/groups.inc.php | 22 ++++++++++++++----- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Table/DeviceController.php b/app/Http/Controllers/Table/DeviceController.php index c0b1d87894..0baf3ce088 100644 --- a/app/Http/Controllers/Table/DeviceController.php +++ b/app/Http/Controllers/Table/DeviceController.php @@ -52,6 +52,7 @@ class DeviceController extends TableController 'ignore' => 'nullable|in:0,1', 'disable_notify' => 'nullable|in:0,1', 'group' => 'nullable|int', + 'poller_group' => 'nullable|int', ]; } @@ -88,6 +89,10 @@ class DeviceController extends TableController }); } + if ($request->get('poller_group') !== null) { + $query->where('poller_group', $request->get('poller_group')); + } + return $query; } diff --git a/includes/html/pages/devices.inc.php b/includes/html/pages/devices.inc.php index f6099bce6b..9ed2f60d17 100644 --- a/includes/html/pages/devices.inc.php +++ b/includes/html/pages/devices.inc.php @@ -186,6 +186,10 @@ if ($format == "graph") { if (!empty($vars['location'])) { $location_filter = $vars['location']; } + if (isset($vars['poller_group'])) { + $where .= " AND `poller_group`= ?"; + $sql_param[] = $vars['poller_group']; + } if (!empty($vars['group'])) { $where .= " AND ( "; foreach (DB::table('device_group_device')->where('device_group_id', $vars['group'])->pluck('device_id') as $dev) { @@ -350,6 +354,7 @@ if ($format == "graph") { ignore: '', disable_notify: '', group: '', + poller_group: '', }; }, url: "" diff --git a/includes/html/pages/pollers/groups.inc.php b/includes/html/pages/pollers/groups.inc.php index a7a384567f..3c0e383354 100644 --- a/includes/html/pages/pollers/groups.inc.php +++ b/includes/html/pages/pollers/groups.inc.php @@ -25,20 +25,32 @@ require_once 'includes/html/modal/poller_groups.inc.php'; ID Group Name + Devices Description Action - 0, + 'group_name' =>'(default poller group)', + 'descr' => 'Devices which are not assigned to a poller group will be handled by this poller']; + +$group_list = dbFetchRows('SELECT * FROM `poller_groups`'); +array_unshift($group_list, $default_group); + +foreach ($group_list as $group) { + $group_device_count = dbFetchCell('SELECT COUNT(*) FROM devices WHERE `poller_group`=?', $group['id']); echo ' '.$group['id'].' '.$group['group_name'].' - '.$group['descr'].' - + '.$group_device_count.' + '.$group['descr'].''; + echo ''; + if ($group['id']) { + echo ' '; + } + echo ' '; }