mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
webui: Added sysNames to pulldowns and the main page (#8137)
* Add dependency info for api * webui: made dev dependency list more like devices page. Also added sysNames to pulldowns and the manin page * Create common function for sysname display * A better function name
This commit is contained in:
committed by
Neil Lathwood
parent
2018c9f804
commit
5880f06780
@ -19,13 +19,13 @@ if (is_admin() === false) {
|
||||
if ($_POST['viewtype'] == 'fulllist') {
|
||||
$count_query = "SELECT count(device_id) from devices";
|
||||
|
||||
$deps_query = "SELECT a.device_id as id, a.hostname as hostname, GROUP_CONCAT(b.hostname) as parents, GROUP_CONCAT(b.device_id) as parentid FROM devices as a LEFT JOIN device_relationships a1 ON a.device_id=a1.child_device_id LEFT JOIN devices b ON b.device_id=a1.parent_device_id GROUP BY a.device_id, a.hostname";
|
||||
$deps_query = "SELECT a.device_id as id, a.hostname as hostname, a.sysName as sysName, GROUP_CONCAT(b.hostname) as parents, GROUP_CONCAT(b.device_id) as parentid FROM devices as a LEFT JOIN device_relationships a1 ON a.device_id=a1.child_device_id LEFT JOIN devices b ON b.device_id=a1.parent_device_id GROUP BY a.device_id, a.hostname, a.sysName";
|
||||
|
||||
if (isset($_POST['format'])) {
|
||||
if (isset($_POST['searchPhrase']) && !empty($_POST['searchPhrase'])) {
|
||||
#This is a bit ugly
|
||||
$deps_query = "SELECT * FROM (".$deps_query;
|
||||
$deps_query .= " ) as t WHERE t.hostname LIKE ? OR t.parents LIKE ? ";
|
||||
$deps_query .= " ) as t WHERE t.hostname LIKE ? OR t.parents LIKE ? OR t.sysname LIKE ? ";
|
||||
$deps_query .= " ORDER BY t.hostname";
|
||||
} else {
|
||||
$deps_query .= " ORDER BY a.hostname";
|
||||
@ -42,7 +42,7 @@ if (is_admin() === false) {
|
||||
|
||||
if (isset($_POST['format']) && !empty($_POST['searchPhrase'])) {
|
||||
$searchphrase = '%'.mres($_POST['searchPhrase']).'%';
|
||||
$device_deps = dbFetchRows($deps_query, array($searchphrase, $searchphrase));
|
||||
$device_deps = dbFetchRows($deps_query, array($searchphrase, $searchphrase, $searchphrase));
|
||||
} else {
|
||||
$device_deps = dbFetchRows($deps_query);
|
||||
}
|
||||
@ -62,7 +62,8 @@ if (is_admin() === false) {
|
||||
$parent = $myrow['parents'];
|
||||
}
|
||||
|
||||
array_push($res_arr, array( "deviceid" => $myrow['id'], "hostname" => $myrow['hostname'], "parent" => $parent, "parentid" => $myrow['parentid'] ));
|
||||
$hostname = get_device_name($myrow);
|
||||
array_push($res_arr, array( "deviceid" => $myrow['id'], "hostname" => $myrow['hostname'], "sysname" => $hostname, "parent" => $parent, "parentid" => $myrow['parentid'] ));
|
||||
}
|
||||
$status = array('current' => $_POST['current'], 'rowCount' => $_POST['rowCount'], 'rows' => $res_arr, 'total' => $rec_count);
|
||||
} else {
|
||||
|
@ -1696,3 +1696,23 @@ function get_zfs_pools($device_id)
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the sysname of a device with a html line break prepended.
|
||||
* if the device has an empty sysname it will return device's hostname instead
|
||||
* And finally if the device has no hostname it will return an empty string
|
||||
* @param device array
|
||||
* @return string
|
||||
*/
|
||||
function get_device_name($device)
|
||||
{
|
||||
$ret_str = '';
|
||||
|
||||
if (format_hostname($device) !== $device['sysName']) {
|
||||
$ret_str = $device['sysName'];
|
||||
} elseif ($device['hostname'] !== $device['ip']) {
|
||||
$ret_str = $device['hostname'];
|
||||
}
|
||||
|
||||
return $ret_str;
|
||||
}
|
||||
|
@ -198,11 +198,7 @@ foreach (dbFetchRows($sql, $param) as $device) {
|
||||
$os = $device['os_text'] . '<br>' . $device['version'];
|
||||
$device['ip'] = inet6_ntop($device['ip']);
|
||||
$uptime = formatUptime($device['uptime'], 'short');
|
||||
if (format_hostname($device) !== $device['sysName']) {
|
||||
$hostname .= '<br />' . $device['sysName'];
|
||||
} elseif ($device['hostname'] !== $device['ip']) {
|
||||
$hostname .= '<br />' . $device['hostname'];
|
||||
}
|
||||
$hostname .= '<br />' . get_device_name($device);
|
||||
|
||||
$metrics = array();
|
||||
if ($port_count) {
|
||||
|
@ -32,6 +32,7 @@ require_once 'includes/modal/manage_host_dependencies.inc.php';
|
||||
<tr>
|
||||
<th data-column-id="deviceid" data-visible="false" data-css-class="deviceid">No</th>
|
||||
<th data-column-id="hostname" data-type="string" data-css-class="childhost" data-formatter="hostname">Hostname</th>
|
||||
<th data-column-id="sysname" data-type="string" data-visible="false">Sysname</th>
|
||||
<th data-column-id="parent" data-type="string" data-css-class="parenthost" data-formatter="parent">Parent Device(s)</th>
|
||||
<th data-column-id="parentid" data-visible="false">Parent ID</th>
|
||||
<th data-column-id="actions" data-searchable="false" data-formatter="actions">Actions</th>
|
||||
@ -79,7 +80,7 @@ var grid = $("#hostdeps").bootgrid({
|
||||
return response;
|
||||
},
|
||||
"hostname": function(column, row) {
|
||||
return '<a href="device/device='+row.deviceid+'/">'+row.hostname+'</a>';
|
||||
return '<a href="device/device='+row.deviceid+'/" class="list-device">'+row.hostname+'</a><br />'+row.sysname;
|
||||
},
|
||||
"parent": function(column, row) {
|
||||
if (row.parent == 'None') {
|
||||
@ -92,7 +93,7 @@ var grid = $("#hostdeps").bootgrid({
|
||||
tempids = row.parentid.split(',');
|
||||
var retstr = '';
|
||||
for (i=0; i < temp.length; i++) {
|
||||
retstr = retstr + '<a href="device/device='+tempids[i]+'/">'+temp[i]+'</a>, ';
|
||||
retstr = retstr + '<a href="device/device='+tempids[i]+'/" class="list-device">'+temp[i]+'</a>, ';
|
||||
}
|
||||
return retstr.slice(0, -2);
|
||||
}
|
||||
@ -155,10 +156,11 @@ $(document).ready(function() {
|
||||
editSelect.append($('<option>', { value: 0, text: 'None'}));
|
||||
manParentDevstoClr.append($('<option>', { value: 0, text: 'None'}));
|
||||
$.each(output.deps, function (i,elem) {
|
||||
manParentDevs.append($('<option>',{value:elem.id, text:elem.hostname}));
|
||||
editSelect.append($('<option>',{value:elem.id, text:elem.hostname}));
|
||||
manAllDevs.append($('<option>',{value:elem.id, text:elem.hostname}));
|
||||
manParentDevstoClr.append($('<option>',{value:elem.id, text:elem.hostname}));
|
||||
var devtext = elem.hostname + ' (' + elem.sysname + ')';
|
||||
manParentDevs.append($('<option>',{value:elem.id, text:devtext}));
|
||||
editSelect.append($('<option>',{value:elem.id, text:devtext}));
|
||||
manAllDevs.append($('<option>',{value:elem.id, text:devtext}));
|
||||
manParentDevstoClr.append($('<option>',{value:elem.id, text:devtext}));
|
||||
});
|
||||
} else {
|
||||
toastr.error('Device dependencies could not be retrieved from the database');
|
||||
|
@ -188,14 +188,14 @@ if ($updated && $update_message) {
|
||||
?>
|
||||
<option value="0" <?=$selected?>>None</option>
|
||||
<?php
|
||||
$available_devs = dbFetchRows('SELECT `device_id`,`hostname` FROM `devices` WHERE `device_id` <> ? ORDER BY `hostname` ASC', array($device['device_id']));
|
||||
$available_devs = dbFetchRows('SELECT `device_id`,`hostname`,`sysName` FROM `devices` WHERE `device_id` <> ? ORDER BY `hostname` ASC', array($device['device_id']));
|
||||
foreach ($available_devs as $dev) {
|
||||
if (in_array($dev['device_id'], $dev_parents)) {
|
||||
$selected = 'selected="selected"';
|
||||
} else {
|
||||
$selected = '';
|
||||
}
|
||||
echo "<option value=".$dev['device_id']." ".$selected.">".$dev['hostname']."</option>";
|
||||
echo "<option value=". $dev['device_id']. " " . $selected . ">" . $dev['hostname'] . " (" . $dev['sysName'] .")</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
|
Reference in New Issue
Block a user