Merge pull request #3589 from murrant/device-groups-pivot

Store device group relationships in a pivot table.
This commit is contained in:
Neil Lathwood
2016-06-06 18:20:53 +01:00
7 changed files with 165 additions and 16 deletions

View File

@@ -1271,7 +1271,7 @@ function get_devices_by_group() {
}
else {
$group_id = dbFetchCell("SELECT `id` FROM `device_groups` WHERE `name`=?",array($name));
$devices = GetDevicesFromGroup($group_id);
$devices = GetDevicesFromGroup($group_id, true);
$count = count($devices);
if (empty($devices)) {
$message = 'No devices found in group ' . $name;

View File

@@ -16,6 +16,8 @@ if (is_admin() === false) {
die('ERROR: You need to be admin');
}
require_once '../includes/device-groups.inc.php';
$pattern = $_POST['patterns'];
$group_id = $_POST['group_id'];
$name = mres($_POST['name']);
@@ -38,7 +40,7 @@ if (empty($pattern)) {
$update_message = 'ERROR: No group was generated';
}
else if (is_numeric($group_id) && $group_id > 0) {
if (dbUpdate(array('pattern' => $pattern, 'name' => $name, 'desc' => $desc), 'device_groups', 'id=?', array($group_id)) >= 0) {
if (EditDeviceGroup($group_id, $name, $desc, $pattern)) {
$update_message = "Edited Group: <i>$name: $pattern</i>";
}
else {
@@ -46,7 +48,7 @@ else if (is_numeric($group_id) && $group_id > 0) {
}
}
else {
if (dbInsert(array('pattern' => $pattern, 'name' => $name, 'desc' => $desc), 'device_groups')) {
if (AddDeviceGroup($name, $desc, $pattern)) {
$update_message = "Added Group: <i>$name: $pattern</i>";
}
else {

View File

@@ -87,7 +87,7 @@ if (!empty($_POST['group'])) {
$sql .= ' AND ( ';
foreach (GetDevicesFromGroup($_POST['group']) as $dev) {
$sql .= '`devices`.`device_id` = ? OR ';
$param[] = $dev['device_id'];
$param[] = $dev;
}
$sql = substr($sql, 0, (strlen($sql) - 3));