mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
webui: translate state in health/state display (#9550)
* webui: translate state in health/state display * webui: translate state in health/state display * webui: translate state in health/state display * webui: translate state in health/state display * webui: translate state in health/state display and label for values and limits * State label in global health tab and cleaning * State label in global health tab and cleaning * Sensor labels in global health tab and cleaning * Sensor labels in global health tab and cleaning * Sensor labels in global health tab, cleaning unused 0 decimals
This commit is contained in:
@@ -1638,3 +1638,56 @@ function get_device_name($device)
|
||||
|
||||
return $ret_str;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns state generic label from value with optional text
|
||||
*/
|
||||
|
||||
function get_state_label($state_value, $state_text_param = null)
|
||||
{
|
||||
switch ($state_value) {
|
||||
case 0: // OK
|
||||
$state_text = (is_null($state_text_param) ? "OK": $state_text_param);
|
||||
$state_label = "label-success";
|
||||
break;
|
||||
case 1: // Warning
|
||||
$state_text = (is_null($state_text_param) ? "Warning": $state_text_param);
|
||||
$state_label = "label-warning";
|
||||
break;
|
||||
case 2: // Critical
|
||||
$state_text = (is_null($state_text_param) ? "Critical": $state_text_param);
|
||||
$state_label = "label-danger";
|
||||
break;
|
||||
case 3:// Unknown
|
||||
default:
|
||||
$state_text = (is_null($state_text_param) ? "Unknown": $state_text_param);
|
||||
$state_label = "label-default";
|
||||
}
|
||||
$state = "<span class='label $state_label'>$state_text</span>";
|
||||
return $state;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get state label color
|
||||
*/
|
||||
function get_sensor_label_color($sensor)
|
||||
{
|
||||
$current_label_color = "label-success";
|
||||
if (is_null($sensor)) {
|
||||
return "label-unknown";
|
||||
}
|
||||
if (!is_null($sensor['sensor_limit_warn']) && $sensor['sensor_current'] > $sensor['sensor_limit_warn']) {
|
||||
$current_label_color = "label-warning";
|
||||
}
|
||||
if (!is_null($sensor['sensor_limit_low_warn']) && $sensor['sensor_current'] < $sensor['sensor_limit_low_warn']) {
|
||||
$current_label_color = "label-warning";
|
||||
}
|
||||
if (!is_null($sensor['sensor_limit']) && $sensor['sensor_current'] > $sensor['sensor_limit']) {
|
||||
$current_label_color = "label-danger";
|
||||
}
|
||||
if (!is_null($sensor['sensor_limit_low']) && $sensor['sensor_current'] < $sensor['sensor_limit_low']) {
|
||||
$current_label_color = "label-danger";
|
||||
}
|
||||
|
||||
return $current_label_color;
|
||||
}
|
||||
|
||||
@@ -111,12 +111,25 @@ foreach (dbFetchRows($sql, $param) as $sensor) {
|
||||
|
||||
$sensor['sensor_descr'] = substr($sensor['sensor_descr'], 0, 48);
|
||||
|
||||
if ($graph_type == 'sensor_state') {
|
||||
// If we have a state, let's display a label with textual state translation
|
||||
$state_translation = array();
|
||||
$state_translation = dbFetchRows('SELECT * FROM state_translations as ST, sensors_to_state_indexes as SSI WHERE ST.state_index_id=SSI.state_index_id AND SSI.sensor_id = ? AND ST.state_value = ? ', array($sensor['sensor_id'], $sensor['sensor_current']));
|
||||
|
||||
//$current_label = get_state_label_color($sensor);
|
||||
$sensor_current = get_state_label($sensor['state_generic_value'], (!empty($state_translation['0']['state_descr'])) ? $state_translation[0]['state_descr'] . " (".$sensor['sensor_current'].")" : $sensor['sensor_current']);
|
||||
} else {
|
||||
// we have another sensor
|
||||
$current_label = get_sensor_label_color($sensor);
|
||||
$sensor_current = "<span class='label $current_label'>".(format_si($sensor['sensor_current'])+0)." $unit</span>";
|
||||
}
|
||||
|
||||
$response[] = array(
|
||||
'hostname' => generate_device_link($sensor),
|
||||
'sensor_descr' => overlib_link($link, $sensor['sensor_descr'], $overlib_content, null),
|
||||
'graph' => overlib_link($link_graph, $sensor_minigraph, $overlib_content, null),
|
||||
'alert' => $alert,
|
||||
'sensor_current' => $sensor['sensor_current'].$unit,
|
||||
'sensor_current' => $sensor_current,
|
||||
'sensor_limit_low' => is_null($sensor['sensor_limit_low']) ? '-' : round($sensor['sensor_limit_low'], 2).$unit,
|
||||
'sensor_limit' => is_null($sensor['sensor_limit']) ? '-' : round($sensor['sensor_limit'], 2).$unit,
|
||||
);
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
$row = 1;
|
||||
|
||||
foreach (dbFetchRows('SELECT * FROM `sensors` WHERE `sensor_class` = ? AND `device_id` = ? ORDER BY `sensor_descr`', array($class, $device['device_id'])) as $sensor) {
|
||||
$state_translation = array();
|
||||
if (($graph_type == 'sensor_state')) {
|
||||
$state_translation = dbFetchRows('SELECT * FROM state_translations as ST, sensors_to_state_indexes as SSI WHERE ST.state_index_id=SSI.state_index_id AND SSI.sensor_id = ? AND ST.state_value = ? ', array($sensor['sensor_id'], $sensor['sensor_current']));
|
||||
}
|
||||
if (!is_integer($row / 2)) {
|
||||
$row_colour = $config['list_colour']['even'];
|
||||
} else {
|
||||
@@ -15,13 +19,38 @@ foreach (dbFetchRows('SELECT * FROM `sensors` WHERE `sensor_class` = ? AND `devi
|
||||
$sensor_descr = $sensor['sensor_descr'];
|
||||
}
|
||||
|
||||
$sensor_current = format_si($sensor['sensor_current']).$unit;
|
||||
$sensor_limit = format_si($sensor['sensor_limit']).$unit;
|
||||
$sensor_limit_low = format_si($sensor['sensor_limit_low']).$unit;
|
||||
if (($graph_type == 'sensor_state') && !empty($state_translation['0']['state_descr'])) {
|
||||
$sensor_current = get_state_label($sensor['state_generic_value'], $state_translation[0]['state_descr'] . " (".$sensor['sensor_current'].")");
|
||||
} else {
|
||||
$current_label = get_sensor_label_color($sensor);
|
||||
$sensor_current = "<span class='label $current_label'>".(format_si($sensor['sensor_current'])+0)." $unit</span>";
|
||||
}
|
||||
|
||||
$sensor_limit = (format_si($sensor['sensor_limit'])+0)." $unit";
|
||||
$sensor_limit_low = (format_si($sensor['sensor_limit_low'])+0)." $unit";
|
||||
$sensor_limit_warn = (format_si($sensor['sensor_limit_warn'])+0)." $unit";
|
||||
$sensor_limit_low_warn = (format_si($sensor['sensor_limit_low_warn'])+0)." $unit";
|
||||
|
||||
echo "<div class='panel panel-default'>
|
||||
<div class='panel-heading'>
|
||||
<h3 class='panel-title'>$sensor_descr <div class='pull-right'>$sensor_current | $sensor_limit_low <> $sensor_limit</div></h3>
|
||||
</div>";
|
||||
<div class='panel-heading'>
|
||||
<h3 class='panel-title'>$sensor_descr <div class='pull-right'>$sensor_current";
|
||||
|
||||
//Display low and high limit if they are not null (format_si() is changing null to '0')
|
||||
if (!is_null($sensor['sensor_limit_low'])) {
|
||||
echo " <span class='label label-default'>low: $sensor_limit_low</span>";
|
||||
}
|
||||
if (!is_null($sensor['sensor_limit_low_warn'])) {
|
||||
echo " <span class='label label-default'>low_warn: $sensor_limit_low_warn</span>";
|
||||
}
|
||||
if (!is_null($sensor['sensor_limit_warn'])) {
|
||||
echo " <span class='label label-default'>high_warn: $sensor_limit_warn</span>";
|
||||
}
|
||||
if (!is_null($sensor['sensor_limit'])) {
|
||||
echo " <span class='label label-default'>high: $sensor_limit</span>";
|
||||
}
|
||||
|
||||
echo "</div></h3>
|
||||
</div>";
|
||||
echo "<div class='panel-body'>";
|
||||
|
||||
$graph_array['id'] = $sensor['sensor_id'];
|
||||
|
||||
Reference in New Issue
Block a user