Merge branch 'ent-2232-Checkbox-Opciones-para-los-informes' into 'develop'

Custom fields in availability report type

See merge request artica/pandorafms!2324

Former-commit-id: 66fca18bc387db638fb9ee39c5f21bc5ec1b2069
This commit is contained in:
Daniel Rodriguez 2019-04-05 13:01:09 +02:00
commit 781a6702ad
6 changed files with 656 additions and 149 deletions

View File

@ -2,5 +2,30 @@ START TRANSACTION;
UPDATE tuser_task SET parameters = 'a:5:{i:0;a:6:{s:11:\"description\";s:28:\"Report pending to be created\";s:5:\"table\";s:7:\"treport\";s:8:\"field_id\";s:9:\"id_report\";s:10:\"field_name\";s:4:\"name\";s:4:\"type\";s:3:\"int\";s:9:\"acl_group\";s:8:\"id_group\";}i:1;a:2:{s:11:\"description\";s:46:\"Send to email addresses (separated by a comma)\";s:4:\"type\";s:4:\"text\";}i:2;a:2:{s:11:\"description\";s:7:\"Subject\";s:8:\"optional\";i:1;}i:3;a:3:{s:11:\"description\";s:7:\"Message\";s:4:\"type\";s:4:\"text\";s:8:\"optional\";i:1;}i:4;a:2:{s:11:\"description\";s:11:\"Report Type\";s:4:\"type\";s:11:\"report_type\";}}' where function_name = "cron_task_generate_report";
ALTER TABLE `treport_content` ADD COLUMN `total_time` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `time_failed` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `time_in_ok_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `time_in_unknown_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `time_of_not_initialized_module` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `time_of_downtime` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `total_checks` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `checks_failed` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `checks_in_ok_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `unknown_checks` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `total_time` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `time_failed` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `time_in_ok_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `time_in_unknown_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `time_of_not_initialized_module` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `time_of_downtime` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `total_checks` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `checks_failed` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `checks_in_ok_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `unknown_checks` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
COMMIT;

View File

@ -764,6 +764,18 @@ ALTER TABLE treport_content_template ADD COLUMN `lapse_calc` tinyint(1) default
ALTER TABLE treport_content_template ADD COLUMN `lapse` int(11) default '300';
ALTER TABLE treport_content_template ADD COLUMN `visual_format` tinyint(1) default '0';
ALTER TABLE treport_content_template ADD COLUMN `hide_no_data` tinyint(1) default '0';
ALTER TABLE `treport_content_template` ADD COLUMN `total_time` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `time_failed` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `time_in_ok_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `time_in_unknown_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `time_of_not_initialized_module` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `time_of_downtime` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `total_checks` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `checks_failed` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `checks_in_ok_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `unknown_checks` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content_template` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
-- -----------------------------------------------------
-- Table `treport_content_sla_com_temp` (treport_content_sla_combined_template)
@ -1379,6 +1391,18 @@ ALTER TABLE treport_content ADD COLUMN `hide_no_data` tinyint(1) default '0';
ALTER TABLE treport_content ADD COLUMN `recursion` tinyint(1) default NULL;
ALTER TABLE treport_content ADD COLUMN `show_extended_events` tinyint(1) default '0';
UPDATE `treport_content` SET type="netflow_summary" WHERE type="netflow_pie" OR type="netflow_statistics";
ALTER TABLE `treport_content` ADD COLUMN `total_time` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `time_failed` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `time_in_ok_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `time_in_unknown_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `time_of_not_initialized_module` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `time_of_downtime` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `total_checks` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `checks_failed` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `checks_in_ok_status` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `unknown_checks` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
ALTER TABLE `treport_content` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
-- ---------------------------------------------------------------------
-- Table `tmodule_relationship`

View File

