Updates styling

This commit is contained in:
fbsanchez 2019-05-28 12:13:29 +02:00
parent 92ca217800
commit 9a12b34847
9 changed files with 317 additions and 224 deletions

View File

@ -888,10 +888,10 @@ foreach ($fields as $field) {
); );
}; };
$table->rowid[] = 'name_field-'.$i; $table->rowid[] = 'name_field-'.$id_custom_field;
$table->data[] = $data; $table->data[] = $data;
$table->rowid[] = 'field-'.($i + 1); $table->rowid[] = 'field-'.$id_custom_field;
$table->data[] = $data_field; $table->data[] = $data_field;
$i += 2; $i += 2;
} }

View File

@ -1,17 +1,32 @@
<?php <?php
/**
* Configure agents.
*
* @category Agents view - management.
* @package Pandora FMS
* @subpackage User interface.
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Pandora FMS - http://pandorafms.com // Begin.
// ==================================================
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Load global vars.
global $config; global $config;
enterprise_include('godmode/agentes/configurar_agente.php'); enterprise_include('godmode/agentes/configurar_agente.php');
@ -325,7 +340,7 @@ if ($create_agent) {
$unsafe_alias = io_safe_output($alias); $unsafe_alias = io_safe_output($alias);
db_pandora_audit( db_pandora_audit(
'Agent management', 'Agent management',
"Created agent $unsafe_alias", 'Created agent '.$unsafe_alias,
false, false,
true, true,
$info $info
@ -489,7 +504,7 @@ if ($id_agente) {
$agent_name = io_safe_output($agent_name); $agent_name = io_safe_output($agent_name);
$agent_md5 = md5($agent_name, false); $agent_md5 = md5($agent_name, false);
$remote_configuration_tab['text'] = '<a href="index.php?'.'sec=gagente&amp;'.'sec2=godmode/agentes/configurar_agente&amp;'.'tab=remote_configuration&amp;'.'id_agente='.$id_agente.'&amp;'.'disk_conf='.$agent_md5.'">'.html_print_image( $remote_configuration_tab['text'] = '<a href="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente&amp;tab=remote_configuration&amp;id_agente='.$id_agente.'&amp;disk_conf='.$agent_md5.'">'.html_print_image(
'images/remote_configuration.png', 'images/remote_configuration.png',
true, true,
['title' => __('Remote configuration')] ['title' => __('Remote configuration')]
@ -996,7 +1011,7 @@ if ($update_agent) {
[ [
$id_agente, $id_agente,
'standby', 'standby',
$disabled ? '1' : '0', ($disabled) ? '1' : '0',
] ]
); );
// Validate alerts for disabled agents. // Validate alerts for disabled agents.
@ -1082,7 +1097,7 @@ if ($update_agent) {
ui_print_success_message(__('Successfully updated')); ui_print_success_message(__('Successfully updated'));
db_pandora_audit( db_pandora_audit(
'Agent management', 'Agent management',
"Updated agent $alias", 'Updated agent '.$alias,
false, false,
false, false,
$info $info
@ -1224,7 +1239,7 @@ if ($update_module || $create_module) {
} }
if ($id_module_type == 25) { if ($id_module_type == 25) {
// web analysis, from MODULE_WUX. // Web analysis, from MODULE_WUX.
$custom_string_1 = base64_encode((string) get_parameter('custom_string_1', $custom_string_1_default)); $custom_string_1 = base64_encode((string) get_parameter('custom_string_1', $custom_string_1_default));
$custom_integer_1 = (int) get_parameter('custom_integer_1', $custom_integer_1_default); $custom_integer_1 = (int) get_parameter('custom_integer_1', $custom_integer_1_default);
} else { } else {
@ -1261,12 +1276,11 @@ if ($update_module || $create_module) {
foreach ($conf_array as $line) { foreach ($conf_array as $line) {
if (preg_match('/^module_name\s*(.*)/', $line, $match)) { if (preg_match('/^module_name\s*(.*)/', $line, $match)) {
$new_configuration_data .= 'module_name '.io_safe_output($name)."\n"; $new_configuration_data .= 'module_name ';
} $new_configuration_data .= io_safe_output($name)."\n";
} else if (!preg_match('/^module_macro_field.*/', $line, $match)) {
// We delete from conf all the module macros starting with _field. // We delete from conf all the module macros starting with _field.
else if (!preg_match('/^module_macro_field.*/', $line, $match)) { $new_configuration_data .= $line."\n";
$new_configuration_data .= "$line\n";
} }
} }
@ -1428,9 +1442,13 @@ if ($update_module || $create_module) {
} }
$active_snmp_v3 = get_parameter('active_snmp_v3'); $active_snmp_v3 = get_parameter('active_snmp_v3');
if ($active_snmp_v3) {
// LOST CODE? /*
} * if ($active_snmp_v3) {
* // LOST CODE?.
*
* }
*/
$throw_unknown_events = (bool) get_parameter('throw_unknown_events', false); $throw_unknown_events = (bool) get_parameter('throw_unknown_events', false);
// Set the event type that can show. // Set the event type that can show.
@ -1614,7 +1632,7 @@ if ($update_module) {
db_pandora_audit( db_pandora_audit(
'Agent management', 'Agent management',
"Fail to try update module '$name' for agent ".$agent['alias'] "Fail to try update module '".$name."' for agent ".$agent['alias']
); );
} else { } else {
if ($prediction_module == 3) { if ($prediction_module == 3) {
@ -1638,7 +1656,7 @@ if ($update_module) {
db_pandora_audit( db_pandora_audit(
'Agent management', 'Agent management',
"Updated module '$name' for agent ".$agent['alias'], "Updated module '".$name."' for agent ".$agent['alias'],
false, false,
false, false,
io_json_mb_encode($values) io_json_mb_encode($values)
@ -1657,12 +1675,13 @@ if ($create_module) {
} }
$id_module = (int) get_parameter('id_module'); $id_module = (int) get_parameter('id_module');
// Commented because can't create prediction modules
/* /*
if ($id_module == 5) { * Commented because can't create prediction modules
$prediction_module = 1; * if ($id_module == 5) {
} * $prediction_module = 1;
*/ * }
*/
switch ($config['dbtype']) { switch ($config['dbtype']) {
case 'oracle': case 'oracle':
@ -1792,7 +1811,7 @@ if ($create_module) {
$moduletype = $id_module; $moduletype = $id_module;
db_pandora_audit( db_pandora_audit(
'Agent management', 'Agent management',
"Fail to try added module '$name' for agent ".$agent['alias'] "Fail to try added module '".$name."' for agent ".$agent['alias']
); );
} else { } else {
if ($prediction_module == 3) { if ($prediction_module == 3) {
@ -1811,7 +1830,7 @@ if ($create_module) {
$agent = db_get_row('tagente', 'id_agente', $id_agente); $agent = db_get_row('tagente', 'id_agente', $id_agente);
db_pandora_audit( db_pandora_audit(
'Agent management', 'Agent management',
"Added module '$name' for agent ".$agent['alias'], "Added module '".$name."' for agent ".$agent['alias'],
false, false,
true, true,
io_json_mb_encode($values) io_json_mb_encode($values)

View File

@ -562,7 +562,7 @@ class DiscoveryTaskList extends Wizard
if ($task['status'] <= 0 || $task['status'] > 100) { if ($task['status'] <= 0 || $task['status'] > 100) {
$data[7] = '-'; $data[7] = '-';
} else { } else {
$data[7] = ui_progress($task['status'], '100%', 1.5, '#333'); $data[7] = ui_progress($task['status'], '100%', 1.5);
} }
if ($task['utimestamp'] > 0) { if ($task['utimestamp'] > 0) {

View File

@ -1,17 +1,33 @@
<?php <?php
/**
* Module management.
*
* @category Ajax library.
* @package Pandora FMS
* @subpackage Modules.
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Begin.
if (check_login()) { if (check_login()) {
// Pandora FMS- http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation; version 2
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
global $config; global $config;
include_once $config['homedir'].'/include/functions_agents.php'; include_once $config['homedir'].'/include/functions_agents.php';
@ -76,7 +92,7 @@ if (check_login()) {
$id_agents = json_decode(io_safe_output(get_parameter('id_agents'))); $id_agents = json_decode(io_safe_output(get_parameter('id_agents')));
$filter = '%'.get_parameter('q', '').'%'; $filter = '%'.get_parameter('q', '').'%';
$other_filter = json_decode(io_safe_output(get_parameter('other_filter')), true); $other_filter = json_decode(io_safe_output(get_parameter('other_filter')), true);
// TODO TAGS agents_get_modules // TODO TAGS agents_get_modules.
$modules = agents_get_modules( $modules = agents_get_modules(
$id_agents, $id_agents,
false, false,
@ -96,7 +112,7 @@ if (check_login()) {
} }
if ($get_module_detail) { if ($get_module_detail) {
// This script is included manually to be included after jquery and avoid error // This script is included manually to be included after jquery and avoid error.
ui_include_time_picker(); ui_include_time_picker();
ui_require_jquery_file('ui.datepicker-'.get_user_language(), 'include/javascript/i18n/'); ui_require_jquery_file('ui.datepicker-'.get_user_language(), 'include/javascript/i18n/');
@ -307,7 +323,7 @@ if (check_login()) {
if (empty($module_data)) { if (empty($module_data)) {
$result = []; $result = [];
} else { } else {
// Paginate the result // Paginate the result.
$result = array_slice($module_data, $offset, $block_size); $result = array_slice($module_data, $offset, $block_size);
} }
@ -366,10 +382,10 @@ if (check_login()) {
$data[] = html_print_result_div($row[$attr[0]]); $data[] = html_print_result_div($row[$attr[0]]);
} else if ($is_web_content_string) { } else if ($is_web_content_string) {
// Fixed the goliat sends the strings from web // Fixed the goliat sends the strings from web
// without HTML entities // without HTML entities.
$data[] = io_safe_input($row[$attr[0]]); $data[] = io_safe_input($row[$attr[0]]);
} else { } else {
// Fixed the data from Selenium Plugin // Fixed the data from Selenium Plugin.
if ($row[$attr[0]] != strip_tags($row[$attr[0]])) { if ($row[$attr[0]] != strip_tags($row[$attr[0]])) {
$data[] = html_print_result_div($row[$attr[0]]); $data[] = html_print_result_div($row[$attr[0]]);
} else if (is_numeric($row[$attr[0]]) && !modules_is_string_type($row['module_type'])) { } else if (is_numeric($row[$attr[0]]) && !modules_is_string_type($row['module_type'])) {
@ -523,7 +539,8 @@ if (check_login()) {
$agent_w = check_acl($config['id_user'], 0, 'AW'); $agent_w = check_acl($config['id_user'], 0, 'AW');
$access = ($agent_a == true) ? 'AR' : (($agent_w == true) ? 'AW' : 'AR'); $access = ($agent_a == true) ? 'AR' : (($agent_w == true) ? 'AW' : 'AR');
$id_agente = $id_agent = (int) get_parameter('id_agente', 0); $id_agent = (int) get_parameter('id_agente', 0);
$id_agente = $id_agent;
$show_notinit = (int) get_parameter('show_notinit', 0); $show_notinit = (int) get_parameter('show_notinit', 0);
$cluster_list = (int) get_parameter('cluster_list', 0); $cluster_list = (int) get_parameter('cluster_list', 0);
$url = 'index.php?sec=estado&amp;sec2=operation/agentes/ver_agente&amp;id_agente='.$id_agent; $url = 'index.php?sec=estado&amp;sec2=operation/agentes/ver_agente&amp;id_agente='.$id_agent;
@ -549,6 +566,7 @@ if (check_login()) {
case 'type': case 'type':
switch ($sort) { switch ($sort) {
case 'up': case 'up':
default:
$selectTypeUp = $selected; $selectTypeUp = $selected;
$order[] = [ $order[] = [
'field' => 'tagente_modulo.id_modulo', 'field' => 'tagente_modulo.id_modulo',
@ -583,6 +601,10 @@ if (check_login()) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Ignore.
break;
} }
break; break;
@ -603,6 +625,10 @@ if (check_login()) {
'order' => '', 'order' => '',
]; ];
break; break;
default:
// Ignore.
break;
} }
break; break;
@ -623,6 +649,10 @@ if (check_login()) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Ignore.
break;
} }
break; break;
@ -645,7 +675,8 @@ if (check_login()) {
break; break;
} }
// Fix: for tag functionality groups have to be all user_groups (propagate ACL funct!) // Fix: for tag functionality groups have to be all user_groups
// (propagate ACL funct!).
$groups = users_get_groups($config['id_user'], $access); $groups = users_get_groups($config['id_user'], $access);
$tags_join = ''; $tags_join = '';
@ -669,7 +700,7 @@ if (check_login()) {
$status_filter_sql = '1 = 1'; $status_filter_sql = '1 = 1';
if ($status_filter_monitor == AGENT_MODULE_STATUS_NOT_NORMAL) { if ($status_filter_monitor == AGENT_MODULE_STATUS_NOT_NORMAL) {
// Not normal // Not normal.
$status_filter_sql = ' tagente_estado.estado <> 0'; $status_filter_sql = ' tagente_estado.estado <> 0';
} else if ($status_filter_monitor != -1) { } else if ($status_filter_monitor != -1) {
$status_filter_sql = 'tagente_estado.estado = '.$status_filter_monitor; $status_filter_sql = 'tagente_estado.estado = '.$status_filter_monitor;
@ -693,7 +724,7 @@ if (check_login()) {
} }
// Count monitors/modules // Count monitors/modules
// Build the order sql // Build the order sql.
$first = true; $first = true;
foreach ($order as $ord) { foreach ($order as $ord) {
if ($first) { if ($first) {
@ -936,12 +967,12 @@ if (check_login()) {
} }
} }
// Adds tag context information // Adds tag context information.
if (tags_get_modules_tag_count($module['id_agente_modulo']) > 0) { if (tags_get_modules_tag_count($module['id_agente_modulo']) > 0) {
$data[3] .= ' <a class="tag_details" href="ajax.php?page=operation/agentes/estado_monitores&get_tag_tooltip=1&id_agente_modulo='.$module['id_agente_modulo'].'">'.html_print_image('images/tag_red.png', true, ['id' => 'tag-details-'.$module['id_agente_modulo'], 'class' => 'img_help']).'</a> '; $data[3] .= ' <a class="tag_details" href="ajax.php?page=operation/agentes/estado_monitores&get_tag_tooltip=1&id_agente_modulo='.$module['id_agente_modulo'].'">'.html_print_image('images/tag_red.png', true, ['id' => 'tag-details-'.$module['id_agente_modulo'], 'class' => 'img_help']).'</a> ';
} }
// Adds relations context information // Adds relations context information.
if (modules_relation_exists($module['id_agente_modulo'])) { if (modules_relation_exists($module['id_agente_modulo'])) {
$data[3] .= ' <a class="relations_details" href="ajax.php?page=operation/agentes/estado_monitores&get_relations_tooltip=1&id_agente_modulo='.$module['id_agente_modulo'].'">'.html_print_image('images/link2.png', true, ['id' => 'relations-details-'.$module['id_agente_modulo'], 'class' => 'img_help']).'</a> '; $data[3] .= ' <a class="relations_details" href="ajax.php?page=operation/agentes/estado_monitores&get_relations_tooltip=1&id_agente_modulo='.$module['id_agente_modulo'].'">'.html_print_image('images/link2.png', true, ['id' => 'relations-details-'.$module['id_agente_modulo'], 'class' => 'img_help']).'</a> ';
} }
@ -964,7 +995,7 @@ if (check_login()) {
$title $title
); );
$data[5] = ui_print_status_image($status, $title, true, false, false, true); $data[5] = ui_print_module_status($module['estado'], $title, true, false, true);
if (!$show_context_help_first_time) { if (!$show_context_help_first_time) {
$show_context_help_first_time = true; $show_context_help_first_time = true;
@ -973,122 +1004,85 @@ if (check_login()) {
} }
} }
if ($module['id_tipo_modulo'] == 24) { if (is_numeric($module['datos']) && !modules_is_string_type($module['id_tipo_modulo'])) {
// log4x if ($config['render_proc']) {
switch ($module['datos']) { switch ($module['id_tipo_modulo']) {
case 10: case 2:
$salida = 'TRACE'; case 6:
$style = 'font-weight:bold; color:darkgreen;'; case 9:
break; case 18:
case 21:
case 31:
if ($module['datos'] >= 1) {
$salida = $config['render_proc_ok'];
} else {
$salida = $config['render_proc_fail'];
}
break;
case 20: default:
$salida = 'DEBUG'; switch ($module['id_tipo_modulo']) {
$style = 'font-weight:bold; color:darkgreen;'; case 15:
break; $value = db_get_value('snmp_oid', 'tagente_modulo', 'id_agente_modulo', $module['id_agente_modulo']);
if ($value == '.1.3.6.1.2.1.1.3.0' || $value == '.1.3.6.1.2.1.25.1.1.0') {
case 30: if ($module['post_process'] > 0) {
$salida = 'INFO'; $salida = human_milliseconds_to_string(($module['datos'] / $module['post_process']));
$style = 'font-weight:bold; color:darkgreen;';
break;
case 40:
$salida = 'WARN';
$style = 'font-weight:bold; color:darkorange;';
break;
case 50:
$salida = 'ERROR';
$style = 'font-weight:bold; color:red;';
break;
case 60:
$salida = 'FATAL';
$style = 'font-weight:bold; color:red;';
break;
}
$salida = "<span style='$style'>$salida</span>";
} else {
if (is_numeric($module['datos']) && !modules_is_string_type($module['id_tipo_modulo'])) {
if ($config['render_proc']) {
switch ($module['id_tipo_modulo']) {
case 2:
case 6:
case 9:
case 18:
case 21:
case 31:
if ($module['datos'] >= 1) {
$salida = $config['render_proc_ok'];
} else {
$salida = $config['render_proc_fail'];
}
break;
default:
switch ($module['id_tipo_modulo']) {
case 15:
$value = db_get_value('snmp_oid', 'tagente_modulo', 'id_agente_modulo', $module['id_agente_modulo']);
if ($value == '.1.3.6.1.2.1.1.3.0' || $value == '.1.3.6.1.2.1.25.1.1.0') {
if ($module['post_process'] > 0) {
$salida = human_milliseconds_to_string(($module['datos'] / $module['post_process']));
} else {
$salida = human_milliseconds_to_string($module['datos']);
}
} else { } else {
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision'])); $salida = human_milliseconds_to_string($module['datos']);
} }
break;
default:
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision']));
break;
}
break;
}
} else {
switch ($module['id_tipo_modulo']) {
case 15:
$value = db_get_value('snmp_oid', 'tagente_modulo', 'id_agente_modulo', $module['id_agente_modulo']);
if ($value == '.1.3.6.1.2.1.1.3.0' || $value == '.1.3.6.1.2.1.25.1.1.0') {
if ($module['post_process'] > 0) {
$salida = human_milliseconds_to_string(($module['datos'] / $module['post_process']));
} else { } else {
$salida = human_milliseconds_to_string($module['datos']); $salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision']));
} }
} else { break;
default:
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision'])); $salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision']));
} break;
break; }
break;
default:
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision']));
break;
}
}
// Show units ONLY in numeric data types
if (isset($module['unit'])) {
$data_macro = modules_get_unit_macro($module['datos'], $module['unit']);
if ($data_macro) {
$salida = $data_macro;
} else {
$salida .= '&nbsp;'.'<i>'.io_safe_output($module['unit']).'</i>';
}
} }
} else { } else {
switch ($module['id_tipo_modulo']) {
case 15:
$value = db_get_value('snmp_oid', 'tagente_modulo', 'id_agente_modulo', $module['id_agente_modulo']);
if ($value == '.1.3.6.1.2.1.1.3.0' || $value == '.1.3.6.1.2.1.25.1.1.0') {
if ($module['post_process'] > 0) {
$salida = human_milliseconds_to_string(($module['datos'] / $module['post_process']));
} else {
$salida = human_milliseconds_to_string($module['datos']);
}
} else {
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision']));
}
break;
default:
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision']));
break;
}
}
// Show units ONLY in numeric data types
if (isset($module['unit'])) {
$data_macro = modules_get_unit_macro($module['datos'], $module['unit']); $data_macro = modules_get_unit_macro($module['datos'], $module['unit']);
if ($data_macro) { if ($data_macro) {
$salida = $data_macro; $salida = $data_macro;
} else { } else {
$salida = ui_print_module_string_value( $salida .= '&nbsp;'.'<i>'.io_safe_output($module['unit']).'</i>';
$module['datos'],
$module['id_agente_modulo'],
$module['current_interval'],
$module['module_name']
);
} }
} }
} else {
$data_macro = modules_get_unit_macro($module['datos'], $module['unit']);
if ($data_macro) {
$salida = $data_macro;
} else {
$salida = ui_print_module_string_value(
$module['datos'],
$module['id_agente_modulo'],
$module['current_interval'],
$module['module_name']
);
}
} }
if ($module['id_tipo_modulo'] != 25) { if ($module['id_tipo_modulo'] != 25) {
@ -1230,5 +1224,3 @@ if (check_login()) {
return; return;
} }
} }

View File

@ -1519,43 +1519,8 @@ class NetworkMap
*/ */
public static function getColorByStatus($status) public static function getColorByStatus($status)
{ {
if (isset($status) === false) { include_once __DIR__.'/../functions_modules.php';
return COL_UNKNOWN; return modules_get_color_status($status);
}
switch ($status) {
case AGENT_MODULE_STATUS_NORMAL:
case AGENT_STATUS_NORMAL:
return COL_NORMAL;
case AGENT_MODULE_STATUS_NOT_INIT:
case AGENT_STATUS_NOT_INIT:
return COL_NOTINIT;
case AGENT_MODULE_STATUS_CRITICAL_BAD:
case AGENT_STATUS_CRITICAL:
return COL_CRITICAL;
case AGENT_MODULE_STATUS_WARNING:
case AGENT_STATUS_WARNING:
return COL_WARNING;
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
case AGENT_MODULE_STATUS_WARNING_ALERT:
case AGENT_STATUS_ALERT_FIRED:
return COL_ALERTFIRED;
case AGENT_MODULE_STATUS_UNKNOWN:
case AGENT_STATUS_UNKNOWN:
return COL_UNKNOWN;
default:
// Ignored.
break;
}
return COL_IGNORED;
} }

View File

@ -2294,6 +2294,54 @@ function modules_get_modulegroup_name($modulegroup_id)
} }
/**
* Returns target color to be used based on the status received.
*
* @param integer $status Source information.
*
* @return string HTML tag for color.
*/
function modules_get_color_status($status)
{
if (isset($status) === false) {
return COL_UNKNOWN;
}
switch ($status) {
case AGENT_MODULE_STATUS_NORMAL:
case AGENT_STATUS_NORMAL:
return COL_NORMAL;
case AGENT_MODULE_STATUS_NOT_INIT:
case AGENT_STATUS_NOT_INIT:
return COL_NOTINIT;
case AGENT_MODULE_STATUS_CRITICAL_BAD:
case AGENT_STATUS_CRITICAL:
return COL_CRITICAL;
case AGENT_MODULE_STATUS_WARNING:
case AGENT_STATUS_WARNING:
return COL_WARNING;
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
case AGENT_MODULE_STATUS_WARNING_ALERT:
case AGENT_STATUS_ALERT_FIRED:
return COL_ALERTFIRED;
case AGENT_MODULE_STATUS_UNKNOWN:
case AGENT_STATUS_UNKNOWN:
return COL_UNKNOWN;
default:
// Ignored.
break;
}
return COL_IGNORED;
}
/** /**
* Gets a module status an modify the status and title reference variables * Gets a module status an modify the status and title reference variables
* *

View File

@ -9642,39 +9642,39 @@ function reporting_tiny_stats(
$out .= '<div id="bullets_modules">'; $out .= '<div id="bullets_modules">';
// $out .='<span id="total_count_'.$uniq_id.'" class="forced_title" style="font-size: 13pt">'.$total_count.$separator.'</span>'; // $out .='<span id="total_count_'.$uniq_id.'" class="forced_title" style="font-size: 13pt">'.$total_count.$separator.'</span>';
if (isset($fired_count) && $fired_count > 0) { if (isset($fired_count) && $fired_count > 0) {
$out .= '<div><div class="bullet_modules orange_background"></div>'; $out .= '<div><div id="fired_count_'.$uniq_id.'" class="forced_title bullet_modules orange_background"></div>';
$out .= '<span class="forced_title" id="fired_count_'.$uniq_id.'" style="font-size: 12pt">'.$fired_count.'</span></div>'; $out .= '<span style="font-size: 12pt">'.$fired_count.'</span></div>';
} }
if (isset($critical_count) && $critical_count > 0) { if (isset($critical_count) && $critical_count > 0) {
$out .= '<div><div class="bullet_modules red_background"></div>'; $out .= '<div><div id="critical_count_'.$uniq_id.'" class="forced_title bullet_modules red_background"></div>';
$out .= '<span class="forced_title" id="critical_count_'.$uniq_id.'" style="font-size: 12pt">'.$critical_count.'</span></div>'; $out .= '<span style="font-size: 12pt">'.$critical_count.'</span></div>';
} }
if (isset($warning_count) && $warning_count > 0) { if (isset($warning_count) && $warning_count > 0) {
$out .= '<div><div class="bullet_modules yellow_background"></div>'; $out .= '<div><div id="warning_count_'.$uniq_id.'" class="forced_title bullet_modules yellow_background"></div>';
$out .= '<span class="forced_title" id="warning_count_'.$uniq_id.'" style="font-size: 12pt">'.$warning_count.'</span></div>'; $out .= '<span style="font-size: 12pt">'.$warning_count.'</span></div>';
} }
if (isset($unknown_count) && $unknown_count > 0) { if (isset($unknown_count) && $unknown_count > 0) {
$out .= '<div><div class="bullet_modules grey_background"></div>'; $out .= '<div><div id="unknown_count_'.$uniq_id.'" class="forced_title bullet_modules grey_background"></div>';
$out .= '<span class="forced_title" id="unknown_count_'.$uniq_id.'" style="font-size: 12pt">'.$unknown_count.'</span></div>'; $out .= '<span style="font-size: 12pt">'.$unknown_count.'</span></div>';
} }
if (isset($not_init_count) && $not_init_count > 0) { if (isset($not_init_count) && $not_init_count > 0) {
$out .= '<div><div class="bullet_modules blue_background"></div>'; $out .= '<div><div id="not_init_count_'.$uniq_id.'" class="forced_title bullet_modules blue_background"></div>';
$out .= '<span class="forced_title" id="not_init_count_'.$uniq_id.'" style="font-size: 12pt">'.$not_init_count.'</span></div>'; $out .= '<span style="font-size: 12pt">'.$not_init_count.'</span></div>';
} }
if (isset($normal_count) && $normal_count > 0) { if (isset($normal_count) && $normal_count > 0) {
$out .= '<div><div class="bullet_modules green_background"></div>'; $out .= '<div><div id="normal_count_'.$uniq_id.'" class="forced_title bullet_modules green_background"></div>';
$out .= '<span class="forced_title" id="normal_count_'.$uniq_id.'" style="font-size: 12pt">'.$normal_count.'</span></div>'; $out .= '<span style="font-size: 12pt">'.$normal_count.'</span></div>';
} }
$out .= '</div>'; $out .= '</div>';
} else { } else {
// Classic ones. // Classic ones.
$out .= '<b>'.'<span id="total_count_'.$uniq_id.'" class="forced_title" style="font-size: 7pt">'.$total_count.'</span>'; $out .= '<b><span id="total_count_'.$uniq_id.'" class="forced_title" style="font-size: 7pt">'.$total_count.'</span>';
if (isset($fired_count) && $fired_count > 0) { if (isset($fired_count) && $fired_count > 0) {
$out .= ' '.$separator.' <span class="orange forced_title" id="fired_count_'.$uniq_id.'" style="font-size: 7pt">'.$fired_count.'</span>'; $out .= ' '.$separator.' <span class="orange forced_title" id="fired_count_'.$uniq_id.'" style="font-size: 7pt">'.$fired_count.'</span>';
} }

View File

@ -2647,6 +2647,62 @@ function ui_print_status_image(
} }
/**
* Prints an image representing a status.
*
* @param string $status Module status.
* @param string $title Title.
* @param boolean $return Whether to return an output string or echo now (optional, echo by default).
* @param array $options Options to set image attributes: I.E.: style.
* @param boolean $rounded_image Round.
*
* @return string HTML.
*/
function ui_print_module_status(
$status,
$title='',
$return=false,
$options=false,
$rounded_image=false
) {
global $config;
if ($options === false) {
$options = [];
}
$options['style'] .= 'width: 50px;';
$options['style'] .= 'height: 2em;';
include_once __DIR__.'/functions_modules.php';
$options['style'] .= 'background: '.modules_get_color_status($status).';';
if ($rounded_image === true) {
$options['style'] .= 'border-radius: 5px;';
}
$options['title'] = $title;
$options['data-title'] = $title;
$options['data-use_title_for_force_title'] = 1;
$options['class'] = 'forced_title';
$output = '<div ';
foreach ($options as $k => $v) {
$output .= $k.'="'.$v.'"';
}
$output .= '>';
$output .= '</div>';
if ($return === false) {
echo $output;
}
return $output;
}
/** /**
* Generates a progress bar CSS based. * Generates a progress bar CSS based.
* Requires css progress.css * Requires css progress.css

View File

@ -722,23 +722,36 @@ function print_clock_digital_1($time_format, $timezone, $clock_animation, $width
} }
function print_donut_narrow_graph($colors, $width, $height, $data, $data_total) /**
{ * Print dougnhnut.
*
* @param array $colors Colors.
* @param integer $width Width.
* @param integer $height Height.
* @param array $data Data.
* @param mixed $data_total Data_total.
*
* @return string HTML.
*/
function print_donut_narrow_graph(
array $colors,
$width,
$height,
array $data,
$data_total
) {
if (empty($data)) { if (empty($data)) {
return graph_nodata_image($width, $height, 'pie'); return graph_nodata_image($width, $height, 'pie');
} }
$data = json_encode($data);
$data = json_decode(json_encode($data));
$colors = json_encode($colors);
$colors = json_decode(json_encode($colors));
$series = count($data); $series = count($data);
if (($series != count($colors)) || ($series == 0)) { if (($series != count($colors)) || ($series == 0)) {
return; return '';
} }
$data = json_encode($data);
$colors = json_encode($colors);
$graph_id = uniqid('graph_'); $graph_id = uniqid('graph_');
$out = "<div id='$graph_id'></div>"; $out = "<div id='$graph_id'></div>";