diff --git a/html/includes/functions.inc.php b/html/includes/functions.inc.php index be273b1626..bb50cfb8f7 100644 --- a/html/includes/functions.inc.php +++ b/html/includes/functions.inc.php @@ -13,6 +13,7 @@ */ use LibreNMS\Authentication\LegacyAuth; +use LibreNMS\Config; /** * Compare $t with the value of $vars[$v], if that exists @@ -704,7 +705,64 @@ function generate_port_link($port, $text = null, $type = null, $overlib = 1, $si } }//end generate_port_link() +function generate_sensor_link($args, $text = null, $type = null) +{ + $args = cleanPort($args); + if (!$text) { + $text = fixIfName($args['sensor_descr']); + } + + if (!$type) { + $args['graph_type'] = "sensor_" . $args['sensor_class']; + } else { + $args['graph_type'] = "sensor_" . $type; + } + + if (!isset($args['hostname'])) { + $args = array_merge($args, device_by_id_cache($args['device_id'])); + } + + $content = '
' . $text . '
'; + + $content .= "
"; + $graph_array = [ + 'type' => $args['graph_type'], + 'legend' => 'yes', + 'height' => '100', + 'width' => '340', + 'to' => Config::get('time.now'), + 'from' => Config::get('time.day'), + 'id' => $args['sensor_id'], + ]; + $content .= generate_graph_tag($graph_array); + + $graph_array['from'] = Config::get('time.week'); + $content .= generate_graph_tag($graph_array); + + $graph_array['from'] = Config::get('time.month'); + $content .= generate_graph_tag($graph_array); + + $graph_array['from'] = Config::get('time.year'); + $content .= generate_graph_tag($graph_array); + + $content .= '
'; + + $url = generate_sensor_url($args); + if (port_permitted($args['interface_id'], $args['device_id'])) { + return overlib_link($url, $text, $content, null); + } else { + return fixifName($text); + } +}//end generate_sensor_link() + + +function generate_sensor_url($sensor, $vars = array()) +{ + return generate_url(array('page' => 'graphs', 'id' => $sensor['sensor_id'], 'type' => $sensor['graph_type'], 'from' => Config::get('time.day')), $vars); +}//end generate_sensor_url() + + function generate_port_url($port, $vars = array()) { return generate_url(array('page' => 'device', 'device' => $port['device_id'], 'tab' => 'port', 'port' => $port['port_id']), $vars); @@ -1133,6 +1191,39 @@ function alert_details($details) $fallback = false; } + if ($tmp_alerts['sensor_id']) { + $details = "Current Value: " . $tmp_alerts['sensor_current'] . " (" . $tmp_alerts['sensor_class'] . ")
"; + $details_a = []; + + if ($tmp_alerts['sensor_limit_low']) { + $details_a[] = "low: " . $tmp_alerts['sensor_limit_low']; + } + if ($tmp_alerts['sensor_limit_low_warn']) { + $details_a[]= "low_warn: " . $tmp_alerts['sensor_limit_low_warn']; + } + if ($tmp_alerts['sensor_limit_warn']) { + $details_a[]= "high_warn: " . $tmp_alerts['sensor_limit_warn']; + } + if ($tmp_alerts['sensor_limit']) { + $details_a[]= "high: " . $tmp_alerts['sensor_limit']; + } + $details .= implode(', ', $details_a); + + $fault_detail .= generate_sensor_link($tmp_alerts, $tmp_alerts['name']) . '; 
' . $details; + $fallback = false; + } + if ($tmp_alerts['bgpPeer_id']) { + // If we have a bgpPeer_id, we format the data accordingly + $fault_detail .= "BGP peer 'device', + 'device' => $tmp_alerts['device_id'], + 'tab' => 'routing', + 'proto' => 'bgp')) . + "'>" . $tmp_alerts['bgpPeerIdentifier'] . ""; + $fault_detail .= ", AS" . $tmp_alerts['bgpPeerRemoteAs']; + $fault_detail .= ", State " . $tmp_alerts['bgpPeerState']; + $fallback = false; + } if ($tmp_alerts['type'] && $tmp_alerts['label']) { if ($tmp_alerts['error'] == "") { $fault_detail .= ' ' . $tmp_alerts['type'] . ' - ' . $tmp_alerts['label'] . '; '; @@ -1598,8 +1689,6 @@ function get_dashboards($user_id = null) * @return array containing transparency and stacked setup */ -use LibreNMS\Config; - function generate_stacked_graphs($transparency = '88') { if (Config::get('webui.graph_stacked') == true) {