@ -119,6 +119,20 @@ $visual_format = 0;
// Others
$filter_search = '';
// Added for select fields.
$total_time = true;
$time_failed = true;
$time_in_ok_status = true;
$time_in_unknown_status = true;
$time_of_not_initialized_module = true;
$time_of_downtime = true;
$total_checks = true;
$checks_failed = true;
$checks_in_ok_status = true;
$unknown_checks = true;
$agent_max_value = true;
$agent_min_value = true;
switch ($action) {
case 'new':
$actionParameter = 'save';
@ -501,6 +515,18 @@ switch ($action) {
$sunday = $item['sunday'];
$time_from = $item['time_from'];
$time_to = $item['time_to'];
$total_time = $item['total_time'];
$time_failed = $item['time_failed'];
$time_in_ok_status = $item['time_in_ok_status'];
$time_in_unknown_status = $item['time_in_unknown_status'];
$time_of_not_initialized_module = $item['time_of_not_initialized_module'];
$time_of_downtime = $item['time_of_downtime'];
$total_checks = $item['total_checks'];
$checks_failed = $item['checks_failed'];
$checks_in_ok_status = $item['checks_in_ok_status'];
$unknown_checks = $item['unknown_checks'];
$agent_max_value = $item['agent_max_value'];
$agent_min_value = $item['agent_min_value'];
break;
case 'group_report':
@ -1597,20 +1623,6 @@ $class = 'databox filters';
REPORT_EXCEPTION_CONDITION_NOT_OK => __('Not OK'),
];
html_print_select($list_exception_condition, 'exception_condition', $exception_condition);
/*
echo ;
html_print_radio_button ('radiobutton_exception_condition', 0, '', $exception_condition);
echo __('>=');
html_print_radio_button ('radiobutton_exception_condition', 1, '', $exception_condition);
echo __('<');
html_print_radio_button ('radiobutton_exception_condition', 2, '', $exception_condition);
echo __('OK');
html_print_radio_button ('radiobutton_exception_condition', 3, '', $exception_condition);
echo __('Not OK');
html_print_radio_button ('radiobutton_exception_condition', 4, '', $exception_condition);
*/
?>
</td>
</tr>
@ -1620,6 +1632,65 @@ $class = 'databox filters';
<td><?php html_print_select($show_graph_options, 'combo_graph_options', $show_graph); ?></td>
</tr>
<tr id="row_select_fields" style="" class="datos">
<td style="font-weight:bold;margin-right:150px;">
<?php
echo __('Select fields to show');
?>
</td>
<td>
<table border="0">
<td>
<p style="margin-right:30px;">
<?php
echo __('Total time');
html_print_checkbox('total_time', 1, $total_time);
?>
</p>
</td>
<td>
<p style="margin-right:30px;">
<?php
echo __('Time failed');
html_print_checkbox('time_failed', 1, $time_failed);
?>
</p>
</td>
<td>
<p style="margin-right:30px;">
<?php
echo __('Time in OK status');
html_print_checkbox('time_in_ok_status', 1, $time_in_ok_status);
?>
</p>
</td>
<td>
<p style="margin-right:30px;">
<?php
echo __('Time in unknown status');
html_print_checkbox('time_in_unknown_status', 1, $time_in_unknown_status);
?>
</p>
</td>
<td>
<p style="margin-right:30px;">
<?php
echo __('Time of not initialized module');
html_print_checkbox('time_of_not_initialized_module', 1, $time_of_not_initialized_module);
?>
</p>
</td>
<td>
<p style="margin-right:30px;">
<?php
echo __('Time of downtime');
html_print_checkbox('time_of_downtime', 1, $time_of_downtime);
?>
</p>
</td>
</table>
</td>
</tr>
<tr id="row_show_address_agent" style="" class="datos">
<td style="font-weight:bold;">
@ -1629,7 +1700,7 @@ $class = 'databox filters';
</td>
<td>
<?php
html_print_checkbox(
html_print_checkbox_switch(
'checkbox_show_address_agent',
1,
$show_address_agent
@ -1637,12 +1708,13 @@ $class = 'databox filters';
?>
</td>
</tr>
<tr id="row_show_resume" style="" class="datos">
<td style="font-weight:bold;"><?php echo __('Show resume').ui_print_help_tip(__('Show a summary chart with max, min and average number of total modules at the end of the report and Checks.'), true); ?></td>
<td>
<?php
html_print_checkbox(
html_print_checkbox_switch(
'checkbox_show_resume',
1,
$show_resume
@ -1650,6 +1722,78 @@ $class = 'databox filters';
?>
</td>
</tr>
<tr id="row_select_fields2" style="" class="datos">
<td style="font-weight:bold;margin-right:150px;">
<?php
echo __('<p style= "margin-left:15px;">Select fields to show</p>');
?>
</td>
<td>
<table border="0">
<td>
<p style="margin-right:30px;">
<?php
echo __('Total checks');
html_print_checkbox('total_checks', 1, $total_checks);
?>
</p>
</td>
<td>
<p style="margin-right:30px;">
<?php
echo __('Checks failed');
html_print_checkbox('checks_failed', 1, $checks_failed);
?>
</p>
</td>
<td>
<p style="margin-right:30px;">
<?php
echo __('Checks in OK status');
html_print_checkbox('checks_in_ok_status', 1, $checks_in_ok_status);
?>
</p>
</td>
<td>
<p style="margin-right:30px;">
<?php
echo __('Unknown checks');
html_print_checkbox('unknown_checks', 1, $unknown_checks);
?>
</p>
</td>
<td>
</table>
</td>
</tr>
<tr id="row_select_fields3" style="" class="datos">
<td style="font-weight:bold;margin-right:150px;">
<?php
echo __('<p style= "margin-left:15px;">Select fields to show</p>');
?>
</td>
<td>
<table border="0">
<td>
<p style="margin-right:30px;">
<?php
echo __('Agent max value');
html_print_checkbox('agent_max_value', 1, $agent_max_value);
?>
</p>
</td>
<td>
<p style="margin-right:30px;">
<?php
echo __('Agent min values');
html_print_checkbox('agent_min_value', 1, $agent_min_value);
?>
</p>
</td>
<td>
</table>
</td>
</tr>
<tr id="row_show_summary_group" style="" class="datos">
<td style="font-weight:bold;"><?php echo __('Show Summary group'); ?></td>
@ -2625,6 +2769,17 @@ $(document).ready (function () {
}
});
$("#checkbox-checkbox_show_resume").change(function(){
if($(this).is(":checked")){
$("#row_select_fields2").show();
$("#row_select_fields3").show();
}
else{
$("#row_select_fields2").hide();
$("#row_select_fields3").hide();
}
});
});
@ -3139,6 +3294,9 @@ function chooseType() {
$("#row_event_type").hide();
$("#row_event_status").hide();
$("#row_source").hide();
$('#row_select_fields').hide();
$("#row_select_fields2").hide();
$("#row_select_fields3").hide();
// SLA list default state
$("#sla_list").hide();
@ -3547,6 +3705,15 @@ function chooseType() {
$("#row_show_resume").show();
$("#row_working_time").show();
$('#row_hide_notinit_agents').show();
$('#row_select_fields').show();
if($("#checkbox-checkbox_show_resume").is(":checked")){
$("#row_select_fields2").show();
$("#row_select_fields3").show();
}
else{
$("#row_select_fields2").hide();
$("#row_select_fields3").hide();
}
$("#row_historical_db_check").hide();
break;

View File

@ -70,7 +70,7 @@ global $config;
// IMPORTANT NOTE: All reporting pages are used also for metaconsole reporting functionality
// So, it's very important to specify full url and paths to resources because metaconsole has a different
// entry point: enterprise/meta/index.php than normal console !!!
// Login check
// Login check.
check_login();
enterprise_hook('open_meta_frame');
@ -89,7 +89,7 @@ if (!$report_r && !$report_w && !$report_m) {
require_once $config['homedir'].'/include/functions_reports.php';
// Load enterprise extensions
// Load enterprise extensions.
enterprise_include('operation/reporting/custom_reporting.php');
enterprise_include_once('include/functions_metaconsole.php');
@ -98,7 +98,7 @@ if (enterprise_include_once('include/functions_reporting.php') !== ENTERPRISE_NO
$enterpriseEnable = true;
}
// Constant with fonts directory
// Constant with fonts directory.
define('_MPDF_TTFONTPATH', 'include/fonts/');
$activeTab = get_parameter('tab', 'main');
@ -162,6 +162,10 @@ if ($idReport != 0) {
$edit = true;
}
break;
default:
// Default.
break;
}
if (! $edit) {
@ -227,6 +231,10 @@ switch ($action) {
ORDER BY "order"'
);
break;
default:
// Default.
break;
}
if ($items === false) {
@ -234,7 +242,7 @@ switch ($action) {
}
// Clean the repeated order values
// Clean the repeated order values.
$order_temp = 1;
foreach ($items as $item) {
switch ($config['dbtype']) {
@ -254,6 +262,10 @@ switch ($action) {
['id_rc' => $item['id_rc']]
);
break;
default:
// Default.
break;
}
$order_temp++;
@ -281,6 +293,10 @@ switch ($action) {
ORDER BY "order"'
);
break;
default:
// Default.
break;
}
if ($items === false) {
@ -344,6 +360,10 @@ switch ($action) {
['id_rc' => $id]
);
break;
default:
// Default.
break;
}
}
@ -415,6 +435,10 @@ switch ($action) {
}
}
break;
default:
// Default.
break;
}
}
break;
@ -444,9 +468,9 @@ switch ($action) {
break;
}
// Page header for metaconsole
if ($enterpriseEnable and defined('METACONSOLE')) {
// Bread crumbs
// Page header for metaconsole.
if ($enterpriseEnable && defined('METACONSOLE')) {
// Bread crumbs.
ui_meta_add_breadcrumb(
[
'link' => 'index.php?sec=reporting&sec2=godmode/reporting/reporting_builder&pure='.$pure,
@ -456,10 +480,11 @@ switch ($action) {
ui_meta_print_page_header($nav_bar);
// Print header
// Print header.
ui_meta_print_header(__('Reporting'), '', $buttons);
}
// Page header for normal console
// Page header for normal console.
else {
ui_print_page_header(__('Custom reporting'), 'images/op_reporting.png', false, '', false, $buttons, false, '', 60);
}
@ -471,7 +496,7 @@ switch ($action) {
case 'group_view':
if ($config['id_user'] == $report['id_user'] || is_user_admin($config['id_user'])) {
$delete = true;
// owner can delete
// Owner can delete.
} else {
$delete = check_acl(
$config['id_user'],
@ -484,7 +509,7 @@ switch ($action) {
case 'group_edit':
if ($config['id_user'] == $report['id_user'] || is_user_admin($config['id_user'])) {
$delete = true;
// owner can delete
// Owner can delete.
} else {
$delete = check_acl(
$config['id_user'],
@ -501,6 +526,10 @@ switch ($action) {
$delete = true;
}
break;
default:
// Default.
break;
}
if (! $delete) {
@ -571,7 +600,7 @@ switch ($action) {
ui_require_jquery_file('bgiframe');
ui_require_jquery_file('autocomplete');
// Show only selected groups
// Show only selected groups.
if ($id_group > 0) {
$group = ["$id_group" => $id_group];
} else {
@ -595,7 +624,7 @@ switch ($action) {
}
// Fix : group filter was not working
// Show only selected groups
// Show only selected groups.
if ($id_group > 0) {
$group = ["$id_group" => $id_group];
$filter['id_group'] = $id_group;
@ -603,8 +632,8 @@ switch ($action) {
$group = false;
}
// Filter normal and metaconsole reports
if ($config['metaconsole'] == 1 and defined('METACONSOLE')) {
// Filter normal and metaconsole reports.
if ($config['metaconsole'] == 1 && defined('METACONSOLE')) {
$filter['metaconsole'] = 1;
} else {
$filter['metaconsole'] = 0;
@ -670,12 +699,12 @@ switch ($action) {
$table->size['csv'] = '5%';
$next = 4;
// Calculate dinamically the number of the column
// Calculate dinamically the number of the column.
if (enterprise_hook('load_custom_reporting_1') !== ENTERPRISE_NOT_HOOK) {
$next = 7;
}
// Admin options only for RM flag
// Admin options only for RM flag.
if (check_acl($config['id_user'], 0, 'RM')) {
$table->head[$next] = __('Private');
$table->size[$next] = '2%';
@ -743,7 +772,7 @@ switch ($action) {
$data[1] = ui_print_truncate_text($report['description'], 70);
// Remove html and xml button if items are larger than limit
// Remove html and xml button if items are larger than limit.
$item_count = db_get_num_rows('SELECT * FROM treport_content WHERE id_report='.$report['id_report']);
$report['overload'] = $item_count >= $config['report_limit'];
if ($report['overload']) {
@ -752,7 +781,7 @@ switch ($action) {
} else if (!$report['non_interactive']) {
$data[2] = '<a href="'.$config['homeurl'].'index.php?sec=reporting&sec2=operation/reporting/reporting_viewer&id='.$report['id_report'].'&pure='.$pure.'">'.html_print_image('images/html.png', true, ['title' => __('HTML view')]).'</a>';
$data[3] = '<a href="'.ui_get_full_url(false, false, false, false).'ajax.php?page='.$config['homedir'].'/operation/reporting/reporting_xml&id='.$report['id_report'].'">'.html_print_image('images/xml.png', true, ['title' => __('Export to XML')]).'</a>';
// I chose ajax.php because it's supposed to give XML anyway
// I chose ajax.php because it's supposed to give XML anyway.
} else {
$data[2] = html_print_image(
'images/html_disabled.png',
@ -765,14 +794,14 @@ switch ($action) {
}
// Calculate dinamically the number of the column
// Calculate dinamically the number of the column.
$next = 4;
if (enterprise_hook('load_custom_reporting_2') !== ENTERPRISE_NOT_HOOK) {
$next = 7;
}
// Admin options only for RM flag
// Admin options only for RM flag.
if (check_acl($config['id_user'], 0, 'RM')) {
if ($report['private'] == 1) {
$data[$next] = __('Yes');
@ -820,6 +849,10 @@ switch ($action) {
$delete = true;
}
break;
default:
// Default.
break;
}
if ($edit || $delete) {
@ -915,7 +948,6 @@ switch ($action) {
}
enterprise_hook('close_meta_frame');
return;
break;
@ -943,6 +975,10 @@ switch ($action) {
$idGroupReport = $report['id_group'];
$description = $report['description'];
break;
default:
// Default.
break;
}
break;
@ -976,6 +1012,10 @@ switch ($action) {
$id_group_edit = 0;
$private = 1;
break;
default:
// Default.
break;
}
if ($action == 'update') {
@ -1026,10 +1066,10 @@ switch ($action) {
$action = 'edit';
} else if ($action == 'save') {
if ($reportName != '' && $idGroupReport != '') {
// This flag allow to differentiate between normal console and metaconsole reports
// This flag allow to differentiate between normal console and metaconsole reports.
$metaconsole_report = (int) is_metaconsole();
// Juanma (07/05/2014) New feature: Custom front page for reports
// Juanma (07/05/2014) New feature: Custom front page for reports.
if ($config['custom_report_front']) {
$custom_font = $config['custom_report_front_font'];
$logo = $config['custom_report_front_logo'];
@ -1098,7 +1138,6 @@ switch ($action) {
$good_format = false;
switch ($action) {
case 'update':
$values = [];
$values['id_report'] = $idReport;
// ---------------------------------------------------
@ -1132,7 +1171,6 @@ switch ($action) {
break;
case 'event_report_log':
$agents_to_report = get_parameter('id_agents3');
$source = get_parameter('source', '');
$search = get_parameter('search', '');
@ -1154,7 +1192,7 @@ switch ($action) {
$values['top_n_value'] = get_parameter('quantity');
$interval_max = get_parameter('max_interval');
$interval_min = get_parameter('min_interval');
// Checks intervals fields
// Checks intervals fields.
if (preg_match('/^(\-)*[0-9]*\.?[0-9]+$/', $interval_max) and preg_match('/^(\-)*[0-9]*\.?[0-9]+$/', $interval_min)) {
$good_format = true;
}
@ -1221,9 +1259,21 @@ switch ($action) {
case 'availability':
// HACK it is saved in show_graph field.
// Show interfaces instead the modules
// Show interfaces instead the modules.
$values['show_graph'] = get_parameter('checkbox_show_address_agent');
$values['period'] = get_parameter('period');
$values['total_time'] = get_parameter('total_time');
$values['time_failed'] = get_parameter('time_failed');
$values['time_in_ok_status'] = get_parameter('time_in_ok_status');
$values['time_in_unknown_status'] = get_parameter('time_in_unknown_status');
$values['time_of_not_initialized_module'] = get_parameter('time_of_not_initialized_module');
$values['time_of_downtime'] = get_parameter('time_of_downtime');
$values['total_checks'] = get_parameter('total_checks');
$values['checks_failed'] = get_parameter('checks_failed');
$values['checks_in_ok_status'] = get_parameter('checks_in_ok_status');
$values['unknown_checks'] = get_parameter('unknown_checks');
$values['agent_max_value'] = get_parameter('agent_max_value');
$values['agent_min_value'] = get_parameter('agent_min_value');
$good_format = true;
break;
@ -1258,6 +1308,7 @@ switch ($action) {
$values['text'] = get_parameter('text');
$values['show_graph'] = get_parameter('combo_graph_options');
$good_format = true;
break;
}
$values['id_agent'] = get_parameter('id_agent');
@ -1282,6 +1333,19 @@ switch ($action) {
$values['friday'] = get_parameter('friday', 0);
$values['saturday'] = get_parameter('saturday', 0);
$values['sunday'] = get_parameter('sunday', 0);
$values['total_time'] = get_parameter('total_time', 0);
$values['time_failed'] = get_parameter('time_failed', 0);
$values['time_in_ok_status'] = get_parameter('time_in_ok_status', 0);
$values['time_in_unknown_status'] = get_parameter('time_in_unknown_status', 0);
$values['time_of_not_initialized_module'] = get_parameter('time_of_not_initialized_module', 0);
$values['time_of_downtime'] = get_parameter('time_of_downtime', 0);
$values['total_checks'] = get_parameter('total_checks', 0);
$values['checks_failed'] = get_parameter('checks_failed', 0);
$values['checks_in_ok_status'] = get_parameter('checks_in_ok_status', 0);
$values['unknown_checks'] = get_parameter('unknown_checks', 0);
$values['agent_max_value'] = get_parameter('agent_max_value', 0);
$values['agent_min_value'] = get_parameter('agent_min_value', 0);
switch ($config['dbtype']) {
case 'mysql':
case 'postgresql':
@ -1293,6 +1357,10 @@ switch ($action) {
$values['time_from'] = '#to_date(\''.get_parameter('time_from').'\',\'hh24:mi:ss\')';
$values['time_to'] = '#to_date(\''.get_parameter('time_to').'\', \'hh24:mi:ss\')';
break;
default:
// Default.
break;
}
$values['group_by_agent'] = get_parameter('checkbox_row_group_by_agent');
@ -1313,7 +1381,7 @@ switch ($action) {
$values['server_name'] = get_parameter('combo_server');
}
if ((($values['type'] == 'custom_graph') or ($values['type'] == 'automatic_custom_graph')) && ($values['id_gs'] == 0 || $values['id_gs'] == '')) {
if ((($values['type'] == 'custom_graph') || ($values['type'] == 'automatic_custom_graph')) && ($values['id_gs'] == 0 || $values['id_gs'] == '')) {
$resultOperationDB = false;
break;
}
@ -1330,7 +1398,7 @@ switch ($action) {
$event_filter_search = get_parameter('filter_search', '');
// If metaconsole is activated
// If metaconsole is activated.
if ($config['metaconsole'] == 1 && defined('METACONSOLE')) {
if (($values['type'] == 'custom_graph') or ($values['type'] == 'automatic_custom_graph')) {
$id_gs = substr($values['id_gs'], 0, strpos($values['id_gs'], '|'));
@ -1341,7 +1409,7 @@ switch ($action) {
}
}
// Get agent and server name
// Get agent and server name.
$agent_name_server = io_safe_output(get_parameter('agent'));
if (isset($agent_name_server)) {
@ -1351,7 +1419,7 @@ switch ($action) {
$server_name = substr($agent_name_server, $separator_pos);
$server_name = str_replace('(', '', $server_name);
$server_name = str_replace(')', '', $server_name);
// Will update server_name variable
// Will update server_name variable.
$values['server_name'] = trim($server_name);
$agent_name = substr($agent_name_server, 0, $separator_pos);
}
@ -1447,6 +1515,10 @@ switch ($action) {
$style['label'] = '';
}
break;
default:
// Default.
break;
}
$values['style'] = io_safe_input(json_encode($style));
@ -1461,6 +1533,10 @@ switch ($action) {
unset($values['type']);
}
break;
default:
// Default.
break;
}
$resultOperationDB = db_process_sql_update(
@ -1482,7 +1558,7 @@ switch ($action) {
$values['description'] = get_parameter('description');
$label = get_parameter('label', '');
// Add macros name
// Add macros name.
$items_label = [];
$items_label['type'] = get_parameter('type');
$items_label['id_agent'] = get_parameter('id_agent');
@ -1492,7 +1568,7 @@ switch ($action) {
$values['name'] = reporting_label_macro($items_label, $name_it);
// Support for projection graph, prediction date and SLA reports
// 'top_n_value', 'top_n' and 'text' fields will be reused for these types of report
// 'top_n_value', 'top_n' and 'text' fields will be reused for these types of report.
switch ($values['type']) {
case 'projection_graph':
$values['period'] = get_parameter('period1');
@ -1594,7 +1670,7 @@ switch ($action) {
case 'availability':
$values['period'] = get_parameter('period');
// HACK it is saved in show_graph field.
// Show interfaces instead the modules
// Show interfaces instead the modules.
$values['show_graph'] = get_parameter('checkbox_show_address_agent');
$good_format = true;
break;
@ -1669,6 +1745,10 @@ switch ($action) {
$values['only_display_wrong'] = $only_display_wrong_tmp;
}
break;
default:
// Default.
break;
}
$values['monday'] = get_parameter('monday', 0);
@ -1678,6 +1758,18 @@ switch ($action) {
$values['friday'] = get_parameter('friday', 0);
$values['saturday'] = get_parameter('saturday', 0);
$values['sunday'] = get_parameter('sunday', 0);
$values['total_time'] = get_parameter('total_time', 0);
$values['time_failed'] = get_parameter('time_failed', 0);
$values['time_in_ok_status'] = get_parameter('time_in_ok_status', 0);
$values['time_in_unknown_status'] = get_parameter('time_in_unknown_status', 0);
$values['time_of_not_initialized_module'] = get_parameter('time_of_not_initialized_module', 0);
$values['time_of_downtime'] = get_parameter('time_of_downtime', 0);
$values['total_checks'] = get_parameter('total_checks', 0);
$values['checks_failed'] = get_parameter('checks_failed', 0);
$values['checks_in_ok_status'] = get_parameter('checks_in_ok_status', 0);
$values['unknown_checks'] = get_parameter('unknown_checks', 0);
$values['agent_max_value'] = get_parameter('agent_max_value', 0);
$values['agent_min_value'] = get_parameter('agent_min_value', 0);
switch ($config['dbtype']) {
case 'mysql':
case 'postgresql':
@ -1689,6 +1781,10 @@ switch ($action) {
$values['time_from'] = '#to_date(\''.get_parameter('time_from').'\',\'hh24:mi:ss\')';
$values['time_to'] = '#to_date(\''.get_parameter('time_to').'\', \'hh24:mi:ss\')';
break;
default:
// Default.
break;
}
$values['group_by_agent'] = get_parameter('checkbox_row_group_by_agent', 0);
@ -1716,8 +1812,8 @@ switch ($action) {
}
}
if (($values['type'] == 'sql') or ($values['type'] == 'sql_graph_hbar')
or ($values['type'] == 'sql_graph_vbar') or ($values['type'] == 'sql_graph_pie')
if (($values['type'] == 'sql') || ($values['type'] == 'sql_graph_hbar')
|| ($values['type'] == 'sql_graph_vbar') || ($values['type'] == 'sql_graph_pie')
) {
$values['treport_custom_sql_id'] = get_parameter('id_custom');
if ($values['treport_custom_sql_id'] == 0) {
@ -1759,7 +1855,7 @@ switch ($action) {
$event_filter_search = get_parameter('filter_search', '');
// Added for events items
// Added for events items.
$style['show_summary_group'] = $show_summary_group;
$style['filter_event_severity'] = json_encode($filter_event_severity);
$style['filter_event_type'] = json_encode($filter_event_type);
@ -1781,6 +1877,10 @@ switch ($action) {
$style['label'] = '';
}
break;
default:
// Default.
break;
}
break;
@ -1825,6 +1925,10 @@ switch ($action) {
$style['label'] = '';
}
break;
default:
// Default.
break;
}
$values['style'] = io_safe_input(json_encode($style));
@ -1839,6 +1943,10 @@ switch ($action) {
unset($values['type']);
}
break;
default:
// Default.
break;
}
$result = db_process_sql_insert(
@ -1868,6 +1976,10 @@ switch ($action) {
WHERE id_report = '.$idReport
);
break;
default:
// Default.
break;
}
if ($max === false) {
@ -1893,6 +2005,10 @@ switch ($action) {
['id_rc' => $idItem]
);
break;
default:
// Default.
break;
}
$resultOperationDB = true;
@ -1900,7 +2016,8 @@ switch ($action) {
break;
}
// If fields dont have good format
// If fields dont have good format.
else {
$resultOperationDB = false;
}
@ -1908,7 +2025,7 @@ switch ($action) {
break;
default:
if ($enterpriseEnable and $activeTab != 'advanced') {
if ($enterpriseEnable && $activeTab != 'advanced') {
$resultOperationDB = reporting_enterprise_update_action();
}
break;
@ -1966,7 +2083,7 @@ switch ($action) {
case 'agent':
case 'type':
// Sort functionality for normal console
// Sort functionality for normal console.
if (!defined('METACONSOLE')) {
switch ($field) {
case 'module':
@ -2000,6 +2117,10 @@ switch ($action) {
case 'type':
$sql = 'SELECT id_rc FROM treport_content WHERE %s ORDER BY type %s';
break;
default:
// Default.
break;
}
$sql = sprintf($sql, 'id_report = '.$idReport, '%s');
@ -2011,11 +2132,15 @@ switch ($action) {
case 'down':
$sql = sprintf($sql, 'DESC');
break;
default:
// Default.
break;
}
$ids = db_get_all_rows_sql($sql);
}
// Sort functionality for metaconsole
// Sort functionality for metaconsole.
else if ($config['metaconsole'] == 1) {
switch ($field) {
case 'agent':
@ -2033,14 +2158,14 @@ switch ($action) {
foreach ($report_items as $report_item) {
$connection = metaconsole_get_connection($report_item['server_name']);
if (metaconsole_load_external_db($connection) != NOERR) {
// ui_print_error_message ("Error connecting to ".$server_name);
// ui_print_error_message ("Error connecting to ".$server_name);.
}
switch ($field) {
case 'agent':
$agents_name = agents_get_agents(['id_agente' => $report_item['id_agent']], 'nombre');
// Item without agent
// Item without agent.
if (!$agents_name) {
$element_name = '';
} else {
@ -2052,13 +2177,17 @@ switch ($action) {
case 'module':
$module_name = modules_get_agentmodule_name($report_item['id_agent_module']);
// Item without module
// Item without module.
if (!$module_name) {
$element_name = '';
} else {
$element_name = $module_name;
}
break;
default:
// Default.
break;
}
metaconsole_restore_db();
@ -2066,7 +2195,7 @@ switch ($action) {
$temp_sort[$report_item['id_rc']] = $element_name;
}
// Performes sorting
// Performes sorting.
switch ($dir) {
case 'up':
asort($temp_sort);
@ -2075,6 +2204,10 @@ switch ($action) {
case 'down':
arsort($temp_sort);
break;
default:
// Default.
break;
}
foreach ($temp_sort as $temp_element_key => $temp_element_val) {
@ -2083,13 +2216,13 @@ switch ($action) {
$i++;
}
// Free resources
// Free resources.
unset($temp_sort);
unset($report_items);
}
break;
// Type case only depends of local database
// Type case only depends of local database.
case 'type':
$sql = 'SELECT id_rc
FROM treport_content
@ -2108,10 +2241,13 @@ switch ($action) {
case 'down':
$sql = sprintf($sql, 'DESC');
break;
default:
// Default.
break;
}
$ids = db_get_all_rows_sql($sql);
break;
}
}
@ -2150,6 +2286,10 @@ switch ($action) {
WHERE id_rc = '.$idItem
);
break;
default:
// Default.
break;
}
// db_get_value_filter('order', 'treport_content', array('id_rc' => $idItem));
@ -2161,6 +2301,10 @@ switch ($action) {
case 'down':
$newOrder = ($oldOrder + 1);
break;
default:
// Default.
break;
}
switch ($config['dbtype']) {
@ -2198,6 +2342,10 @@ switch ($action) {
false
);
break;
default:
// Default.
break;
}
if ($resultOperationDB !== false) {
@ -2227,13 +2375,17 @@ switch ($action) {
false
);
break;
default:
// Default.
break;
}
}
break;
}
break;
// Added for report templates
// Added for report templates.
default:
if ($enterpriseEnable) {
$buttons = [
@ -2257,7 +2409,7 @@ switch ($action) {
break;
}
// Page header for metaconsole
// Page header for metaconsole.
if ($enterpriseEnable and defined('METACONSOLE')) {
// Bread crumbs
ui_meta_add_breadcrumb(
@ -2269,10 +2421,10 @@ switch ($action) {
ui_meta_print_page_header($nav_bar);
// Print header
// Print header.
ui_meta_print_header(__('Reporting'), '', $buttons);
}
// Page header for normal console
// Page header for normal console.
else {
ui_print_page_header($subsection, 'images/op_reporting.png', false, '', false, $buttons, false, '', 60);
}
@ -2335,9 +2487,9 @@ if ($idReport != 0) {
$textReportName = __('Create Custom Report');
}
// Page header for metaconsole
// Page header for metaconsole.
if ($enterpriseEnable and defined('METACONSOLE')) {
// Bread crumbs
// Bread crumbs.
ui_meta_add_breadcrumb(
[
'link' => 'index.php?sec=reporting&sec2=godmode/reporting/reporting_builder&pure='.$pure,
@ -2347,7 +2499,7 @@ if ($enterpriseEnable and defined('METACONSOLE')) {
ui_meta_print_page_header($nav_bar);
// Print header
// Print header.
ui_meta_print_header(__('Reporting').$textReportName, '', $buttons);
} else {
ui_print_page_header(

View File

@ -41,11 +41,11 @@ require_once $config['homedir'].'/include/functions_network.php';
//
// CONSTANTS DEFINITIONS //
//
// Priority modes
// Priority modes.
define('REPORT_PRIORITY_MODE_OK', 1);
define('REPORT_PRIORITY_MODE_UNKNOWN', 2);
// Status
// Status.
define('REPORT_STATUS_ERR', 0);
define('REPORT_STATUS_OK', 1);
define('REPORT_STATUS_UNKNOWN', 2);
@ -62,7 +62,7 @@ function reporting_user_can_see_report($id_report, $id_user=null)
$id_user = $config['id_user'];
}
// Get Report record (to get id_group)
// Get Report record (to get id_group).
$report = db_get_row('treport', 'id_report', $id_report);
// Check ACL on the report to see if user has access to the report.
@ -108,6 +108,10 @@ function reporting_get_type($content)
case REPORT_OLD_TYPE_SUMATORY:
$content['type'] = 'sumatory';
break;
default:
// Default.
break;
}
return $content['type'];
@ -205,7 +209,7 @@ function reporting_make_reporting_data(
$server_name = $content['server_name'];
// General reports with 0 period means last value
// Avoid to overwrite it by template value
// Avoid to overwrite it by template value.
if (!empty($period) && ($content['type'] !== 'general' && $content['period'] != 0)) {
$content['period'] = $period;
}
@ -229,7 +233,7 @@ function reporting_make_reporting_data(
if (in_array('label', $content['style'])) {
if ($content['id_agent'] == 0) {
// Metaconsole connection
// Metaconsole connection.
if ($metaconsole_on && $server_name != '') {
$connection = metaconsole_get_connection($server_name);
if (!metaconsole_load_external_db($connection)) {
@ -240,7 +244,7 @@ function reporting_make_reporting_data(
array_push($agents_to_macro, modules_get_agentmodule_agent($graph_item['id_agent_module']));
if ($metaconsole_on) {
// Restore db connection
// Restore db connection.
metaconsole_restore_db();
}
}
@ -291,7 +295,7 @@ function reporting_make_reporting_data(
$content['name'] = reporting_label_macro($items_label, $content['style']['name_label']);
if ($metaconsole_on) {
// Restore db connection
// Restore db connection.
metaconsole_restore_db();
}
}
@ -781,6 +785,10 @@ function reporting_make_reporting_data(
$pdf
);
break;
default:
// Default.
break;
}
$index_content++;
@ -847,7 +855,7 @@ function reporting_SLA(
include_once $config['homedir'].'/include/functions_planned_downtimes.php';
$metaconsole_on = is_metaconsole();
// checking if needed to show graph or table
// checking if needed to show graph or table.
if ($content['show_graph'] == 0 || $content['show_graph'] == 1) {
$show_table = 1;
} else {
@ -1241,7 +1249,6 @@ function reporting_SLA(
}
$return['charts'] = $temp;
break;
case 2:
@ -1278,7 +1285,10 @@ function reporting_SLA(
}
$return['charts'] = $temp;
break;
default:
// Default.
break;
}
}
@ -1317,7 +1327,7 @@ function reporting_event_top_n(
case REPORT_TOP_N_AVG:
default:
// If nothing is selected then it will be shown the average data
// If nothing is selected then it will be shown the average data.
$type_top_n = __('Avg');
break;
}
@ -1334,7 +1344,7 @@ function reporting_event_top_n(
$return['top_n'] = $content['top_n_value'];
if (empty($content['subitems'])) {
// Get all the related data
// Get all the related data.
$sql = sprintf(
'SELECT id_agent_module, server_name
FROM treport_content_item
@ -1347,7 +1357,7 @@ function reporting_event_top_n(
$tops = $content['subitems'];
}
// Get chart
// Get chart.
reporting_set_conf_charts(
$width,
$height,
@ -1371,7 +1381,7 @@ function reporting_event_top_n(
$data_top = [];
foreach ($tops as $key => $row) {
// Metaconsole connection
// Metaconsole connection.
$server_name = $row['server_name'];
if (($config['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
$connection = metaconsole_get_connection($server_name);
@ -1401,7 +1411,7 @@ function reporting_event_top_n(
case REPORT_TOP_N_AVG:
default:
// If nothing is selected then it will be shown the average data
// If nothing is selected then it will be shown the average data.
$value = reporting_get_agentmodule_data_average($row['id_agent_module'], $content['period']);
break;
}
@ -1415,7 +1425,7 @@ function reporting_event_top_n(
$units[$key] = $unit;
}
// Restore dbconnection
// Restore dbconnection.
if (($config['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
metaconsole_restore_db();
}
@ -1428,21 +1438,25 @@ function reporting_event_top_n(
// Order to show.
switch ($order_uptodown) {
// Descending
// Descending.
case 1:
array_multisort($data_top, SORT_DESC, $agent_name, SORT_ASC, $module_name, SORT_ASC, $id_agent_module, SORT_ASC, $units, SORT_ASC);
break;
// Ascending
// Ascending.
case 2:
array_multisort($data_top, SORT_ASC, $agent_name, SORT_ASC, $module_name, SORT_ASC, $id_agent_module, SORT_ASC, $units, SORT_ASC);
break;
// By agent name or without selection
// By agent name or without selection.
case 0:
case 3:
array_multisort($agent_name, SORT_ASC, $data_top, SORT_ASC, $module_name, SORT_ASC, $id_agent_module, SORT_ASC, $units, SORT_ASC);
break;
default:
// Default.
break;
}
array_splice($data_top, $top_n_value);
@ -1458,7 +1472,7 @@ function reporting_event_top_n(
$data_top_values['id_agent_module'] = $id_agent_module;
$data_top_values['units'] = $units;
// Define truncate size depends the graph width
// Define truncate size depends the graph width.
$truncate_size = ($width / (4 * ($config['font_size'])) - 1);
if ($order_uptodown == 1 || $order_uptodown == 2) {
@ -1584,7 +1598,7 @@ function reporting_event_top_n(
$ttl
);
// Display bars graph
// Display bars graph.
$return['charts']['bars'] = hbar_graph(
$data_hbar,
$width,
@ -1609,7 +1623,7 @@ function reporting_event_top_n(
$return['resume'] = null;
if ($content['show_resume'] && count($data_top_values) > 0) {
// Get the very first not null value
// Get the very first not null value.
$i = 0;
do {
$min = $data_top_values['data_top'][$i];
@ -1689,14 +1703,14 @@ function reporting_event_report_group(
$event_filter = $content['style'];
$return['show_summary_group'] = $event_filter['show_summary_group'];
// filter
// Filter.
$show_summary_group = $event_filter['show_summary_group'];
$filter_event_severity = json_decode($event_filter['filter_event_severity'], true);
$filter_event_type = json_decode($event_filter['filter_event_type'], true);
$filter_event_status = json_decode($event_filter['filter_event_status'], true);
$filter_event_filter_search = $event_filter['event_filter_search'];
// graphs
// Graphs.
$event_graph_by_agent = $event_filter['event_graph_by_agent'];
$event_graph_by_user_validator = $event_filter['event_graph_by_user_validator'];
$event_graph_by_criticity = $event_filter['event_graph_by_criticity'];
@ -1858,7 +1872,7 @@ function reporting_event_report_group(
metaconsole_restore_db();
}
// total_events
// total_events.
if ($return['data'] != '') {
$return['total_events'] = count($return['data']);
} else {
@ -1911,14 +1925,14 @@ function reporting_event_report_module(
$event_filter = $content['style'];
$return['show_summary_group'] = $event_filter['show_summary_group'];
// filter
// Filter.
$show_summary_group = $event_filter['show_summary_group'];
$filter_event_severity = json_decode($event_filter['filter_event_severity'], true);
$filter_event_type = json_decode($event_filter['filter_event_type'], true);
$filter_event_status = json_decode($event_filter['filter_event_status'], true);
$filter_event_filter_search = $event_filter['event_filter_search'];
// graphs
// Graphs.
$event_graph_by_user_validator = $event_filter['event_graph_by_user_validator'];
$event_graph_by_criticity = $event_filter['event_graph_by_criticity'];
$event_graph_validated_vs_unvalidated = $event_filter['event_graph_validated_vs_unvalidated'];
@ -1930,7 +1944,7 @@ function reporting_event_report_module(
$metaconsole_dbtable = false;
}
// data events
// Data events.
$data = reporting_get_module_detailed_event(
$content['id_agent_module'],
$content['period'],
@ -1959,7 +1973,7 @@ function reporting_event_report_module(
metaconsole_restore_db();
}
// total_events
// Total_events.
if ($return['data'][0]['data'] != '') {
$return['total_events'] = count($return['data'][0]['data']);
} else {
@ -2276,6 +2290,10 @@ function reporting_exception(
$return['subtitle'] = __('Exception - Modules at critical or warning status');
$return['subtype'] = __('Modules at critical or warning status');
break;
default:
// Default.
break;
}
$return['description'] = $content['description'];
@ -2286,7 +2304,7 @@ function reporting_exception(
$return['resume'] = [];
if (empty($content['subitems'])) {
// Get all the related data
// Get all the related data.
$sql = sprintf(
'
SELECT id_agent_module, server_name, operation
@ -2303,10 +2321,10 @@ function reporting_exception(
if ($exceptions === false) {
$return['failed'] = __('There are no Agent/Modules defined');
} else {
// Get the very first not null value
// Get the very first not null value.
$i = 0;
do {
// Metaconsole connection
// Metaconsole connection.
$server_name = $exceptions[$i]['server_name'];
if (($config['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
$connection = metaconsole_get_connection($server_name);
@ -2340,12 +2358,16 @@ function reporting_exception(
$content['period']
);
break;
default:
// Default.
break;
}
}
$i++;
// Restore dbconnection
// Restore dbconnection.
if (($config['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
metaconsole_restore_db();
}
@ -2357,7 +2379,7 @@ function reporting_exception(
$i = 0;
foreach ($exceptions as $exc) {
// Metaconsole connection
// Metaconsole connection.
$server_name = $exc['server_name'];
if (($config['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
$connection = metaconsole_get_connection($server_name);
@ -6270,6 +6292,19 @@ function reporting_availability($report, $content, $date=false, $time=false)
$return['resume']['avg'] = $avg;
$return['resume']['max_text'] = $max_text;
$return['resume']['max'] = $max;
$return['fields'] = [];
$return['fields']['total_time'] = $content['total_time'];
$return['fields']['time_failed'] = $content['time_failed'];
$return['fields']['time_in_ok_status'] = $content['time_in_ok_status'];
$return['fields']['time_in_unknown_status'] = $content['time_in_unknown_status'];
$return['fields']['time_of_not_initialized_module'] = $content['time_of_not_initialized_module'];
$return['fields']['time_of_downtime'] = $content['time_of_downtime'];
$return['fields']['total_checks'] = $content['total_checks'];
$return['fields']['checks_failed'] = $content['checks_failed'];
$return['fields']['checks_in_ok_status'] = $content['checks_in_ok_status'];
$return['fields']['unknown_checks'] = $content['unknown_checks'];
$return['fields']['agent_max_value'] = $content['agent_max_value'];
$return['fields']['agent_min_value'] = $content['agent_min_value'];
return reporting_check_structure_content($return);
}
@ -7443,6 +7478,21 @@ function reporting_check_structure_content($report)
$report['date']['to'] = '';
}
if (!isset($report['fields'])) {
$return['fields']['total_time'] = '';
$return['fields']['time_failed'] = '';
$return['fields']['time_in_ok_status'] = '';
$return['fields']['time_in_unknown_status'] = '';
$return['fields']['time_of_not_initialized_module'] = '';
$return['fields']['time_of_downtime'] = '';
$return['fields']['total_checks'] = '';
$return['fields']['checks_failed'] = '';
$return['fields']['checks_in_ok_status'] = '';
$return['fields']['unknown_checks'] = '';
$return['fields']['agent_max_value'] = '';
$return['fields']['agent_min_value'] = '';
}
return $report;
}

View File

@ -2907,7 +2907,6 @@ function reporting_html_availability($table, $item, $pdf=0)
io_safe_output($style),
true
);
$same_agent_in_resume = '';
global $config;
@ -2927,32 +2926,62 @@ function reporting_html_availability($table, $item, $pdf=0)
$table1->head[1] = __('Module');
}
$table1->head[2] = __('Total time');
$table1->head[3] = __('Time failed');
$table1->head[4] = __('Time OK');
$table1->head[5] = __('Time Uknown');
$table1->head[6] = __('Time Not Init Module');
$table1->head[7] = __('Time Downtime');
if ($item['fields']['total_time']) {
$table1->head[2] = __('Total time');
} else {
$table1->head[2] = __('');
}
if ($item['fields']['time_failed']) {
$table1->head[3] = __('Time failed');
} else {
$table1->head[3] = __('');
}
if ($item['fields']['time_in_ok_status']) {
$table1->head[4] = __('Time OK');
} else {
$table1->head[4] = __('');
}
if ($item['fields']['time_in_unknown_status']) {
$table1->head[5] = __('Time Unknown');
} else {
$table1->head[5] = __('');
}
if ($item['fields']['time_of_not_initialized_module']) {
$table1->head[6] = __('Time Not Init Module');
} else {
$table1->head[6] = __('');
}
if ($item['fields']['time_of_downtime']) {
$table1->head[7] = __('Time Downtime');
} else {
$table1->head[7] = __('');
}
$table1->head[8] = __('% Ok');
$table1->headstyle = [];
$table1->headstyle[0] = 'text-align: left';
$table1->headstyle[1] = 'text-align: left';
$table1->headstyle[2] = 'text-align: right';
$table1->headstyle[3] = 'text-align: right';
$table1->headstyle[4] = 'text-align: right';
$table1->headstyle[5] = 'text-align: right';
$table1->headstyle[6] = 'text-align: right';
$table1->headstyle[2] = 'text-align: center';
$table1->headstyle[3] = 'text-align: center';
$table1->headstyle[4] = 'text-align: center';
$table1->headstyle[5] = 'text-align: center';
$table1->headstyle[6] = 'text-align: center';
$table1->headstyle[7] = 'text-align: right';
$table1->headstyle[8] = 'text-align: right';
$table1->style[0] = 'text-align: left';
$table1->style[1] = 'text-align: left';
$table1->style[2] = 'text-align: right';
$table1->style[3] = 'text-align: right';
$table1->style[4] = 'text-align: right';
$table1->style[5] = 'text-align: right';
$table1->style[6] = 'text-align: right';
$table1->style[2] = 'text-align: center';
$table1->style[3] = 'text-align: center';
$table1->style[4] = 'text-align: center';
$table1->style[5] = 'text-align: center';
$table1->style[6] = 'text-align: center';
$table1->style[7] = 'text-align: right';
$table1->style[8] = 'text-align: right';
@ -2970,10 +2999,29 @@ function reporting_html_availability($table, $item, $pdf=0)
$table2->head[1] = __('Module');
}
$table2->head[2] = __('Total checks');
$table2->head[3] = __('Checks failed');
$table2->head[4] = __('Checks OK');
$table2->head[5] = __('Checks Uknown');
if ($item['fields']['total_checks']) {
$table2->head[2] = __('Total checks');
} else {
$table2->head[2] = __('');
}
if ($item['fields']['checks_failed']) {
$table2->head[3] = __('Checks failed');
} else {
$table2->head[3] = __('');
}
if ($item['fields']['checks_in_ok_status']) {
$table2->head[4] = __('Checks OK');
} else {
$table2->head[4] = __('');
}
if ($item['fields']['unknown_checks']) {
$table2->head[5] = __('Checks Uknown');
} else {
$table2->head[5] = __('');
}
$table2->headstyle = [];
$table2->headstyle[0] = 'text-align: left';
@ -2995,69 +3043,97 @@ function reporting_html_availability($table, $item, $pdf=0)
$table_row[] = $row['agent'];
$table_row[] = $row['availability_item'];
if ($row['time_total'] != 0) {
if ($row['time_total'] != 0 && $item['fields']['total_time']) {
$table_row[] = human_time_description_raw(
$row['time_total'],
true
);
} else {
} else if ($row['time_total'] == 0 && $item['fields']['total_time']) {
$table_row[] = '--';
}
} else {
$table_row[] = '';
};
if ($row['time_error'] != 0) {
if ($row['time_error'] != 0 && $item['fields']['time_failed']) {
$table_row[] = human_time_description_raw(
$row['time_error'],
true
);
} else {
} else if ($row['time_error'] == 0 && $item['fields']['time_failed']) {
$table_row[] = '--';
}
} else {
$table_row[] = '';
};
if ($row['time_ok'] != 0) {
if ($row['time_ok'] != 0 && $item['fields']['time_in_ok_status']) {
$table_row[] = human_time_description_raw(
$row['time_ok'],
true
);
} else {
} else if ($row['time_ok'] == 0 && $item['fields']['time_in_ok_status']) {
$table_row[] = '--';
}
} else {
$table_row[] = '';
};
if ($row['time_unknown'] != 0) {
if ($row['time_unknown'] != 0 && $item['fields']['time_in_unknown_status']) {
$table_row[] = human_time_description_raw(
$row['time_unknown'],
true
);
} else {
} else if ($row['time_unknown'] == 0 && $item['fields']['time_in_unknown_status']) {
$table_row[] = '--';
}
} else {
$table_row[] = '';
};
if ($row['time_not_init'] != 0) {
if ($row['time_not_init'] != 0 && $item['fields']['time_of_not_initialized_module']) {
$table_row[] = human_time_description_raw(
$row['time_not_init'],
true
);
} else {
} else if ($row['time_not_init'] == 0 && $item['fields']['time_of_not_initialized_module']) {
$table_row[] = '--';
}
} else {
$table_row[] = '';
};
if ($row['time_downtime'] != 0) {
if ($row['time_downtime'] != 0 && $item['fields']['time_of_downtime']) {
$table_row[] = human_time_description_raw(
$row['time_downtime'],
true
);
} else {
} else if ($row['time_downtime'] == 0 && $item['fields']['time_of_downtime']) {
$table_row[] = '--';
}
} else {
$table_row[] = '';
};
$table_row[] = '<span style="font-size: 1.2em; font-weight:bold;">'.sla_truncate($row['SLA'], $config['graph_precision']).'%</span>';
$table_row2 = [];
$table_row2[] = $row['agent'];
$table_row2[] = $row['availability_item'];
$table_row2[] = $row['checks_total'];
$table_row2[] = $row['checks_error'];
$table_row2[] = $row['checks_ok'];
$table_row2[] = $row['checks_unknown'];
if ($item['fields']['total_checks']) {
$table_row2[] = $row['checks_total'];
} else {
$table_row2[] = '';
};
if ($item['fields']['checks_failed']) {
$table_row2[] = $row['checks_error'];
} else {
$table_row2[] = '';
};
if ($item['fields']['checks_in_ok_status']) {
$table_row2[] = $row['checks_ok'];
} else {
$table_row2[] = '';
};
if ($item['fields']['unknown_checks']) {
$table_row2[] = $row['checks_unknown'];
} else {
$table_row2[] = '';
};
$table1->data[] = $table_row;
$table2->data[] = $table_row2;
@ -3096,7 +3172,7 @@ function reporting_html_availability($table, $item, $pdf=0)
if ($item['resume']['resume'] && !empty($item['data'])) {
$table1->width = '99%';
$table1->data = [];
if ((strpos($item['resume']['min_text'], $same_agent_in_resume) === false)) {
if (empty($same_agent_in_resume) || (strpos($item['resume']['min_text'], $same_agent_in_resume) === false)) {
$table1->head = [];
$table1->head['max_text'] = __('Agent max value');
$table1->head['max'] = __('Max Value');
@ -3131,6 +3207,19 @@ function reporting_html_availability($table, $item, $pdf=0)
).'%',
'avg' => '<span style="font-size: 1.2em; font-weight:bold;">'.sla_truncate($item['resume']['avg'], $config['graph_precision']).'%</span>',
];
if ($item['fields']['agent_max_value'] == false) {
$table1->head['max_text'] = '';
$table1->data[0]['max_text'] = '';
$table1->head['max'] = '';
$table1->data[0]['max'] = '';
}
if ($item['fields']['agent_min_value'] == false) {
$table1->head['min_text'] = '';
$table1->data[0]['min_text'] = '';
$table1->head['min'] = '';
$table1->data[0]['min'] = '';
}
if ($pdf === 0) {
$table->colspan[3][0] = 3;