function get_devices_by_group() { $app = \Slim\Slim::getInstance(); $router = $app->router()->getCurrentRoute()->getParams(); $status = 'error'; $code = 404; $count = 0; $name = urldecode($router['name']); $devices = array(); if (empty($name)) { $message = 'No device group name provided'; } else { $group_id = dbFetchCell("SELECT `id` FROM `device_groups` WHERE `name`=?", array($name)); $devices = GetDevicesFromGroup($group_id, true); $count = count($devices); if (empty($devices)) { $message = 'No devices found in group ' . $name; } else { $message = "Found {$count} in group {$name}"; $code = 200; } } $output = array('status' => $status, 'message' => $message, 'count' => $count, 'devices' => $devices); $app->response->setStatus($code); $app->response->headers->set('Content-Type', 'application/json'); echo _json_encode($output); }
/** * Update the device-group relationship for the given group id * @param $group_id */ function UpdateDeviceGroup($group_id) { $queried_devices = QueryDevicesFromGroup($group_id); $db_devices = GetDevicesFromGroup($group_id); // compare the arrays to get the added and removed devices $added_devices = array_diff($queried_devices, $db_devices); $removed_devices = array_diff($db_devices, $queried_devices); // insert new devices $insert = array(); foreach ($added_devices as $device_id) { $insert[] = array('device_id' => $device_id, 'device_group_id' => $group_id); } if (!empty($insert)) { dbBulkInsert($insert, 'device_group_device'); } // remove old devices if (!empty($removed_devices)) { dbDelete('device_group_device', '`device_group_id`=? AND `device_id` IN (?)', array($group_id, array(implode(',', $removed_devices)))); } }
$sql_param[] = $vars['disabled']; } if (!empty($vars['ignore'])) { $where .= " AND `ignore`= ?"; $sql_param[] = $vars['ignore']; } if (!empty($vars['location']) && $vars['location'] == "Unset") { $location_filter = ''; } if (!empty($vars['location'])) { $location_filter = $vars['location']; } if (!empty($vars['group'])) { require_once '../includes/device-groups.inc.php'; $where .= " AND ( "; foreach (GetDevicesFromGroup($vars['group']) as $dev) { $where .= "device_id = ? OR "; $sql_param[] = $dev; } $where = substr($where, 0, strlen($where) - 3); $where .= " )"; } $query = "SELECT * FROM `devices` WHERE 1 "; if (isset($where)) { $query .= $where; } $query .= " ORDER BY hostname"; $row = 1; foreach (dbFetchRows($query, $sql_param) as $device) { if (is_integer($row / 2)) { $row_colour = $list_colour_a;
} if (!empty($_POST['ignore'])) { $sql .= ' AND `ignore`= ?'; $param[] = $_POST['ignore']; } if (!empty($_POST['location']) && $_POST['location'] == 'Unset') { $location_filter = ''; } if (!empty($_POST['location'])) { $sql .= " AND `location` = ?"; $param[] = $_POST['location']; } if (!empty($_POST['group'])) { include_once '../includes/device-groups.inc.php'; $sql .= ' AND ( '; foreach (GetDevicesFromGroup($_POST['group']) as $dev) { $sql .= '`devices`.`device_id` = ? OR '; $param[] = $dev; } $sql = substr($sql, 0, strlen($sql) - 3); $sql .= ' )'; } $count_sql = "SELECT COUNT(`devices`.`device_id`) {$sql}"; $total = dbFetchCell($count_sql, $param); if (empty($total)) { $total = 0; } if (!isset($sort) || empty($sort)) { $sort = '`hostname` DESC'; } $sql .= " ORDER BY {$sort}";