Merge remote-tracking branch 'origin/develop' into ent-3707-Nuevo-diseño-para-las-tablas

Former-commit-id: 43e5f9f044a351f1c6cf1c192b9f92cba6d1b0b3
This commit is contained in:
Tatiana Llorente 2019-04-05 13:19:42 +02:00
commit aa640efc44
43 changed files with 929 additions and 242 deletions

26
extras/build_rpm_rhel7.sh Executable file
View File

@ -0,0 +1,26 @@
#!/bin/bash
source build_vars.sh
if [ ! -d $RPMHOME/RPMS ]; then
mkdir -p $RPMHOME/RPMS || exit 1
fi
echo "Creating RPM packages in $RPMHOME/RPMS"
# Console
rpmbuild -ba $CODEHOME/pandora_console/pandora_console.rhel7.spec || exit 1
# Server
rpmbuild -ba $CODEHOME/pandora_server/pandora_server.rhel7.spec || exit 1
# Unix agent
rpmbuild -ba $CODEHOME/pandora_agents/unix/pandora_agent.rhel7.spec || exit 1
# Enterprise console
rpmbuild -ba $PANDHOME_ENT/pandora_console/enterprise/pandora_console_enterprise.rhel7.spec || exit 1
# Enterprise server
rpmbuild -ba $PANDHOME_ENT/pandora_server/PandoraFMS-Enterprise/pandora_server_enterprise.rhel7.spec || exit 1
exit 0

View File

@ -26,6 +26,7 @@ $CODEHOME/pandora_server/pandora_server.spec \
$PANDHOME_ENT/pandora_console/enterprise/pandora_console_enterprise.spec \
$PANDHOME_ENT/pandora_server/PandoraFMS-Enterprise/pandora_server_enterprise.spec \
$CODEHOME/pandora_console/pandora_console.redhat.spec \
$CODEHOME/pandora_console/pandora_console.rhel7.spec \
$CODEHOME/pandora_agents/unix/pandora_agent.redhat.spec \
$CODEHOME/pandora_server/pandora_server.redhat.spec \
$PANDHOME_ENT/pandora_console/enterprise/pandora_console_enterprise.redhat.spec \

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix
Version: 7.0NG.733-190402
Version: 7.0NG.733-190405
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.733-190402"
pandora_version="7.0NG.733-190405"
echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null

View File

@ -42,7 +42,7 @@ my $Sem = undef;
my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.733';
use constant AGENT_BUILD => '190402';
use constant AGENT_BUILD => '190405';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.733
%define release 190402
%define release 190405
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.733
%define release 190402
%define release 190405
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -10,7 +10,7 @@
# **********************************************************************
PI_VERSION="7.0NG.733"
PI_BUILD="190402"
PI_BUILD="190405"
OS_NAME=`uname -s`
FORCE=0

View File

@ -44,6 +44,8 @@ remote_config 0
#agent_name_cmd cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\agentname.vbs"
agent_name_cmd __rand__
# Agent alias. Name should be unique rather than alias. Hostname by default
# agent_alias $Alias$
#Parent agent_name
#parent_agent_name caprica

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{190402}
{190405}
ViewReadme
{Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("7.0NG.733(Build 190402)")
#define PANDORA_VERSION ("7.0NG.733(Build 190405)")
string pandora_path;
string pandora_dir;

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.733(Build 190402))"
VALUE "ProductVersion", "(7.0NG.733(Build 190405))"
VALUE "FileVersion", "1.0.0.0"
END
END

View File

@ -1,5 +1,5 @@
package: pandorafms-console
Version: 7.0NG.733-190402
Version: 7.0NG.733-190405
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.733-190402"
pandora_version="7.0NG.733-190405"
package_pear=0
package_pandora=1

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

