commit version 22.12.12447
This commit is contained in:
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -28,21 +28,21 @@ function build_cbqos_query($vars)
|
||||
switch ($var) {
|
||||
case "policy_name":
|
||||
case "object_name":
|
||||
$sql .= generate_query_values($value, $var);
|
||||
$sql .= generate_query_values_and($value, $var);
|
||||
break;
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'cbqos_id');
|
||||
$sql .= generate_query_values_and($values, 'cbqos_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'ports_cbqos.device_id');
|
||||
$sql .= generate_query_values_and($values, 'ports_cbqos.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'ports_cbqos.device_id');
|
||||
$sql .= generate_query_values_and($value, 'ports_cbqos.device_id');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -6,14 +6,14 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Humanize counter.
|
||||
*
|
||||
* Returns a the $counter array with processed information:
|
||||
* Returns a $counter array with processed information:
|
||||
* counter_state (TRUE: state counter, FALSE: normal counter)
|
||||
* human_value, counter_symbol, state_name, state_event, state_class
|
||||
*
|
||||
@ -164,42 +164,42 @@ function build_counter_query($vars, $query_count = FALSE)
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'counters.counter_id');
|
||||
$sql .= generate_query_values_and($values, 'counters.counter_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'counters.device_id');
|
||||
$sql .= generate_query_values_and($values, 'counters.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'counters.device_id');
|
||||
$sql .= generate_query_values_and($value, 'counters.device_id');
|
||||
break;
|
||||
case "id":
|
||||
case "counter_id":
|
||||
$sql .= generate_query_values($value, 'counters.counter_id');
|
||||
$sql .= generate_query_values_and($value, 'counters.counter_id');
|
||||
break;
|
||||
case "entity_id":
|
||||
$sql .= generate_query_values($value, 'counters.measured_entity');
|
||||
$sql .= generate_query_values_and($value, 'counters.measured_entity');
|
||||
break;
|
||||
case "entity_type":
|
||||
$sql .= generate_query_values($value, 'counters.measured_class');
|
||||
$sql .= generate_query_values_and($value, 'counters.measured_class');
|
||||
break;
|
||||
case 'entity_state':
|
||||
case "measured_state":
|
||||
$sql .= build_entity_measured_where('counter', ['measured_state' => $value]);
|
||||
$sql .= build_entity_measured_where('counter', [ 'measured_state' => $value ]);
|
||||
break;
|
||||
case 'class':
|
||||
case "counter_class":
|
||||
$sql .= generate_query_values($value, 'counter_class');
|
||||
$sql .= generate_query_values_and($value, 'counter_class');
|
||||
break;
|
||||
case "descr":
|
||||
case "counter_descr":
|
||||
$sql .= generate_query_values($value, 'counters.counter_descr', '%LIKE%');
|
||||
$sql .= generate_query_values_and($value, 'counters.counter_descr', '%LIKE%');
|
||||
break;
|
||||
case "event":
|
||||
case "counter_event":
|
||||
$sql .= generate_query_values($value, 'counter_event');
|
||||
$sql .= generate_query_values_and($value, 'counter_event');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -443,7 +443,7 @@ function generate_counter_row($counter, $vars)
|
||||
$counter['counter_class'],
|
||||
$config['counter_types'][$counter['counter_class']]['alt_units']) as $unit => $unit_value)
|
||||
{
|
||||
if (is_numeric($unit_value)) { $counter_tooltip .= "<br />${unit_value}${unit}"; }
|
||||
if (is_numeric($unit_value)) { $counter_tooltip .= "<br />{$unit_value}{$unit}"; }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -14,29 +14,25 @@
|
||||
* Build devices where array
|
||||
*
|
||||
* This function returns an array of "WHERE" statements from a $vars array.
|
||||
* The returned array can be implode()d and used on the devices table.
|
||||
* The returned array can be imploded and used on the devices table.
|
||||
* Originally extracted from the /devices/ page
|
||||
*
|
||||
* @param array $vars
|
||||
* @return array
|
||||
*/
|
||||
function build_devices_where_array($vars)
|
||||
{
|
||||
function build_devices_where_array($vars) {
|
||||
$where_array = array();
|
||||
foreach ($vars as $var => $value)
|
||||
{
|
||||
if ($value != '')
|
||||
{
|
||||
switch ($var)
|
||||
{
|
||||
foreach ($vars as $var => $value) {
|
||||
if (!safe_empty($value)) {
|
||||
switch ($var) {
|
||||
case 'group':
|
||||
case 'group_id':
|
||||
$values = get_group_entities($value);
|
||||
$where_array[$var] = generate_query_values($values, 'device_id');
|
||||
$where_array[$var] = generate_query_values_and($values, 'device_id');
|
||||
break;
|
||||
case 'device':
|
||||
case 'device_id':
|
||||
$where_array[$var] = generate_query_values($value, 'device_id');
|
||||
$where_array[$var] = generate_query_values_and($value, 'device_id');
|
||||
break;
|
||||
case 'hostname':
|
||||
case 'sysname':
|
||||
@ -44,13 +40,15 @@ function build_devices_where_array($vars)
|
||||
case 'sysDescr':
|
||||
case 'serial':
|
||||
case 'purpose':
|
||||
$where_array[$var] = generate_query_values($value, $var, '%LIKE%');
|
||||
$condition = str_contains_array($value, [ '*', '?' ]) ? 'LIKE' : '%LIKE%';
|
||||
$where_array[$var] = generate_query_values_and($value, $var, $condition);
|
||||
break;
|
||||
case 'location_text':
|
||||
$where_array[$var] = generate_query_values($value, 'devices.location', '%LIKE%');
|
||||
$condition = str_contains_array($value, [ '*', '?' ]) ? 'LIKE' : '%LIKE%';
|
||||
$where_array[$var] = generate_query_values_and($value, 'devices.location', $condition);
|
||||
break;
|
||||
case 'location':
|
||||
$where_array[$var] = generate_query_values($value, 'devices.location');
|
||||
$where_array[$var] = generate_query_values_and($value, 'devices.location');
|
||||
break;
|
||||
case 'location_lat':
|
||||
case 'location_lon':
|
||||
@ -60,7 +58,7 @@ function build_devices_where_array($vars)
|
||||
case 'location_city':
|
||||
if ($GLOBALS['config']['geocoding']['enable'])
|
||||
{
|
||||
$where_array[$var] = generate_query_values($value, 'devices_locations.' . $var);
|
||||
$where_array[$var] = generate_query_values_and($value, 'devices_locations.' . $var);
|
||||
}
|
||||
break;
|
||||
case 'os':
|
||||
@ -74,10 +72,10 @@ function build_devices_where_array($vars)
|
||||
case 'distro':
|
||||
case 'ignore':
|
||||
case 'disabled':
|
||||
$where_array[$var] = generate_query_values($value, $var);
|
||||
$where_array[$var] = generate_query_values_and($value, $var);
|
||||
break;
|
||||
case 'graph':
|
||||
$where_array[$var] = generate_query_values(devices_with_graph($value), "devices.device_id");
|
||||
$where_array[$var] = generate_query_values_and(devices_with_graph($value), "devices.device_id");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -103,7 +101,6 @@ function devices_with_graph($graph)
|
||||
function build_devices_sort($vars)
|
||||
{
|
||||
$order = '';
|
||||
$desc_order = isset($vars['sort_desc']) && $vars['sort_desc'];
|
||||
switch ($vars['sort'])
|
||||
{
|
||||
case 'uptime':
|
||||
@ -112,13 +109,12 @@ function build_devices_sort($vars)
|
||||
case 'features':
|
||||
case 'type':
|
||||
case 'os':
|
||||
case 'sysName':
|
||||
case 'device_id':
|
||||
$order = ' ORDER BY `devices`.`'.$vars['sort'].'`';
|
||||
if ($desc_order)
|
||||
{
|
||||
$order .= " DESC";
|
||||
}
|
||||
if ($vars['sort_order'] == "desc") { $order .= " DESC";}
|
||||
break;
|
||||
|
||||
case 'domain':
|
||||
// Special order hostnames in Domain Order
|
||||
// SELECT `hostname`,
|
||||
@ -126,19 +122,18 @@ function build_devices_sort($vars)
|
||||
// SUBSTRING_INDEX(SUBSTRING_INDEX(`hostname`,'.',-2),'.',1) AS `middle`,
|
||||
// SUBSTRING_INDEX(`hostname`,'.',-1) AS `rightmost`
|
||||
// FROM `devices` ORDER by `middle`, `rightmost`, `leftmost`;
|
||||
if ($desc_order)
|
||||
if ($vars['sort_order'] == "desc")
|
||||
{
|
||||
$order = ' ORDER BY `middle` DESC, `rightmost` DESC, `leftmost` DESC';
|
||||
} else {
|
||||
$order = ' ORDER BY `middle`, `rightmost`, `leftmost`';
|
||||
}
|
||||
break;
|
||||
|
||||
case 'hostname':
|
||||
default:
|
||||
$order = ' ORDER BY `devices`.`hostname`';
|
||||
if ($desc_order)
|
||||
{
|
||||
$order .= " DESC";
|
||||
}
|
||||
if ($vars['sort_order'] == "desc") { $order .= " DESC"; }
|
||||
break;
|
||||
}
|
||||
return $order;
|
||||
@ -150,27 +145,9 @@ function print_device_header($device, $args = array()) {
|
||||
|
||||
if (!is_array($device)) { print_error("Invalid device passed to print_device_header()!"); }
|
||||
|
||||
/* FIXME. Unused?
|
||||
if ($device['status'] == '0') { $class = "div-alert"; } else { $class = "div-normal"; }
|
||||
if ($device['ignore'] == '1')
|
||||
{
|
||||
$class = "div-ignore-alert";
|
||||
if ($device['status'] == '1')
|
||||
{
|
||||
$class = "div-ignore";
|
||||
}
|
||||
}
|
||||
|
||||
if ($device['disabled'] == '1')
|
||||
{
|
||||
$class = "div-disabled";
|
||||
}
|
||||
|
||||
$type = strtolower($device['os']);
|
||||
*/
|
||||
$div_class = 'box box-solid';
|
||||
if (!safe_empty($args['div-class'])) {
|
||||
$div_class .= " ${args['div-class']}";
|
||||
$div_class .= " " . $args['div-class'];
|
||||
}
|
||||
|
||||
echo '<div class="'.$div_class.'">
|
||||
@ -200,12 +177,12 @@ function print_device_header($device, $args = array()) {
|
||||
}
|
||||
|
||||
$graph_array = [];
|
||||
$graph_array['height'] = "100";
|
||||
$graph_array['width'] = "310";
|
||||
$graph_array['to'] = $config['time']['now'];
|
||||
//$graph_array['height'] = "100";
|
||||
//$graph_array['width'] = "310";
|
||||
$graph_array['to'] = get_time();
|
||||
$graph_array['device'] = $device['device_id'];
|
||||
$graph_array['type'] = "device_bits";
|
||||
$graph_array['from'] = $config['time']['day'];
|
||||
$graph_array['from'] = get_time('day');
|
||||
$graph_array['legend'] = "no";
|
||||
|
||||
$graph_array['height'] = "45";
|
||||
@ -398,7 +375,7 @@ function print_device_row($device, $vars = array('view' => 'basic'), $link_vars
|
||||
|
||||
// Preprocess device graphs array
|
||||
$graphs_enabled = [];
|
||||
foreach ($GLOBALS['cache']['devices']['id'][$device['device_id']]['graphs'] as $graph)
|
||||
foreach ($device['graphs'] as $graph)
|
||||
{
|
||||
$graphs_enabled[] = $graph['graph'];
|
||||
}
|
||||
@ -515,50 +492,41 @@ function get_device_icon($device, $base_icon = FALSE, $dark = FALSE) {
|
||||
}
|
||||
|
||||
// Icon by vendor name
|
||||
if ($icon === 'generic' && ($config['os'][$device['os']]['vendor'] || $device['vendor']))
|
||||
{
|
||||
if ($device['vendor'])
|
||||
{
|
||||
if ($icon === 'generic' && ($config['os'][$device['os']]['vendor'] || $device['vendor'])) {
|
||||
if ($device['vendor']) {
|
||||
$vendor = $device['vendor'];
|
||||
} else {
|
||||
$vendor = rewrite_vendor($config['os'][$device['os']]['vendor']); // Compatibility, if device not polled for long time
|
||||
}
|
||||
|
||||
$vendor_safe = safename(strtolower($vendor));
|
||||
if (isset($config['vendors'][$vendor_safe]['icon']))
|
||||
{
|
||||
if (isset($config['vendors'][$vendor_safe]['icon'])) {
|
||||
$icon = $config['vendors'][$vendor_safe]['icon'];
|
||||
}
|
||||
elseif (is_file($config['html_dir'] . '/images/os/' . $vendor_safe . '.png'))
|
||||
{
|
||||
} elseif (is_file($config['html_dir'] . '/images/os/' . $vendor_safe . '.png')) {
|
||||
$icon = $vendor_safe;
|
||||
}
|
||||
elseif (isset($config['os'][$device['os']]['icons']))
|
||||
{
|
||||
} elseif (isset($config['os'][$device['os']]['icons'])) {
|
||||
// Fallback to os alternative icon
|
||||
$icon = array_values($config['os'][$device['os']]['icons'])[0];
|
||||
}
|
||||
}
|
||||
|
||||
// Set dark mode by session
|
||||
if (isset($_SESSION['theme']))
|
||||
{
|
||||
if (isset($_SESSION['theme'])) {
|
||||
$dark = str_contains($_SESSION['theme'], 'dark');
|
||||
}
|
||||
|
||||
// Prefer dark variant of icon in dark mode
|
||||
if ($dark && is_file($config['html_dir'] . '/images/os/' . $icon . '-dark.png'))
|
||||
{
|
||||
if ($dark && is_file($config['html_dir'] . '/images/os/' . $icon . '-dark.png')) {
|
||||
$icon .= '-dark';
|
||||
}
|
||||
|
||||
if ($base_icon)
|
||||
{
|
||||
if ($base_icon) {
|
||||
// return base name for os icon
|
||||
return $icon;
|
||||
}
|
||||
|
||||
// return image html tag
|
||||
$base_url = rtrim($config['base_url'], '/');
|
||||
$srcset = '';
|
||||
// Now we always have 2x icon variant!
|
||||
//if (is_file($config['html_dir'] . '/images/os/' . $icon . '_2x.png')) // HiDPI image exist?
|
||||
@ -566,14 +534,13 @@ function get_device_icon($device, $base_icon = FALSE, $dark = FALSE) {
|
||||
// Detect allowed screen ratio for current browser
|
||||
$ua_info = detect_browser();
|
||||
|
||||
if ($ua_info['screen_ratio'] > 1)
|
||||
{
|
||||
$srcset = ' srcset="' .$config['base_url'] . '/images/os/' . $icon . '_2x.png'.' 2x"';
|
||||
if ($ua_info['screen_ratio'] > 1) {
|
||||
$srcset = ' srcset="' . $base_url . '/images/os/' . $icon . '_2x.png'.' 2x"';
|
||||
}
|
||||
//}
|
||||
|
||||
// Image tag -- FIXME re-engineer this code to do this properly. This is messy.
|
||||
return '<img src="' . $config['base_url'] . '/images/os/' . $icon . '.png"' . $srcset . ' alt="" />';
|
||||
return '<img src="' . $base_url . '/images/os/' . $icon . '.png"' . $srcset . ' alt="" />';
|
||||
}
|
||||
|
||||
// TESTME needs unit testing
|
||||
@ -638,8 +605,11 @@ function generate_device_popup($device, $vars = []) {
|
||||
}
|
||||
}
|
||||
|
||||
$count = 0;
|
||||
foreach ($graphs as $entry) {
|
||||
|
||||
if($count == 3) { break; }
|
||||
|
||||
if ($entry && in_array(str_replace('device_', '', $entry), $graphs_enabled, TRUE)) {
|
||||
// No text provided for the minigraph, fetch from array
|
||||
if (preg_match(OBS_PATTERN_GRAPH_TYPE, $entry, $graphtype)) {
|
||||
@ -664,17 +634,13 @@ function generate_device_popup($device, $vars = []) {
|
||||
|
||||
$content .= '<div style="width: 730px; white-space: nowrap;">';
|
||||
$content .= "<div class=entity-title><h4>" . $text . "</h4></div>";
|
||||
/*
|
||||
$content .= generate_box_open(array('title' => $text,
|
||||
'body-style' => 'white-space: nowrap;'));
|
||||
*/
|
||||
$content .= generate_graph_tag($graph_array);
|
||||
|
||||
$graph_array['from'] = get_time('week');
|
||||
$content .= generate_graph_tag($graph_array);
|
||||
|
||||
$content .= '</div>';
|
||||
//$content .= generate_box_close();
|
||||
|
||||
$count++;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -722,41 +688,6 @@ function generate_device_link_short($device, $vars = [], $short = TRUE) {
|
||||
return generate_device_link($device, NULL, $vars, TRUE, $short);
|
||||
}
|
||||
|
||||
function device_name($device, $max_len = FALSE) {
|
||||
global $config;
|
||||
|
||||
switch (strtolower($config['web_device_name'])) {
|
||||
case 'sysname':
|
||||
$name_field = 'sysName';
|
||||
break;
|
||||
case 'purpose':
|
||||
case 'descr':
|
||||
case 'description':
|
||||
$name_field = 'purpose';
|
||||
break;
|
||||
default:
|
||||
$name_field = 'hostname';
|
||||
}
|
||||
|
||||
if ($max_len && !is_intnum($max_len)) {
|
||||
$max_len = $config['short_hostname']['length'];
|
||||
}
|
||||
|
||||
if ($name_field !== 'hostname' && !safe_empty($device[$name_field])) {
|
||||
if ($name_field === 'sysName' && $max_len && $max_len > 3) {
|
||||
// short sysname when is valid hostname (do not escape here)
|
||||
return short_hostname($device[$name_field], $max_len, FALSE);
|
||||
}
|
||||
return $device[$name_field];
|
||||
}
|
||||
|
||||
if ($max_len && $max_len > 3) {
|
||||
// short hostname (do not escape here)
|
||||
return short_hostname($device['hostname'], $max_len, FALSE);
|
||||
}
|
||||
return $device['hostname'];
|
||||
}
|
||||
|
||||
function generate_device_form_values($form_filter = FALSE, $column = 'device_id', $options = array())
|
||||
{
|
||||
global $cache;
|
||||
|
@ -54,6 +54,30 @@ function get_customoid_by_id($oid_id) {
|
||||
|
||||
} // end function get_customoid_by_id()
|
||||
|
||||
// DOCME needs phpdoc block
|
||||
// TESTME needs unit testing
|
||||
function get_application_by_id($application_id)
|
||||
{
|
||||
if (is_numeric($application_id))
|
||||
{
|
||||
$application = dbFetchRow("SELECT * FROM `applications` WHERE `app_id` = ?", array($application_id));
|
||||
}
|
||||
if (is_array($application))
|
||||
{
|
||||
return $application;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
// DOCME needs phpdoc block
|
||||
// TESTME needs unit testing
|
||||
function accesspoint_by_id($ap_id, $refresh = '0')
|
||||
{
|
||||
$ap = dbFetchRow("SELECT * FROM `accesspoints` WHERE `accesspoint_id` = ?", array($ap_id));
|
||||
|
||||
return $ap;
|
||||
}
|
||||
|
||||
function generate_entity_popup_graphs($entity, $vars)
|
||||
{
|
||||
@ -376,8 +400,8 @@ function build_entity_measured_where($entity_type, $vars)
|
||||
{
|
||||
case 'port':
|
||||
case 'printersupply':
|
||||
$measure_sql = generate_query_values($measured_type, $column_measured_type, NULL, OBS_DB_NO_LEADING_AND);
|
||||
$measure_sql .= generate_query_values($entities, $column_measured_id);
|
||||
$measure_sql = generate_query_values_ng($measured_type, $column_measured_type);
|
||||
$measure_sql .= generate_query_values_and($entities, $column_measured_id);
|
||||
break;
|
||||
}
|
||||
if ($measure_sql) { $measure_array[] = $measure_sql; }
|
||||
@ -388,7 +412,7 @@ function build_entity_measured_where($entity_type, $vars)
|
||||
//$value = (array)$value;
|
||||
// Select all without measured entities
|
||||
if (in_array('none', $value)) {
|
||||
$measure_array[] = generate_query_values(1, $column_measured_id, 'NULL', OBS_DB_NO_LEADING_AND);
|
||||
$measure_array[] = generate_query_values_ng(1, $column_measured_id);
|
||||
$value = array_diff($value, [ 'none' ]);
|
||||
}
|
||||
if (count($value))
|
||||
@ -410,8 +434,8 @@ function build_entity_measured_where($entity_type, $vars)
|
||||
$entities = dbFetchColumn($entity_sql);
|
||||
//$entities = dbFetchColumn($entity_sql, NULL, TRUE);
|
||||
//r($entities);
|
||||
$measure_sql = generate_query_values($measured_type, $column_measured_type, NULL, OBS_DB_NO_LEADING_AND);
|
||||
$measure_sql .= generate_query_values($entities, $column_measured_id);
|
||||
$measure_sql = generate_query_values_ng($measured_type, $column_measured_type);
|
||||
$measure_sql .= generate_query_values_and($entities, $column_measured_id);
|
||||
break;
|
||||
case 'printersupply':
|
||||
break;
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -32,20 +32,20 @@ function build_mempool_query($vars)
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'mempools.mempool_id');
|
||||
$sql .= generate_query_values_and($values, 'mempools.mempool_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'mempools.device_id');
|
||||
$sql .= generate_query_values_and($values, 'mempools.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'mempools.device_id');
|
||||
$sql .= generate_query_values_and($value, 'mempools.device_id');
|
||||
break;
|
||||
case "descr":
|
||||
case "mempool_descr";
|
||||
$sql .= generate_query_values($value, 'mempool_descr', '%LIKE%');
|
||||
$sql .= generate_query_values_and($value, 'mempool_descr', '%LIKE%');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -6,15 +6,14 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
function generate_oid_template_link($entry)
|
||||
{
|
||||
$url = generate_url(array('page' => 'customoid', 'oid_id' => $entry['oid_id']));
|
||||
$link = '<a href="'.$url.'">'.$entry['oid_descr'].'</a>';
|
||||
return $link;
|
||||
return '<a href="'.$url.'">'.$entry['oid_descr'].'</a>';
|
||||
}
|
||||
|
||||
function build_oid_query($vars)
|
||||
@ -33,21 +32,21 @@ function build_oid_query($vars)
|
||||
case "oid_descr":
|
||||
case "oid":
|
||||
case "oid_name":
|
||||
$sql .= generate_query_values($value, $var);
|
||||
$sql .= generate_query_values_and($value, $var);
|
||||
break;
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'oid_entry_id');
|
||||
$sql .= generate_query_values_and($values, 'oid_entry_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'oids_entries.device_id');
|
||||
$sql .= generate_query_values_and($values, 'oids_entries.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'oids_entries.device_id');
|
||||
$sql .= generate_query_values_and($value, 'oids_entries.device_id');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -97,7 +96,7 @@ function print_oid_table_header($vars, $entries)
|
||||
$cols['event'] = array('Event', 'style="width: 60px;"');
|
||||
|
||||
if ($entries[0]['oid_autodiscover'] == '0' && $vars['page'] === "customoid") {
|
||||
$cols['actions'] = array('', 'style="width: 40px;"'); echo "derp";
|
||||
$cols['actions'] = array('', 'style="width: 40px;"');
|
||||
}
|
||||
|
||||
echo get_table_header($cols, $vars);
|
||||
@ -112,7 +111,6 @@ function print_oid_table($vars)
|
||||
$entries = dbFetchRows($sql);
|
||||
$count = count($entries);
|
||||
|
||||
|
||||
if (count($entries)) {
|
||||
|
||||
echo generate_box_open();
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -23,16 +23,16 @@ function generate_p2pradio_query($vars)
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'radio_id');
|
||||
$sql .= generate_query_values_and($values, 'radio_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'p2p_radios.device_id');
|
||||
$sql .= generate_query_values_and($values, 'p2p_radios.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'device_id');
|
||||
$sql .= generate_query_values_and($value, 'device_id');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
* Build ports WHERE array
|
||||
*
|
||||
* This function returns an array of "WHERE" statements from a $vars array.
|
||||
* The returned array can be implode()d and used on the ports table.
|
||||
* The returned array can be imploded and used on the ports table.
|
||||
* Originally extracted from the /ports/ page
|
||||
*
|
||||
* @param array $vars
|
||||
@ -27,20 +27,20 @@ function build_ports_where_array($vars) {
|
||||
if (!safe_empty($value)) {
|
||||
switch ($var) {
|
||||
case 'location':
|
||||
$where[] = generate_query_values($value, $var);
|
||||
$where[] = generate_query_values_and($value, $var);
|
||||
break;
|
||||
case 'device_id':
|
||||
$where[] = generate_query_values($value, 'ports.device_id');
|
||||
$where[] = generate_query_values_and($value, 'ports.device_id');
|
||||
break;
|
||||
case 'group':
|
||||
case 'group_id':
|
||||
$values = get_group_entities($value);
|
||||
$where[] = generate_query_values($values, 'ports.port_id');
|
||||
$where[] = generate_query_values_and($values, 'ports.port_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$where[] = generate_query_values($values, 'ports.device_id');
|
||||
$where[] = generate_query_values_and($values, 'ports.device_id');
|
||||
break;
|
||||
case 'disable':
|
||||
$var = 'disabled';
|
||||
@ -49,25 +49,26 @@ function build_ports_where_array($vars) {
|
||||
case 'ignore':
|
||||
case 'ifSpeed':
|
||||
case 'ifType':
|
||||
case 'ifVlan':
|
||||
case 'port_id':
|
||||
$where[] = generate_query_values($value, 'ports.'.$var);
|
||||
$where[] = generate_query_values_and($value, 'ports.'.$var);
|
||||
break;
|
||||
case 'hostname':
|
||||
case 'ifAlias':
|
||||
case 'ifDescr': // FIXME, probably better always use port_label instead ifDescr for search
|
||||
$where[] = generate_query_values($value, $var, '%LIKE%');
|
||||
$where[] = generate_query_values_and($value, $var, '%LIKE%');
|
||||
break;
|
||||
case 'label':
|
||||
case 'port_label':
|
||||
$where[] = generate_query_values($value, 'port_label', '%LIKE%');
|
||||
$where[] = generate_query_values_and($value, 'port_label', '%LIKE%');
|
||||
break;
|
||||
case 'mac':
|
||||
case 'ifPhysAddress':
|
||||
$value = str_replace([ '.', '-', ':' ], '', $value);
|
||||
$where[] = generate_query_values($value, 'ifPhysAddress', '%LIKE%');
|
||||
$where[] = generate_query_values_and($value, 'ifPhysAddress', '%LIKE%');
|
||||
break;
|
||||
case 'port_descr_type':
|
||||
$where[] = generate_query_values($value, $var, 'LIKE');
|
||||
$where[] = generate_query_values_and($value, $var, 'LIKE');
|
||||
break;
|
||||
case 'errors':
|
||||
if (get_var_true($value)) {
|
||||
@ -88,13 +89,13 @@ function build_ports_where_array($vars) {
|
||||
foreach ((array)$value as $state) {
|
||||
if ($state === "down") {
|
||||
$state_where[] = '`ifAdminStatus` = "up" AND `ifOperStatus` IN ("lowerLayerDown", "down")';
|
||||
//$state_where[] = generate_query_values('up', 'ifAdminStatus', NULL, FALSE) . generate_query_values(['down', 'lowerLayerDown'], 'ifOperStatus');
|
||||
//$state_where[] = generate_query_values_ng('up', 'ifAdminStatus') . generate_query_values_and(['down', 'lowerLayerDown'], 'ifOperStatus');
|
||||
} elseif ($state === "up") {
|
||||
$state_where[] = '`ifAdminStatus` = "up" AND `ifOperStatus` IN ("up", "testing", "monitoring")';
|
||||
//$state_where[] = generate_query_values('up', 'ifAdminStatus', NULL, FALSE) . generate_query_values(['up', 'testing', 'monitoring'], 'ifOperStatus');
|
||||
//$state_where[] = generate_query_values_ng('up', 'ifAdminStatus') . generate_query_values_and(['up', 'testing', 'monitoring'], 'ifOperStatus');
|
||||
} elseif ($state === "admindown" || $state === "shutdown") {
|
||||
$state_where[] = '`ifAdminStatus` = "down"';
|
||||
//$state_where[] = generate_query_values('down', 'ifAdminStatus', NULL, FALSE);
|
||||
//$state_where[] = generate_query_values_ng('down', 'ifAdminStatus');
|
||||
}
|
||||
}
|
||||
switch (count($state_where)) {
|
||||
@ -110,12 +111,12 @@ function build_ports_where_array($vars) {
|
||||
break;
|
||||
case 'cbqos':
|
||||
if ($value && $value !== 'no') {
|
||||
$where[] = generate_query_values($GLOBALS['cache']['ports']['cbqos'], 'ports.port_id');
|
||||
$where[] = generate_query_values_and($GLOBALS['cache']['ports']['cbqos'], 'ports.port_id');
|
||||
}
|
||||
break;
|
||||
case 'mac_accounting':
|
||||
if ($value && $value !== 'no') {
|
||||
$where[] = generate_query_values($GLOBALS['cache']['ports']['mac_accounting'], 'ports.port_id');
|
||||
$where[] = generate_query_values_and($GLOBALS['cache']['ports']['mac_accounting'], 'ports.port_id');
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -194,24 +195,26 @@ function generate_port_popup($port, $text = NULL, $type = NULL)
|
||||
$content = generate_device_popup_header($port);
|
||||
$content .= generate_port_popup_header($port);
|
||||
|
||||
$content .= '<div style="width: 700px">';
|
||||
//$content .= generate_box_open(array('body-style' => 'width: 700px;'));
|
||||
$graph_array['type'] = $port['graph_type'];
|
||||
$graph_array['legend'] = "yes";
|
||||
$graph_array['height'] = "100";
|
||||
$graph_array['width'] = "275";
|
||||
$graph_array['to'] = $time['now'];
|
||||
$graph_array['from'] = $time['day'];
|
||||
$graph_array['id'] = $port['port_id'];
|
||||
$content .= generate_graph_tag($graph_array);
|
||||
$graph_array['from'] = $time['week'];
|
||||
$content .= generate_graph_tag($graph_array);
|
||||
$graph_array['from'] = $time['month'];
|
||||
$content .= generate_graph_tag($graph_array);
|
||||
$graph_array['from'] = $time['year'];
|
||||
$content .= generate_graph_tag($graph_array);
|
||||
$content .= "</div>";
|
||||
//$content .= generate_box_close();
|
||||
if($type != "none") {
|
||||
$content .= '<div style="width: 700px">';
|
||||
//$content .= generate_box_open(array('body-style' => 'width: 700px;'));
|
||||
$graph_array['type'] = $port['graph_type'];
|
||||
$graph_array['legend'] = "yes";
|
||||
$graph_array['height'] = "100";
|
||||
$graph_array['width'] = "275";
|
||||
$graph_array['to'] = $time['now'];
|
||||
$graph_array['from'] = $time['day'];
|
||||
$graph_array['id'] = $port['port_id'];
|
||||
$content .= generate_graph_tag($graph_array);
|
||||
$graph_array['from'] = $time['week'];
|
||||
$content .= generate_graph_tag($graph_array);
|
||||
$graph_array['from'] = $time['month'];
|
||||
$content .= generate_graph_tag($graph_array);
|
||||
$graph_array['from'] = $time['year'];
|
||||
$content .= generate_graph_tag($graph_array);
|
||||
$content .= "</div>";
|
||||
//$content .= generate_box_close();
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
@ -454,7 +457,7 @@ function generate_port_row($port, $vars = array())
|
||||
if (!isset($cache['ports_option']['ipv4_addresses']) || in_array($port['port_id'], $cache['ports_option']['ipv4_addresses'])) {
|
||||
$sql = "SELECT * FROM `ipv4_addresses` WHERE `port_id` = ?";
|
||||
// Do not exclude IPv4 link-local
|
||||
$sql .= generate_query_values(array_diff($ignore_type, [ 'link-local' ]), 'ipv4_type', '!='); // Do not show ignored ip types
|
||||
$sql .= generate_query_values_and(array_diff($ignore_type, [ 'link-local' ]), 'ipv4_type', '!='); // Do not show ignored ip types
|
||||
foreach (dbFetchRows($sql, array($port['port_id'])) as $ip)
|
||||
{
|
||||
$string .= $break . generate_popup_link('ip', $ip['ipv4_address'].'/'.$ip['ipv4_prefixlen'], NULL, 'small');
|
||||
@ -464,7 +467,7 @@ function generate_port_row($port, $vars = array())
|
||||
if (!isset($cache['ports_option']['ipv6_addresses']) || in_array($port['port_id'], $cache['ports_option']['ipv6_addresses']))
|
||||
{
|
||||
$sql = "SELECT * FROM `ipv6_addresses` WHERE `port_id` = ?";
|
||||
$sql .= generate_query_values($ignore_type, 'ipv6_type', '!='); // Do not show ignored ip types
|
||||
$sql .= generate_query_values_and($ignore_type, 'ipv6_type', '!='); // Do not show ignored ip types
|
||||
foreach (dbFetchRows($sql, array($port['port_id'])) as $ip6)
|
||||
{
|
||||
$string .= $break . generate_popup_link('ip', $ip6['ipv6_address'].'/'.$ip6['ipv6_prefixlen'], NULL, 'small');
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -23,28 +23,28 @@ function build_printersupplies_query($vars)
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'printersupplies.supply_id');
|
||||
$sql .= generate_query_values_and($values, 'printersupplies.supply_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'printersupplies.device_id');
|
||||
$sql .= generate_query_values_and($values, 'printersupplies.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'printersupplies.device_id');
|
||||
$sql .= generate_query_values_and($value, 'printersupplies.device_id');
|
||||
break;
|
||||
case "supply":
|
||||
case "supply_type";
|
||||
$sql .= generate_query_values($value, 'printersupplies.supply_type');
|
||||
$sql .= generate_query_values_and($value, 'printersupplies.supply_type');
|
||||
break;
|
||||
case "colour":
|
||||
case "supply_colour";
|
||||
$sql .= generate_query_values($value, 'supply_colour');
|
||||
$sql .= generate_query_values_and($value, 'supply_colour');
|
||||
break;
|
||||
case "descr":
|
||||
case "supply_descr";
|
||||
$sql .= generate_query_values($value, 'supply_descr', '%LIKE%');
|
||||
$sql .= generate_query_values_and($value, 'supply_descr', '%LIKE%');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -27,20 +27,20 @@ function generate_processor_query($vars)
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'processor_id');
|
||||
$sql .= generate_query_values_and($values, 'processor_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'processors.device_id');
|
||||
$sql .= generate_query_values_and($values, 'processors.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'processors.device_id');
|
||||
$sql .= generate_query_values_and($value, 'processors.device_id');
|
||||
break;
|
||||
case "descr":
|
||||
case "processor_descr";
|
||||
$sql .= generate_query_values($value, 'processor_descr', '%LIKE%');
|
||||
$sql .= generate_query_values_and($value, 'processor_descr', '%LIKE%');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Observium
|
||||
*
|
||||
* This file is part of Observium.
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2019 Observium Limited
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -24,42 +23,42 @@ function generate_pseudowire_query($vars)
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'pseudowire_id');
|
||||
$sql .= generate_query_values_and($values, 'pseudowire_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'device_id');
|
||||
$sql .= generate_query_values_and($values, 'device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'device_id');
|
||||
$sql .= generate_query_values_and($value, 'device_id');
|
||||
break;
|
||||
case "port":
|
||||
case "port_id":
|
||||
$sql .= generate_query_values($value, 'port_id');
|
||||
$sql .= generate_query_values_and($value, 'port_id');
|
||||
break;
|
||||
case "id":
|
||||
$sql .= generate_query_values($value, 'pseudowire_id');
|
||||
$sql .= generate_query_values_and($value, 'pseudowire_id');
|
||||
break;
|
||||
case "pwid":
|
||||
case "pwID":
|
||||
$sql .= generate_query_values($value, 'pwID');
|
||||
$sql .= generate_query_values_and($value, 'pwID');
|
||||
break;
|
||||
case "pwtype":
|
||||
$sql .= generate_query_values($value, 'pwType');
|
||||
$sql .= generate_query_values_and($value, 'pwType');
|
||||
break;
|
||||
case "psntype":
|
||||
$sql .= generate_query_values($value, 'pwPsnType');
|
||||
$sql .= generate_query_values_and($value, 'pwPsnType');
|
||||
break;
|
||||
case "peer_id":
|
||||
$sql .= generate_query_values($value, 'peer_device_id');
|
||||
$sql .= generate_query_values_and($value, 'peer_device_id');
|
||||
break;
|
||||
case "peer_addr":
|
||||
$sql .= generate_query_values($value, 'peer_addr');
|
||||
$sql .= generate_query_values_and($value, 'peer_addr');
|
||||
break;
|
||||
case "event":
|
||||
$sql .= generate_query_values($value, 'event');
|
||||
$sql .= generate_query_values_and($value, 'event');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -130,7 +129,7 @@ function get_pseudowire_table($vars)
|
||||
|
||||
if (!is_array($cache_pseudowires['ips'][$peer_addr]))
|
||||
{
|
||||
$cache_pseudowires['ips'][$peer_addr]['port_id'] = dbFetchCell('SELECT `port_id` FROM `'.$peer_addr_type.'_addresses` WHERE `'.$peer_addr_type.'_address` = ? '.generate_query_values($GLOBALS['cache']['ports']['pseudowires'], 'port_id').' LIMIT 1;', array($peer_addr));
|
||||
$cache_pseudowires['ips'][$peer_addr]['port_id'] = dbFetchCell('SELECT `port_id` FROM `'.$peer_addr_type.'_addresses` WHERE `'.$peer_addr_type.'_address` = ? '.generate_query_values_and($GLOBALS['cache']['ports']['pseudowires'], 'port_id').' LIMIT 1;', array($peer_addr));
|
||||
if (!is_numeric($cache_pseudowires['ips'][$peer_addr]['port_id']))
|
||||
{
|
||||
// Separate entry for find correct port
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -121,30 +121,30 @@ function build_sensor_query($vars, $query_count = FALSE) {
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'sensors.sensor_id');
|
||||
$sql .= generate_query_values_and($values, 'sensors.sensor_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'sensors.device_id');
|
||||
$sql .= generate_query_values_and($values, 'sensors.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'sensors.device_id');
|
||||
$sql .= generate_query_values_and($value, 'sensors.device_id');
|
||||
break;
|
||||
case "id":
|
||||
case "sensor_id":
|
||||
$sql .= generate_query_values($value, 'sensors.sensor_id');
|
||||
$sql .= generate_query_values_and($value, 'sensors.sensor_id');
|
||||
break;
|
||||
case "entity_id":
|
||||
$sql .= generate_query_values($value, 'sensors.measured_entity');
|
||||
$sql .= generate_query_values_and($value, 'sensors.measured_entity');
|
||||
break;
|
||||
case "entity_type":
|
||||
$sql .= generate_query_values($value, 'sensors.measured_class');
|
||||
$sql .= generate_query_values_and($value, 'sensors.measured_class');
|
||||
break;
|
||||
case 'entity_state':
|
||||
case "measured_state":
|
||||
$sql .= build_entity_measured_where('sensor', ['measured_state' => $value]);
|
||||
$sql .= build_entity_measured_where('sensor', [ 'measured_state' => $value ]);
|
||||
break;
|
||||
case "metric":
|
||||
// old metric param not allow array
|
||||
@ -153,19 +153,19 @@ function build_sensor_query($vars, $query_count = FALSE) {
|
||||
}
|
||||
case 'class':
|
||||
case "sensor_class":
|
||||
$sql .= generate_query_values($value, 'sensor_class');
|
||||
$sql .= generate_query_values_and($value, 'sensor_class');
|
||||
break;
|
||||
case "descr":
|
||||
case "sensor_descr":
|
||||
$sql .= generate_query_values($value, 'sensors.sensor_descr', '%LIKE%');
|
||||
$sql .= generate_query_values_and($value, 'sensors.sensor_descr', '%LIKE%');
|
||||
break;
|
||||
case "type":
|
||||
case "sensor_type":
|
||||
$sql .= generate_query_values($value, 'sensor_type', '%LIKE%');
|
||||
$sql .= generate_query_values_and($value, 'sensor_type', '%LIKE%');
|
||||
break;
|
||||
case "event":
|
||||
case "sensor_event":
|
||||
$sql .= generate_query_values($value, 'sensor_event');
|
||||
$sql .= generate_query_values_and($value, 'sensor_event');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -304,6 +304,126 @@ function print_sensor_table_header($vars) {
|
||||
echo('<tbody>' . PHP_EOL);
|
||||
}
|
||||
|
||||
function generate_sensor_line($sensor, $vars) {
|
||||
global $config;
|
||||
|
||||
humanize_sensor($sensor);
|
||||
|
||||
$graph_array = [];
|
||||
$graph_array['to'] = get_time();
|
||||
$graph_array['id'] = $sensor['sensor_id'];
|
||||
$graph_array['type'] = "sensor_graph";
|
||||
$graph_array['width'] = 80;
|
||||
$graph_array['height'] = 20;
|
||||
$graph_array['bg'] = 'ffffff00';
|
||||
$graph_array['from'] = get_time('day');
|
||||
$graph_array['style'] = 'margin-top: 5px';
|
||||
|
||||
if ($sensor['sensor_event'] && is_numeric($sensor['sensor_value'])) {
|
||||
$mini_graph = generate_graph_tag($graph_array);
|
||||
} else {
|
||||
// Do not show "Draw Error" minigraph
|
||||
$mini_graph = '';
|
||||
}
|
||||
|
||||
/*
|
||||
$sensor_tooltip = $sensor['event_descr'];
|
||||
// Append value in alternative units to tooltip
|
||||
if (isset($config['sensor_types'][$sensor['sensor_class']]['alt_units'])) {
|
||||
foreach (value_to_units($sensor['sensor_value'],
|
||||
$config['sensor_types'][$sensor['sensor_class']]['symbol'],
|
||||
$sensor['sensor_class'],
|
||||
$config['sensor_types'][$sensor['sensor_class']]['alt_units']) as $unit => $unit_value) {
|
||||
if (is_numeric($unit_value)) { $sensor_tooltip .= "<br />{$unit_value}{$unit}"; }
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
//r($sensor);
|
||||
$text = '<span class="'. $sensor['event_class'].'">' . $sensor['human_value'] . $sensor['sensor_symbol'] . '</span>';
|
||||
|
||||
//$line = '<td class="state-marker"></td>';
|
||||
$line = '<td class="entity '.$sensor['row_class'].'">';
|
||||
//$btn_class = str_replace('label', 'btn', $sensor['event_class']); // FIXME Need button-outline-* class from bs4+
|
||||
if (get_var_true($vars['compact'])) {
|
||||
$line .= '<button class="btn btn-default" style="width: 105px; text-align: right;">';
|
||||
} else {
|
||||
// fixed button size for keep size without images
|
||||
$line .= '<button class="btn btn-default" style="width: 105px; height: 55px;">';
|
||||
}
|
||||
|
||||
$icon = get_icon($config['sensor_types'][$sensor['sensor_class']]['icon']);
|
||||
if ($sensor['sensor_class'] === 'power' || $sensor['sensor_class'] === 'dbm') {
|
||||
if (str_icontains_array($sensor['sensor_descr'], [ ' Rx', 'Rx ', 'Receive' ])) {
|
||||
// rx
|
||||
$icon = get_icon('glyphicon-arrow-down text-primary').' ';
|
||||
} elseif (str_icontains_array($sensor['sensor_descr'], [ ' Tx', 'Tx ', 'Trans' ])) {
|
||||
// tx
|
||||
$icon = get_icon('glyphicon-arrow-up text-danger').' ';
|
||||
}
|
||||
}
|
||||
|
||||
$line .= $icon.' ';
|
||||
$line .= generate_entity_link('sensor', $sensor, $text, NULL, FALSE);
|
||||
if (!get_var_true($vars['compact'])) {
|
||||
$line .= '<br />' .generate_entity_link('sensor', $sensor, $mini_graph, NULL, FALSE);
|
||||
}
|
||||
//$line .= '<strong>' . generate_tooltip_link('', $sensor['human_value'] . $sensor['sensor_symbol'], $sensor_tooltip, $sensor['event_class']) . '</strong>';
|
||||
$line .= '</button>';
|
||||
$line .= '</td>';
|
||||
|
||||
//r($line);
|
||||
return $line;
|
||||
}
|
||||
|
||||
function get_compact_sensors_line($measured_class, $entry, $vars) {
|
||||
|
||||
// order dom sensors always by temperature, voltage, current, dbm, power
|
||||
$order = [];
|
||||
if (safe_count($entry) > 0) {
|
||||
$classes = array_keys($entry);
|
||||
//r($types);
|
||||
if ($measured_class === 'port') {
|
||||
// always display all classes for dom (also if not exist)
|
||||
$order = [ 'temperature', 'voltage', 'current', /* 'dbm', 'power' */ ];
|
||||
// or dbm or power
|
||||
if (in_array('dbm', $classes, TRUE)) {
|
||||
$order[] = 'dbm';
|
||||
} elseif (in_array('power', $classes, TRUE)) {
|
||||
$order[] = 'power';
|
||||
} else {
|
||||
$order[] = 'dbm';
|
||||
}
|
||||
} else {
|
||||
$order = array_intersect([ 'temperature', 'voltage', 'current', 'dbm', 'power' ], $classes);
|
||||
}
|
||||
$order = array_merge($order, array_diff($classes, $order));
|
||||
//r($order);
|
||||
}
|
||||
$line = '';
|
||||
foreach ($order as $class) {
|
||||
if (!isset($entry[$class])) {
|
||||
// Add empty columns for port entities (for correct align)
|
||||
$line .= '<td class="entity"></td>';
|
||||
}
|
||||
|
||||
foreach ($entry[$class] as $sensor) {
|
||||
/*
|
||||
$sensor['sensor_descr'] = trim(str_ireplace($rename_from, '', $sensor['sensor_descr']), ":- \t\n\r\0\x0B");
|
||||
if (empty($sensor['sensor_descr'])) {
|
||||
// Some time sensor descriptions equals to entity name
|
||||
$sensor['sensor_descr'] = nicecase($sensor['sensor_class']);
|
||||
}
|
||||
*/
|
||||
|
||||
// Compact view per entity/lane
|
||||
$line .= generate_sensor_line($sensor, $vars);
|
||||
}
|
||||
}
|
||||
|
||||
return $line;
|
||||
}
|
||||
|
||||
function print_sensor_row($sensor, $vars)
|
||||
{
|
||||
echo generate_sensor_row($sensor, $vars);
|
||||
@ -404,7 +524,7 @@ function generate_sensor_row($sensor, $vars)
|
||||
$sensor['sensor_class'],
|
||||
$config['sensor_types'][$sensor['sensor_class']]['alt_units']) as $unit => $unit_value)
|
||||
{
|
||||
if (is_numeric($unit_value)) { $sensor_tooltip .= "<br />${unit_value}${unit}"; }
|
||||
if (is_numeric($unit_value)) { $sensor_tooltip .= "<br />{$unit_value}{$unit}"; }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2020 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -23,38 +23,38 @@ function generate_sla_query($vars)
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'slas.sla_id');
|
||||
$sql .= generate_query_values_and($values, 'slas.sla_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'storage.device_id');
|
||||
$sql .= generate_query_values_and($values, 'storage.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'slas.device_id');
|
||||
$sql .= generate_query_values_and($value, 'slas.device_id');
|
||||
break;
|
||||
case "id":
|
||||
case "sla_id":
|
||||
$sql .= generate_query_values($value, 'slas.sla_id');
|
||||
$sql .= generate_query_values_and($value, 'slas.sla_id');
|
||||
break;
|
||||
case "owner":
|
||||
$sql .= generate_query_values($value, 'slas.sla_owner');
|
||||
$sql .= generate_query_values_and($value, 'slas.sla_owner');
|
||||
break;
|
||||
case "target":
|
||||
case "sla_target":
|
||||
$sql .= generate_query_values($value, 'slas.sla_target', '%LIKE%');
|
||||
$sql .= generate_query_values_and($value, 'slas.sla_target', '%LIKE%');
|
||||
break;
|
||||
case "sla_tag":
|
||||
$sql .= generate_query_values($value, 'slas.sla_tag');
|
||||
$sql .= generate_query_values_and($value, 'slas.sla_tag');
|
||||
break;
|
||||
case "rtt_type":
|
||||
case "rtt_sense":
|
||||
$sql .= generate_query_values($value, 'slas.'.$var);
|
||||
$sql .= generate_query_values_and($value, 'slas.'.$var);
|
||||
break;
|
||||
case "event":
|
||||
case "rtt_event":
|
||||
$sql .= generate_query_values($value, 'slas.rtt_event');
|
||||
$sql .= generate_query_values_and($value, 'slas.rtt_event');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -74,26 +74,26 @@ function generate_status_query($vars, $query_count = FALSE) {
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value, 'status');
|
||||
$sql .= generate_query_values($values, 'status.status_id');
|
||||
$sql .= generate_query_values_and($values, 'status.status_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'status.device_id');
|
||||
$sql .= generate_query_values_and($values, 'status.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'status.device_id');
|
||||
$sql .= generate_query_values_and($value, 'status.device_id');
|
||||
break;
|
||||
case "id":
|
||||
case 'status_id':
|
||||
$sql .= generate_query_values($value, 'status.status_id');
|
||||
$sql .= generate_query_values_and($value, 'status.status_id');
|
||||
break;
|
||||
case "entity_id":
|
||||
$sql .= generate_query_values($value, 'measured_entity');
|
||||
$sql .= generate_query_values_and($value, 'measured_entity');
|
||||
break;
|
||||
case "entity_type":
|
||||
$sql .= generate_query_values($value, 'measured_class');
|
||||
$sql .= generate_query_values_and($value, 'measured_class');
|
||||
break;
|
||||
case 'entity_state':
|
||||
case "measured_state":
|
||||
@ -101,23 +101,23 @@ function generate_status_query($vars, $query_count = FALSE) {
|
||||
break;
|
||||
case "class":
|
||||
case 'entPhysicalClass':
|
||||
$sql .= generate_query_values($value, 'entPhysicalClass');
|
||||
$sql .= generate_query_values_and($value, 'entPhysicalClass');
|
||||
break;
|
||||
case "event":
|
||||
case "status_event":
|
||||
$sql .= generate_query_values($value, 'status_event');
|
||||
$sql .= generate_query_values_and($value, 'status_event');
|
||||
break;
|
||||
case "status":
|
||||
case "status_name":
|
||||
$sql .= generate_query_values($value, 'status_name');
|
||||
$sql .= generate_query_values_and($value, 'status_name');
|
||||
break;
|
||||
case "descr":
|
||||
case "status_descr":
|
||||
$sql .= generate_query_values($value, 'status_descr', '%LIKE%');
|
||||
$sql .= generate_query_values_and($value, 'status_descr', '%LIKE%');
|
||||
break;
|
||||
case 'type':
|
||||
case "status_type":
|
||||
$sql .= generate_query_values($value, 'status_type', '%LIKE%');
|
||||
$sql .= generate_query_values_and($value, 'status_type', '%LIKE%');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -323,7 +323,7 @@ function generate_status_row($status, $vars) {
|
||||
$row .= '<td style="width: 90px; text-align: right;">' . generate_entity_link('status', $status, $mini_graph, NULL, FALSE) . '</td>';
|
||||
if ($vars['tab'] !== "overview")
|
||||
{
|
||||
$row .= '<td style="white-space: nowrap">' . generate_tooltip_link('', format_uptime((get_time() - $status['status_last_change']), 'short-2') . ' ago', format_unixtime($status['status_last_change'])) . '</td>
|
||||
$row .= '<td style="white-space: nowrap">' . generate_tooltip_time($status['status_last_change'], 'ago') . '</td>
|
||||
<td style="text-align: right;"><strong>' . generate_tooltip_link('', $status['status_event'], $status['event_descr'], $status['event_class']) . '</strong></td>';
|
||||
$table_cols++;
|
||||
$table_cols++;
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -30,23 +30,23 @@ function generate_storage_query($vars)
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'storage.storage_id');
|
||||
$sql .= generate_query_values_and($values, 'storage.storage_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'storage.device_id');
|
||||
$sql .= generate_query_values_and($values, 'storage.device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'storage.device_id');
|
||||
$sql .= generate_query_values_and($value, 'storage.device_id');
|
||||
break;
|
||||
case "descr":
|
||||
case "storage_descr";
|
||||
$sql .= generate_query_values($value, 'storage_descr', '%LIKE%');
|
||||
$sql .= generate_query_values_and($value, 'storage_descr', '%LIKE%');
|
||||
break;
|
||||
case 'ignored':
|
||||
$sql .= generate_query_values($value, 'storage.storage_ignore');
|
||||
$sql .= generate_query_values_and($value, 'storage.storage_ignore');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -92,8 +92,7 @@ function generate_storage_query($vars)
|
||||
|
||||
}
|
||||
|
||||
function print_storage_table($vars)
|
||||
{
|
||||
function print_storage_table($vars) {
|
||||
|
||||
global $cache, $config;
|
||||
|
||||
@ -101,13 +100,16 @@ function print_storage_table($vars)
|
||||
|
||||
$sql = generate_storage_query($vars);
|
||||
|
||||
$storages = array();
|
||||
$storages = [];
|
||||
foreach (dbFetchRows($sql) as $storage)
|
||||
{
|
||||
if (isset($cache['devices']['id'][$storage['device_id']]))
|
||||
{
|
||||
$storage['hostname'] = $cache['devices']['id'][$storage['device_id']]['hostname'];
|
||||
$storage['html_row_class'] = $cache['devices']['id'][$storage['device_id']]['html_row_class'];
|
||||
|
||||
// FIXME. Should be part of humanize_storage()
|
||||
$storage['human_type'] = array_preg_replace($config['rewrites']['storage_type_regexp'], $storage['storage_type']);
|
||||
$storages[] = $storage;
|
||||
}
|
||||
}
|
||||
@ -152,19 +154,19 @@ function print_storage_table_header($vars)
|
||||
}
|
||||
|
||||
echo('<table class="' . $table_class . '">' . PHP_EOL);
|
||||
$cols = array(
|
||||
array(NULL, 'class="state-marker"'),
|
||||
'device' => array('Device', 'style="width: 250px;"'),
|
||||
'mountpoint' => array('Mountpoint'),
|
||||
'size' => array('Size', 'style="width: 100px;"'),
|
||||
'used' => array('Used', 'style="width: 100px;"'),
|
||||
'free' => array('Free', 'style="width: 100px;"'),
|
||||
array('', 'style="width: 100px;"'),
|
||||
'usage' => array('Usage %', 'style="width: 200px;"'),
|
||||
);
|
||||
$cols = [
|
||||
[ NULL, 'class="state-marker"' ],
|
||||
'device' => [ 'Device', 'style="width: 250px;"' ],
|
||||
'mountpoint' => [ 'Mountpoint' ],
|
||||
'fstype' => [ 'FS Type', 'style="width: 90px;"' ],
|
||||
'size' => [ 'Size', 'style="width: 100px;"' ],
|
||||
'used' => [ 'Used', 'style="width: 100px;"' ],
|
||||
'free' => [ 'Free', 'style="width: 100px;"' ],
|
||||
[ '', 'style="width: 100px;"' ],
|
||||
'usage' => [ 'Usage %', 'style="width: 200px;"' ],
|
||||
];
|
||||
|
||||
if ($vars['page'] === "device")
|
||||
{
|
||||
if ($vars['page'] === "device") {
|
||||
unset($cols['device']);
|
||||
}
|
||||
|
||||
@ -182,10 +184,10 @@ function generate_storage_row($storage, $vars) {
|
||||
|
||||
global $config;
|
||||
|
||||
$table_cols = 8;
|
||||
$table_cols = 9;
|
||||
if ($vars['page'] !== "device" && $vars['popup'] != TRUE) { $table_cols++; } // Add a column for device.
|
||||
|
||||
if(isset($vars['graph_type']) && $vars['graph_type'] == "perc")
|
||||
if(isset($vars['graph_type']) && $vars['graph_type'] === "perc")
|
||||
|
||||
$graph_array = array();
|
||||
$graph_array['to'] = $config['time']['now'];
|
||||
@ -225,6 +227,7 @@ function generate_storage_row($storage, $vars) {
|
||||
if ($vars['page'] !== "device" && $vars['popup'] != TRUE) { $row .= '<td class="entity">' . generate_device_link($storage) . '</td>'; }
|
||||
|
||||
$row .= ' <td class="entity">'.generate_entity_link('storage', $storage).'</td>
|
||||
<td>'.$storage['human_type'].'</td>
|
||||
<td>'.$total.'</td>
|
||||
<td>'.$used.'</td>
|
||||
<td>'.$free.'</td>
|
||||
|
@ -1,13 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Observium
|
||||
*
|
||||
* This file is part of Observium.
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2019 Observium Limited
|
||||
* @package observium
|
||||
* @subpackage web
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2022 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
@ -23,28 +22,28 @@ function generate_vm_query($vars)
|
||||
case "group":
|
||||
case "group_id":
|
||||
$values = get_group_entities($value);
|
||||
$sql .= generate_query_values($values, 'vm_id');
|
||||
$sql .= generate_query_values_and($values, 'vm_id');
|
||||
break;
|
||||
case 'device_group_id':
|
||||
case 'device_group':
|
||||
$values = get_group_entities($value, 'device');
|
||||
$sql .= generate_query_values($values, 'device_id');
|
||||
$sql .= generate_query_values_and($values, 'device_id');
|
||||
break;
|
||||
case "device":
|
||||
case "device_id":
|
||||
$sql .= generate_query_values($value, 'device_id');
|
||||
$sql .= generate_query_values_and($value, 'device_id');
|
||||
break;
|
||||
case "os":
|
||||
$sql .= generate_query_values($value, 'vm_guestos');
|
||||
$sql .= generate_query_values_and($value, 'vm_guestos');
|
||||
break;
|
||||
case "state":
|
||||
$sql .= generate_query_values($value, 'vm_state');
|
||||
$sql .= generate_query_values_and($value, 'vm_state');
|
||||
break;
|
||||
case "memory":
|
||||
$sql .= generate_query_values($value, 'vm_memory');
|
||||
$sql .= generate_query_values_and($value, 'vm_memory');
|
||||
break;
|
||||
case "cpu":
|
||||
$sql .= generate_query_values($value, 'vm_cpucount');
|
||||
$sql .= generate_query_values_and($value, 'vm_cpucount');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user