@ -591,9 +591,7 @@ if ($config['menu_type'] == 'classic') {
if (fixed_header) {
$('div#head').addClass('fixed_header');
$('div#page')
.css('padding-top', $('div#head').innerHeight() + 'px')
.css('position', 'relative');
$('div#main').css('padding-top', $('div#head').innerHeight() + 'px');
}
check_new_chats_icon('icon_new_messages_chat');

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
@ -1638,11 +1709,12 @@ $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>
@ -2626,6 +2770,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();
}
});
});
function create_custom_graph() {
@ -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) {
@ -918,7 +951,6 @@ switch ($action) {
}
enterprise_hook('close_meta_frame');
return;
break;
@ -946,6 +978,10 @@ switch ($action) {
$idGroupReport = $report['id_group'];
$description = $report['description'];
break;
default:
// Default.
break;
}
break;
@ -979,6 +1015,10 @@ switch ($action) {
$id_group_edit = 0;
$private = 1;
break;
default:
// Default.
break;
}
if ($action == 'update') {
@ -1029,10 +1069,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'];
@ -1101,7 +1141,6 @@ switch ($action) {
$good_format = false;
switch ($action) {
case 'update':
$values = [];
$values['id_report'] = $idReport;
// ---------------------------------------------------
@ -1135,7 +1174,6 @@ switch ($action) {
break;
case 'event_report_log':
$agents_to_report = get_parameter('id_agents3');
$source = get_parameter('source', '');
$search = get_parameter('search', '');
@ -1157,7 +1195,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;
}
@ -1224,9 +1262,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;
@ -1261,6 +1311,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');
@ -1285,6 +1336,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':
@ -1296,6 +1360,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');
@ -1316,7 +1384,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;
}
@ -1333,7 +1401,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'], '|'));
@ -1344,7 +1412,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)) {
@ -1354,7 +1422,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);
}
@ -1450,6 +1518,10 @@ switch ($action) {
$style['label'] = '';
}
break;
default:
// Default.
break;
}
$values['style'] = io_safe_input(json_encode($style));
@ -1464,6 +1536,10 @@ switch ($action) {
unset($values['type']);
}
break;
default:
// Default.
break;
}
$resultOperationDB = db_process_sql_update(
@ -1485,7 +1561,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');
@ -1495,7 +1571,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');
@ -1597,7 +1673,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;
@ -1672,6 +1748,10 @@ switch ($action) {
$values['only_display_wrong'] = $only_display_wrong_tmp;
}
break;
default:
// Default.
break;
}
$values['monday'] = get_parameter('monday', 0);
@ -1681,6 +1761,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':
@ -1692,6 +1784,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);
@ -1719,8 +1815,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) {
@ -1762,7 +1858,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);
@ -1784,6 +1880,10 @@ switch ($action) {
$style['label'] = '';
}
break;
default:
// Default.
break;
}
break;
@ -1828,6 +1928,10 @@ switch ($action) {
$style['label'] = '';
}
break;
default:
// Default.
break;
}
$values['style'] = io_safe_input(json_encode($style));
@ -1842,6 +1946,10 @@ switch ($action) {
unset($values['type']);
}
break;
default:
// Default.
break;
}
$result = db_process_sql_insert(
@ -1871,6 +1979,10 @@ switch ($action) {
WHERE id_report = '.$idReport
);
break;
default:
// Default.
break;
}
if ($max === false) {
@ -1896,6 +2008,10 @@ switch ($action) {
['id_rc' => $idItem]
);
break;
default:
// Default.
break;
}
$resultOperationDB = true;
@ -1903,7 +2019,8 @@ switch ($action) {
break;
}
// If fields dont have good format
// If fields dont have good format.
else {
$resultOperationDB = false;
}
@ -1911,7 +2028,7 @@ switch ($action) {
break;
default:
if ($enterpriseEnable and $activeTab != 'advanced') {
if ($enterpriseEnable && $activeTab != 'advanced') {
$resultOperationDB = reporting_enterprise_update_action();
}
break;
@ -1969,7 +2086,7 @@ switch ($action) {
case 'agent':
case 'type':
// Sort functionality for normal console
// Sort functionality for normal console.
if (!defined('METACONSOLE')) {
switch ($field) {
case 'module':
@ -2003,6 +2120,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');
@ -2014,11 +2135,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':
@ -2036,14 +2161,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 {
@ -2055,13 +2180,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();
@ -2069,7 +2198,7 @@ switch ($action) {
$temp_sort[$report_item['id_rc']] = $element_name;
}
// Performes sorting
// Performes sorting.
switch ($dir) {
case 'up':
asort($temp_sort);
@ -2078,6 +2207,10 @@ switch ($action) {
case 'down':
arsort($temp_sort);
break;
default:
// Default.
break;
}
foreach ($temp_sort as $temp_element_key => $temp_element_val) {
@ -2086,13 +2219,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
@ -2111,10 +2244,13 @@ switch ($action) {
case 'down':
$sql = sprintf($sql, 'DESC');
break;
default:
// Default.
break;
}
$ids = db_get_all_rows_sql($sql);
break;
}
}
@ -2153,6 +2289,10 @@ switch ($action) {
WHERE id_rc = '.$idItem
);
break;
default:
// Default.
break;
}
// db_get_value_filter('order', 'treport_content', array('id_rc' => $idItem));
@ -2164,6 +2304,10 @@ switch ($action) {
case 'down':
$newOrder = ($oldOrder + 1);
break;
default:
// Default.
break;
}
switch ($config['dbtype']) {
@ -2201,6 +2345,10 @@ switch ($action) {
false
);
break;
default:
// Default.
break;
}
if ($resultOperationDB !== false) {
@ -2230,13 +2378,17 @@ switch ($action) {
false
);
break;
default:
// Default.
break;
}
}
break;
}
break;
// Added for report templates
// Added for report templates.
default:
if ($enterpriseEnable) {
$buttons = [
@ -2260,7 +2412,7 @@ switch ($action) {
break;
}
// Page header for metaconsole
// Page header for metaconsole.
if ($enterpriseEnable and defined('METACONSOLE')) {
// Bread crumbs
ui_meta_add_breadcrumb(
@ -2272,10 +2424,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);
}
@ -2338,9 +2490,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,
@ -2350,7 +2502,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

@ -20,7 +20,7 @@
/**
* Pandora build version and version
*/
$build_version = 'PC190402';
$build_version = 'PC190405';
$pandora_version = 'v7.0NG.733';
// Do not overwrite default timezone set if defined.

View File

@ -434,15 +434,15 @@ function agents_get_agents(
$filter_nogroup = $filter;
// Get user groups
$groups = array_keys(users_get_groups($config['id_user'], $access, true));
$groups = array_keys(users_get_groups($config['id_user'], $access, false));
// If no group specified, get all user groups
if (isset($filter['id_grupo']) === false) {
if (empty($filter['id_grupo'])) {
$all_groups = true;
$filter['id_grupo'] = $groups;
} else if (! is_array($filter['id_grupo'])) {
$all_groups = false;
// If group is specified but not allowed, return false.
// If group is specified but not allowed, return false
if (! in_array($filter['id_grupo'], $groups)) {
return false;
}
@ -466,6 +466,11 @@ function agents_get_agents(
$filter['id_group'] = $filter['id_grupo'];
if (in_array(0, $filter['id_grupo'])) {
unset($filter['id_grupo']);
unset($filter['id_group']);
}
if (!is_array($fields)) {
$fields = [];
$fields[0] = 'id_agente';

View File

@ -8794,7 +8794,14 @@ function api_set_alert_actions($id, $id2, $other, $trash1)
}
$firesMin = $other['data'][2];
if (!$firesMin) {
$firesMin = 0;
}
$firesMax = $other['data'][3];
if (!$firesMax) {
$firesMax = 0;
}
$values = [
'id_alert_template_module' => $idAlertTemplateModule,

View File

@ -81,6 +81,11 @@ function config_update_value($token, $value)
$value = ($value);
}
if (!isset($config[$token])) {
$config[$token] = $value;
return (bool) config_create_value($token, io_safe_input($value));
}
// If it has not changed.
if ($config[$token] == $value) {
return true;
@ -95,19 +100,11 @@ function config_update_value($token, $value)
['token' => $token]
);
if ($result == 0) {
if ($result === 0) {
return true;
} else {
if (!isset($config[$token])) {
$config[$token] = $value;
return (bool) config_create_value(
$token,
io_safe_input($value)
);
} else {
return (bool) $result;
}
}
}

View File

@ -3167,8 +3167,7 @@ function events_page_general($event)
$table_general->data[] = $data;
$event['owner_user'] = $event['id_usuario'];
// $event['owner_user'] = $event['id_usuario'];
$data = [];
$data[0] = __('Owner');
if (empty($event['owner_user'])) {

View File

@ -59,11 +59,11 @@ function menu_print_menu(&$menu)
$allsec2 = $sec2;
}
// Open list of menu
// Open list of menu.
echo '<ul'.(isset($menu['class']) ? ' class="'.$menu['class'].'"' : '').'>';
// Use $config because a global var is required because normal
// and godmode menu are painted separately
// and godmode menu are painted separately.
if (!isset($config['count_main_menu'])) {
$config['count_main_menu'] = 0;
}
@ -128,7 +128,7 @@ function menu_print_menu(&$menu)
if (! $submenu) {
$main['sub'] = [];
// Empty array won't go through foreach
// Empty array won't go through foreach.
}
$submenu_output = '';
@ -140,12 +140,12 @@ function menu_print_menu(&$menu)
foreach ($main['sub'] as $subsec2 => $sub) {
$count_sub++;
// Init some variables
// Init some variables.
$visible = false;
$selected = false;
$subsec2 = io_safe_output($subsec2);
// Choose valid suboptions (sec2)
// Choose valid suboptions (sec2).
$check_2 = true;
if (isset($sub['sub2'])) {
$check_2 = false;
@ -155,7 +155,7 @@ function menu_print_menu(&$menu)
continue;
}
// We store the first subsection to use it if the main section has not access
// We store the first subsection to use it if the main section has not access.
if ($count_sub_access == 0) {
$first_sub_sec2 = $subsec2;
}
@ -175,7 +175,7 @@ function menu_print_menu(&$menu)
$sec2 = ' ';
}
// Check if some submenu was selected to mark this (the parent) as selected
// Check if some submenu was selected to mark this (the parent) as selected.
foreach (array_keys($sub['sub2']) as $key) {
if (strpos($key, $sec2) !== false) {
$selected_submenu2 = true;
@ -184,13 +184,13 @@ function menu_print_menu(&$menu)
}
}
// Create godmode option if submenu has godmode on
// Create godmode option if submenu has godmode on.
if (isset($sub['subsecs'])) {
// Sometimes you need to add all paths because in the
// same dir are code from visual console and reports
// for example
// for example.
if (is_array($sub['subsecs'])) {
// Compare each string
// Compare each string.
foreach ($sub['subsecs'] as $god_path) {
if (strpos($sec2, $god_path) !== false) {
$selected_submenu2 = true;
@ -198,19 +198,19 @@ function menu_print_menu(&$menu)
}
}
} else {
// If there is only a string just compare
// If there is only a string just compare.
if (strpos($sec2, $sub['subsecs']) !== false) {
$selected_submenu2 = true;
}
}
}
// Set class
// Set class.
if (($sec2 == $subsec2 || $allsec2 == $subsec2
|| $selected_submenu2) && isset($sub[$subsec2]['options'])
&& ( get_parameter_get($sub[$subsec2]['options']['name']) == $sub[$subsec2]['options']['value'])
) {
// If the subclass is selected and there are options and that options value is true
// If the subclass is selected and there are options and that options value is true.
$class .= 'submenu_selected selected';
$menu_selected = true;
$selected = true;
@ -231,7 +231,7 @@ function menu_print_menu(&$menu)
$selected = true;
$visible = true;
} else {
// Else it's not selected
// Else it's not selected.
$class .= 'submenu_not_selected';
}
@ -239,7 +239,7 @@ function menu_print_menu(&$menu)
$sub['refr'] = 0;
}
// Define submenu class to draw tree image
// Define submenu class to draw tree image.
if ($count_sub >= count($main['sub'])) {
$sub_tree_class = 'submenu_text submenu_text_last';
} else {
@ -247,7 +247,7 @@ function menu_print_menu(&$menu)
}
if (isset($sub['type']) && $sub['type'] == 'direct') {
// This is an external link
// This is an external link.
$submenu_output .= '<li title="'.$sub['id'].'" id="'.str_replace(' ', '_', $sub['id']).'" class="'.$class.'">';
if (isset($sub['subtype']) && $sub['subtype'] == 'nolink') {
@ -258,7 +258,7 @@ function menu_print_menu(&$menu)
$submenu_output .= '<a href="'.$subsec2.'"><div class="'.$sub_tree_class.'">'.$sub['text'].'</div></a>';
}
} else {
// This is an internal link
// This is an internal link.
if (isset($sub[$subsec2]['options'])) {
$link_add = '&amp;'.$sub[$subsec2]['options']['name'].'='.$sub[$subsec2]['options']['value'];
} else {
@ -267,7 +267,7 @@ function menu_print_menu(&$menu)
$submenu_output .= '<li id="'.str_replace(' ', '_', $sub['id']).'" '.($class ? ' class="'.$class.'"' : '').'>';
// Ini Add icon extension
// Ini Add icon extension.
$secExtension = null;
if (array_key_exists('extension', $sub)) {
$secExtensionBool = $sub['extension'];
@ -275,7 +275,7 @@ function menu_print_menu(&$menu)
$secExtensionBool = false;
}
// DISABLE SUBMENU IMAGES
// DISABLE SUBMENU IMAGES.
$secExtensionBool = false;
if ($secExtensionBool) {
@ -328,7 +328,7 @@ function menu_print_menu(&$menu)
}
}
// Print second level submenu
// Print second level submenu.
if (isset($sub['sub2'])) {
$submenu2_list = '';
@ -354,7 +354,7 @@ function menu_print_menu(&$menu)
$class .= ' selected';
}
// Define submenu2 class to draw tree image
// Define submenu2 class to draw tree image.
if ($count_sub2 >= count($sub['sub2'])) {
$sub_tree_class = 'submenu_text submenu2_text_last';
} else {
@ -372,7 +372,7 @@ function menu_print_menu(&$menu)
$sub_title = '';
}
// Add submenu2 to submenu string
// Add submenu2 to submenu string.
$submenu_output .= '<ul id="sub'.str_replace(' ', '_', $sub['id']).'" class="submenu2">';
$submenu_output .= $submenu2_list;
$submenu_output .= '</ul>';
@ -382,7 +382,7 @@ function menu_print_menu(&$menu)
$submenu_output .= '</li>';
}
// Choose valid section (sec)
// Choose valid section (sec).
if (enterprise_hook('enterprise_acl', [$config['id_user'], $mainsec, $main['sec2']]) == false) {
if ($count_sub_access > 0) {
// If any susection have access but main section not, we change main link to first subsection found
@ -398,7 +398,7 @@ function menu_print_menu(&$menu)
$seleccionado = '';
}
// Print out the first level
// Print out the first level.
$output .= '<li title="'.$main['text'].'" class="'.implode(' ', $classes).' '.$seleccionado.'" id="icon_'.$id.'">';
// onclick="location.href=\'index.php?sec='.$mainsec.'&amp;sec2='.$main["sec2"].($main["refr"] ? '&amp;refr='.$main["refr"] : '').'\'">';
$length = strlen(__($main['text']));
@ -419,7 +419,7 @@ function menu_print_menu(&$menu)
$length = 0;
// $output .= html_print_image("include/styles/images/toggle.png", true, array("class" => "toggle", "alt" => "toogle"));
if ($submenu_output != '') {
// WARNING: IN ORDER TO MODIFY THE VISIBILITY OF MENU'S AND SUBMENU'S (eg. with cookies) YOU HAVE TO ADD TO THIS ELSEIF. DON'T MODIFY THE CSS
// WARNING: IN ORDER TO MODIFY THE VISIBILITY OF MENU'S AND SUBMENU'S (eg. with cookies) YOU HAVE TO ADD TO THIS ELSEIF. DON'T MODIFY THE CSS.
if ($visible || in_array('selected', $classes)) {
$visible = true;
}
@ -439,9 +439,9 @@ function menu_print_menu(&$menu)
$menu_selected = false;
}
// Finish menu
// Finish menu.
echo '</ul>';
// Invisible UL for adding border-top
// Invisible UL for adding border-top.
echo '</div>';
}
@ -541,7 +541,7 @@ function menu_add_extras(&$menu)
$menu_extra['workspace']['sub']['operation/incidents/incident_detail']['text'] = __('Manage incident');
// Duplicate extensions as sec=extension to check it from url
// Duplicate extensions as sec=extension to check it from url.
foreach ($menu as $k => $m) {
if (!isset($m['sub'])) {
continue;
@ -585,7 +585,7 @@ function menu_get_sec($with_categories=false)
if ($with_categories) {
if (!$in_godmode && $k[0] == 'g') {
// Hack to dont confuse with gis activated because godmode
// sec starts with g (like gismaps)
// sec starts with g (like gismaps).
if ($k != 'gismaps') {
$in_godmode = true;
}
@ -654,17 +654,17 @@ function menu_get_sec_pages($sec, $menu_hash=false)
$sec2_array = [];
if (isset($sec)) {
// Get the sec2 of the main section
// Get the sec2 of the main section.
$sec2_array[$menu[$sec]['sec2']] = $menu[$sec]['text'];
// Get the sec2 of the subsections
// Get the sec2 of the subsections.
foreach ($menu[$sec]['sub'] as $k => $v) {
// Avoid special cases of standalone windows
// Avoid special cases of standalone windows.
if (preg_match('/^javascript:/', $k) || preg_match('/\.php/', $k)) {
continue;
}
// If this value has various parameters, we only get the first
// If this value has various parameters, we only get the first.
$k = explode('&', $k);
$k = $k[0];
@ -672,6 +672,7 @@ function menu_get_sec_pages($sec, $menu_hash=false)
}
}
$sec2_array = array_unique($sec2_array);
return $sec2_array;
}
@ -698,8 +699,8 @@ function menu_get_sec2_pages($sec, $sec2, $menu_hash=false)
$sec3_array = [];
if (isset($menu[$sec]['sub']) and isset($menu[$sec]['sub'][$sec2]['sub2'])) {
// Get the sec2 of the subsections
if (isset($menu[$sec]['sub']) && isset($menu[$sec]['sub'][$sec2]['sub2'])) {
// Get the sec2 of the subsections.
foreach ($menu[$sec]['sub'][$sec2]['sub2'] as $k => $v) {
$sec3_array[$k] = $v['text'];
}
@ -721,7 +722,7 @@ function menu_sec2_in_sec($sec, $sec2)
{
$sec2_array = menu_get_sec_pages($sec);
// If this value has various parameters, we only get the first
// If this value has various parameters, we only get the first.
$sec2 = explode('&', $sec2);
$sec2 = $sec2[0];
@ -737,7 +738,7 @@ function menu_sec3_in_sec2($sec, $sec2, $sec3)
{
$sec3_array = menu_get_sec2_pages($sec, $sec2, $menu_hash = false);
// If this value has various parameters, we only get the first
// If this value has various parameters, we only get the first.
$sec3 = explode('&', $sec3);
$sec3 = $sec3[0];

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;
}
@ -11442,33 +11492,95 @@ function reporting_sla_is_ignored_from_array($sla_array)
*
* @return integer Status
*/
function reporting_sla_get_status_period($sla_times, $priority_mode=REPORT_PRIORITY_MODE_OK)
{
if ($sla_times['time_error'] > 0) {
function reporting_sla_get_status_period(
$sla,
$priority_mode=REPORT_PRIORITY_MODE_OK
) {
if ($sla['time_error'] > 0) {
return REPORT_STATUS_ERR;
}
if ($priority_mode == REPORT_PRIORITY_MODE_OK && $sla_times['time_ok'] > 0) {
if ($priority_mode == REPORT_PRIORITY_MODE_OK && $sla['time_ok'] > 0) {
return REPORT_STATUS_OK;
}
if ($sla_times['time_out'] > 0) {
if ($sla['time_out'] > 0) {
return REPORT_STATUS_IGNORED;
}
if ($sla_times['time_downtime'] > 0) {
if ($sla['time_downtime'] > 0) {
return REPORT_STATUS_DOWNTIME;
}
if ($sla_times['time_unknown'] > 0) {
if ($sla['time_unknown'] > 0) {
return REPORT_STATUS_UNKNOWN;
}
if ($sla_times['time_not_init'] > 0) {
if ($sla['time_not_init'] > 0) {
return REPORT_STATUS_NOT_INIT;
}
if ($sla_times['time_ok'] > 0) {
if ($sla['time_ok'] > 0) {
return REPORT_STATUS_OK;
}
return REPORT_STATUS_IGNORED;
}
/**
* @brief Given a period, get the SLA status
* of the period compare with sla_limit.
*
* @param Array An array with all times to calculate the SLA.
* @param int Limit SLA pass for user.
* Only used for monthly, weekly And hourly report.
*
* @return integer Status
*/
function reporting_sla_get_status_period_compliance(
$sla,
$sla_limit
) {
global $config;
$time_compliance = (
$sla['time_ok'] + $sla['time_unknown'] + $sla['time_downtime']
);
$time_total_working = (
$time_compliance + $sla['time_error']
);
$time_compliance = ($time_compliance == 0) ? 0 : (($time_compliance / $time_total_working) * 100);
if ($sla['time_error'] > 0 && ($time_compliance < $sla_limit)) {
return REPORT_STATUS_ERR;
}
if ($priority_mode == REPORT_PRIORITY_MODE_OK
&& $sla['time_ok'] > 0 && ($time_compliance >= $sla_limit)
) {
return REPORT_STATUS_OK;
}
if ($sla['time_out'] > 0 && ($time_compliance < $sla_limit)) {
return REPORT_STATUS_IGNORED;
}
if ($sla['time_downtime'] > 0 && ($time_compliance < $sla_limit)) {
return REPORT_STATUS_DOWNTIME;
}
if ($sla['time_unknown'] > 0 && ($time_compliance < $sla_limit)) {
return REPORT_STATUS_UNKNOWN;
}
if ($sla['time_not_init'] > 0 && ($time_compliance < $sla_limit)) {
return REPORT_STATUS_NOT_INIT;
}
if ($sla['time_ok'] > 0 && ($time_compliance >= $sla_limit)) {
return REPORT_STATUS_OK;
}

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');
}
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');
$table1->head[5] = __('Time Uknown');
} 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');
}
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'];
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;

View File

@ -1737,10 +1737,6 @@ function ui_process_page_head($string, $bitfield)
// Include countdown library
$config['jquery']['countdown'] = 'include/javascript/jquery.countdown.js';
// Include timezone user map library
$config['jquery']['OpenLayers'] = 'include/javascript/OpenLayers.js';
$config['jquery']['jquery.timezone-picker'] = 'include/javascript/jquery.timezone-picker.js';
// Then add each script as necessary
$loaded = [''];
foreach ($config['jquery'] as $name => $filename) {

View File

@ -129,7 +129,7 @@
<div style='height: 10px'>
<?php
$version = '7.0NG.733';
$build = '190402';
$build = '190405';
$banner = "v$version Build $build";
error_reporting(0);

View File

@ -565,7 +565,7 @@ if (!empty($network_interfaces)) {
$sqlLast_contact = sprintf(
'
SELECT last_try
SELECT timestamp
FROM tagente_estado
WHERE id_agente_modulo = '.$interface['status_module_id']
);

View File

@ -734,6 +734,10 @@ if (!defined('METACONSOLE')) {
<?php
// Closes no meta condition.
}
// Include OpenLayers and timezone user map library.
echo '<script type="text/javascript" src="'.ui_get_full_url('include/javascript/OpenLayers.js').'"></script>'."\n\t";
echo '<script type="text/javascript" src="'.ui_get_full_url('include/javascript/jquery.timezone-picker.js').'"></script>'."\n\t";
?>
<script language="javascript" type="text/javascript">

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.733
%define release 190402
%define release 190405
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -0,0 +1,81 @@
#
# Pandora FMS Console
#
%define name pandorafms_console
%define version 7.0NG.733
%define release 190405
# User and Group under which Apache is running
%define httpd_name httpd
%define httpd_user apache
%define httpd_group apache
Summary: Pandora FMS Console
Name: %{name}
Version: %{version}
Release: %{release}
License: GPL
Vendor: Artica ST <info@artica.es>
#Source0: %{name}-%{version}-%{revision}.tar.gz
Source0: %{name}-%{version}.tar.gz
URL: http://www.pandorafms.com
Group: Productivity/Networking/Web/Utilities
Packager: Sancho Lerena <slerena@artica.es>
Prefix: /var/www/html
BuildRoot: %{_tmppath}/%{name}
BuildArch: noarch
AutoReq: 0
Requires: %{httpd_name} >= 2.0.0
Requires: httpd24-mod_php >= 7.2
Requires: rh-php72-php-gd, rh-php72-php-ldap, rh-php72-php-snmp, rh-php72-php-session, rh-php72-php-gettext
Requires: rh-php72-php-mysqlnd, rh-php72-php-mbstring, rh-php72-php-zip, rh-php72-php-zlib, rh-php72-php-curl
Requires: xorg-x11-fonts-75dpi, xorg-x11-fonts-misc, php-pecl-zip
Requires: graphviz
Provides: %{name}-%{version}
%description
The Web Console is a web application that allows to see graphical reports, state of every agent, also to access to the information sent by the agent, to see every monitored parameter and to see its evolution throughout the time, to form the different nodes, groups and users of the system. It is the part that interacts with the final user, and that will allows you to administer the system.
%prep
rm -rf $RPM_BUILD_ROOT
%setup -q -n pandora_console
%build
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{prefix}/pandora_console
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/
cp -aRf * $RPM_BUILD_ROOT%{prefix}/pandora_console
rm $RPM_BUILD_ROOT%{prefix}/pandora_console/*.spec
rm $RPM_BUILD_ROOT%{prefix}/pandora_console/pandora_console_install
install -m 0644 pandora_console_logrotate_centos $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/pandora_console
%clean
rm -rf $RPM_BUILD_ROOT
%post
# Has an install already been done, if so we only want to update the files
# push install.php aside so that the console works immediately using existing
# configuration.
#
if [ -f %{prefix}/pandora_console/include/config.php ] ; then
mv %{prefix}/pandora_console/install.php %{prefix}/pandora_console/install.done
else
echo "Please, now, point your browser to http://your_IP_address/pandora_console/install.php and follow all the steps described on it."
fi
%preun
# Upgrading
if [ "$1" = "1" ]; then
exit 0
fi
%files
%defattr(0644,%{httpd_user},%{httpd_group},0755)
%docdir %{prefix}/pandora_console/docs
%{prefix}/pandora_console
%config(noreplace) %{_sysconfdir}/logrotate.d/pandora_console

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.733
%define release 190402
%define release 190405
%define httpd_name httpd
# User and Group under which Apache is running
%define httpd_name apache2

View File

@ -1,5 +1,5 @@
package: pandorafms-server
Version: 7.0NG.733-190402
Version: 7.0NG.733-190405
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.733-190402"
pandora_version="7.0NG.733-190405"
package_cpan=0
package_pandora=1

View File

@ -45,7 +45,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.733";
my $pandora_build = "190402";
my $pandora_build = "190405";
our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash
@ -175,6 +175,7 @@ sub pandora_get_sharedconfig ($$) {
$pa_config->{"provisioning_mode"} = pandora_get_tconfig_token ($dbh, 'provisioning_mode', '');
$pa_config->{"event_storm_protection"} = pandora_get_tconfig_token ($dbh, 'event_storm_protection', 0);
if ($pa_config->{'include_agents'} eq '') {
$pa_config->{'include_agents'} = 0;

View File

@ -32,7 +32,7 @@ our @ISA = qw(Exporter);
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.733";
my $pandora_build = "190402";
my $pandora_build = "190405";
our $VERSION = $pandora_version." ".$pandora_build;
our %EXPORT_TAGS = ( 'all' => [ qw() ] );

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_server
%define version 7.0NG.733
%define release 190402
%define release 190405
Summary: Pandora FMS Server
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_server
%define version 7.0NG.733
%define release 190402
%define release 190405
Summary: Pandora FMS Server
Name: %{name}

View File

@ -9,7 +9,7 @@
# **********************************************************************
PI_VERSION="7.0NG.733"
PI_BUILD="190402"
PI_BUILD="190405"
MODE=$1
if [ $# -gt 1 ]; then

View File

@ -34,7 +34,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB;
# version: define current version
my $version = "7.0NG.733 PS190402";
my $version = "7.0NG.733 PS190405";
# Pandora server configuration
my %conf;

View File

@ -36,7 +36,7 @@ use Encode::Locale;
Encode::Locale::decode_argv;
# version: define current version
my $version = "7.0NG.733 PS190402";
my $version = "7.0NG.733 PS190405";
# save program name for logging
my $progname = basename($0);