Merge branch 'develop' into 'ent-6846-Network-tools-al-setup-general'
# Conflicts: # pandora_console/extras/delete_files/delete_files.txt
This commit is contained in:
commit
b7bd28ba07
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.752-210309
|
||||
Version: 7.0NG.752-210310
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.752-210309"
|
||||
pandora_version="7.0NG.752-210310"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -1016,7 +1016,7 @@ my $Sem = undef;
|
|||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.752';
|
||||
use constant AGENT_BUILD => '210309';
|
||||
use constant AGENT_BUILD => '210310';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.752
|
||||
%define release 210309
|
||||
%define release 210310
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.752
|
||||
%define release 210309
|
||||
%define release 210310
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.752"
|
||||
PI_BUILD="210309"
|
||||
PI_BUILD="210310"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{210309}
|
||||
{210310}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.752(Build 210309)")
|
||||
#define PANDORA_VERSION ("7.0NG.752(Build 210310)")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
|||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.752(Build 210309))"
|
||||
VALUE "ProductVersion", "(7.0NG.752(Build 210310))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.752-210309
|
||||
Version: 7.0NG.752-210310
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.752-210309"
|
||||
pandora_version="7.0NG.752-210310"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
operation/servers/recon_view.php
|
||||
operation/users/webchat.php
|
||||
operation/events/event_statistics.php
|
||||
operation/events/events_marquee.php
|
||||
include/javascript/webchat.js
|
||||
attachment/pandora_chat.log.json.txt
|
||||
attachment/pandora_chat.user_list.json.txt
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE `treport_content` ADD COLUMN `summary` tinyint(1) DEFAULT 0;
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `summary` tinyint(1) DEFAULT 0;
|
||||
|
||||
ALTER TABLE `tinventory_alert` ADD COLUMN `alert_groups` TEXT NOT NULL;
|
||||
UPDATE `tinventory_alert` t1 INNER JOIN `tinventory_alert` t2 ON t1.id = t2.id SET t1.alert_groups = t2.id_group;
|
||||
|
||||
|
|
|
@ -865,6 +865,7 @@ ALTER TABLE `treport_content_template` ADD COLUMN `agent_min_value` TINYINT(1) D
|
|||
ALTER TABLE `treport_content_template` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `failover_type` tinyint(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `summary` tinyint(1) DEFAULT 0;
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `uncompressed_module` TINYINT DEFAULT '0';
|
||||
ALTER TABLE `treport_content_template` MODIFY COLUMN `historical_db` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||
MODIFY COLUMN `lapse_calc` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||
|
@ -1725,6 +1726,7 @@ ALTER TABLE `treport_content` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1
|
|||
ALTER TABLE `treport_content` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '0';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `failover_type` tinyint(1) DEFAULT '0';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `summary` tinyint(1) DEFAULT 0;
|
||||
ALTER table `treport_content` MODIFY COLUMN `name` varchar(300) NULL;
|
||||
ALTER TABLE `treport_content` ADD COLUMN `uncompressed_module` TINYINT DEFAULT '0';
|
||||
ALTER TABLE `treport_content` MODIFY COLUMN `historical_db` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||
|
|
|
@ -185,6 +185,7 @@ switch ($action) {
|
|||
$dyn_height = 230;
|
||||
$landscape = false;
|
||||
$pagebreak = false;
|
||||
$summary = 0;
|
||||
break;
|
||||
|
||||
case 'save':
|
||||
|
@ -314,11 +315,12 @@ switch ($action) {
|
|||
$idCustomGraph = $item['id_gs'];
|
||||
break;
|
||||
|
||||
case 'availability_graph':
|
||||
$summary = $item['summary'];
|
||||
case 'SLA':
|
||||
case 'SLA_weekly':
|
||||
case 'SLA_monthly':
|
||||
case 'SLA_hourly':
|
||||
case 'availability_graph':
|
||||
$description = $item['description'];
|
||||
$only_display_wrong = $item['only_display_wrong'];
|
||||
$monday = $item['monday'];
|
||||
|
@ -2750,6 +2752,27 @@ $class = 'databox filters';
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_summary" style="" class="datos">
|
||||
<td style="font-weight:bold;">
|
||||
<?php
|
||||
echo __('Summary');
|
||||
?>
|
||||
</td>
|
||||
<td style="">
|
||||
<?php
|
||||
html_print_checkbox_switch(
|
||||
'summary',
|
||||
1,
|
||||
$summary,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_filter_search" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Include filter'); ?></td>
|
||||
<td>
|
||||
|
@ -5116,6 +5139,7 @@ function chooseType() {
|
|||
$("#row_current_month").hide();
|
||||
$("#row_failover_mode").hide();
|
||||
$("#row_failover_type").hide();
|
||||
$("#row_summary").hide();
|
||||
$("#row_working_time").hide();
|
||||
$("#row_working_time_compare").hide();
|
||||
$("#row_only_display_wrong").hide();
|
||||
|
@ -5310,6 +5334,7 @@ function chooseType() {
|
|||
if(failover_checked){
|
||||
$("#row_failover_type").show();
|
||||
}
|
||||
$("#row_summary").show();
|
||||
break;
|
||||
|
||||
case 'module_histogram_graph':
|
||||
|
|
|
@ -1518,12 +1518,16 @@ switch ($action) {
|
|||
$values['text'] = $intervals;
|
||||
break;
|
||||
|
||||
case 'availability_graph':
|
||||
$values['summary'] = get_parameter(
|
||||
'summary',
|
||||
0
|
||||
);
|
||||
case 'SLA_monthly':
|
||||
case 'SLA_weekly':
|
||||
case 'SLA_hourly':
|
||||
case 'SLA_services':
|
||||
case 'SLA':
|
||||
case 'availability_graph':
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['top_n'] = get_parameter(
|
||||
'combo_sla_sort_options',
|
||||
|
@ -2570,6 +2574,11 @@ switch ($action) {
|
|||
REPORT_FAILOVER_TYPE_NORMAL
|
||||
);
|
||||
|
||||
$values['summary'] = get_parameter(
|
||||
'summary',
|
||||
0
|
||||
);
|
||||
|
||||
$style = [];
|
||||
$style['show_in_same_row'] = get_parameter(
|
||||
'show_in_same_row',
|
||||
|
|
|
@ -45,6 +45,11 @@ enterprise_include_once('include/functions_cron.php');
|
|||
class ConsoleSupervisor
|
||||
{
|
||||
|
||||
/**
|
||||
* Minimum modules to check performance.
|
||||
*/
|
||||
public const MIN_PERFORMANCE_MODULES = 100;
|
||||
|
||||
/**
|
||||
* Show if console supervisor is enabled or not.
|
||||
*
|
||||
|
@ -1143,6 +1148,12 @@ class ConsoleSupervisor
|
|||
$max_grown = ($total_modules[$queue['server_type']] * 0.40);
|
||||
}
|
||||
|
||||
if ($total_modules[$queue['server_type']] < self::MIN_PERFORMANCE_MODULES) {
|
||||
$this->cleanNotifications('NOTIF.SERVER.QUEUE.'.$key);
|
||||
// Skip.
|
||||
continue;
|
||||
}
|
||||
|
||||
// Compare queue increments in a not over 900 seconds.
|
||||
if (empty($previous[$key]['modules'])
|
||||
|| ($time - $previous[$key]['utime']) > 900
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
/**
|
||||
* Pandora build version and version
|
||||
*/
|
||||
$build_version = 'PC210309';
|
||||
$build_version = 'PC210310';
|
||||
$pandora_version = 'v7.0NG.752';
|
||||
|
||||
// Do not overwrite default timezone set if defined.
|
||||
|
|
|
@ -1639,12 +1639,12 @@ function config_update_config()
|
|||
|
||||
case 'module_library':
|
||||
$module_library_user = get_parameter('module_library_user');
|
||||
if ($module_library_user == '' || !config_update_value('module_library_user', $module_library_user)) {
|
||||
if (!config_update_value('module_library_user', $module_library_user)) {
|
||||
$error_update[] = __('User');
|
||||
}
|
||||
|
||||
$module_library_password = get_parameter('module_library_password');
|
||||
if ($module_library_password == '' || !config_update_value('module_library_password', $module_library_password)) {
|
||||
if (!config_update_value('module_library_password', $module_library_password)) {
|
||||
$error_update[] = __('Password');
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -4839,19 +4839,22 @@ function events_page_general($event)
|
|||
$data[0] = __('Acknowledged by');
|
||||
|
||||
if ($event['estado'] == 1) {
|
||||
$user_ack = db_get_value(
|
||||
'fullname',
|
||||
'tusuario',
|
||||
'id_user',
|
||||
$event['id_usuario']
|
||||
);
|
||||
if (empty($event['id_usuario']) === true) {
|
||||
$user_ack = __('Autovalidated');
|
||||
} else {
|
||||
$user_ack = db_get_value(
|
||||
'fullname',
|
||||
'tusuario',
|
||||
'id_user',
|
||||
$event['id_usuario']
|
||||
);
|
||||
|
||||
if (empty($user_ack) === true) {
|
||||
$user_ack = $event['id_usuario'];
|
||||
if (empty($user_ack) === true) {
|
||||
$user_ack = $event['id_usuario'];
|
||||
}
|
||||
}
|
||||
|
||||
$date_ack = io_safe_output($event['ack_utimestamp']);
|
||||
$data[1] = $user_ack.' ('.$date_ack.')';
|
||||
$data[1] = $user_ack.' ( '.date($config['date_format'], $event['ack_utimestamp_raw']).' ) ';
|
||||
} else {
|
||||
$data[1] = '<i>'.__('N/A').'</i>';
|
||||
}
|
||||
|
|
|
@ -4008,7 +4008,7 @@ function graph_graphic_agentevents(
|
|||
$width,
|
||||
$height,
|
||||
$period=0,
|
||||
$homeurl,
|
||||
$homeurl='',
|
||||
$return=false,
|
||||
$from_agent_view=false,
|
||||
$widgets=false,
|
||||
|
|
|
@ -7551,6 +7551,7 @@ function reporting_availability_graph(
|
|||
$return['pagebreak'] = $content['pagebreak'];
|
||||
$return['description'] = $content['description'];
|
||||
$return['failover_type'] = $content['failover_type'];
|
||||
$return['summary'] = $content['summary'];
|
||||
$return['date'] = reporting_get_date_text($report, $content);
|
||||
|
||||
// Get chart.
|
||||
|
@ -7669,24 +7670,22 @@ function reporting_availability_graph(
|
|||
}
|
||||
|
||||
foreach ($sla_failover as $k_sla => $v_sla) {
|
||||
if ($content['failover_type'] == REPORT_FAILOVER_TYPE_NORMAL) {
|
||||
$sla_array = data_compare_24x7(
|
||||
$v_sla,
|
||||
$content,
|
||||
$report['datetime'],
|
||||
$slice
|
||||
);
|
||||
$sla_array = data_compare_24x7(
|
||||
$v_sla,
|
||||
$content,
|
||||
$report['datetime'],
|
||||
$slice
|
||||
);
|
||||
|
||||
$return = prepare_data_for_paint(
|
||||
$v_sla,
|
||||
$sla_array,
|
||||
$content,
|
||||
$report['datetime'],
|
||||
$return,
|
||||
$k_sla,
|
||||
$pdf
|
||||
);
|
||||
}
|
||||
$return = prepare_data_for_paint(
|
||||
$v_sla,
|
||||
$sla_array,
|
||||
$content,
|
||||
$report['datetime'],
|
||||
$return,
|
||||
$k_sla,
|
||||
$pdf
|
||||
);
|
||||
|
||||
if (isset($v_sla['compare']) === true
|
||||
&& empty($v_sla['compare']) === false
|
||||
|
|
|
@ -3835,6 +3835,10 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
|
|||
|
||||
$tables_chart = '';
|
||||
|
||||
$total_values = 0;
|
||||
|
||||
$count_total_charts = 0;
|
||||
|
||||
if (isset($item['failed']) === true && empty($item['failed']) === false) {
|
||||
$tables_chart .= $item['failed'];
|
||||
} else {
|
||||
|
@ -3896,6 +3900,8 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
|
|||
$table1->data[$k_chart][0] .= ' (24 x 7)';
|
||||
}
|
||||
|
||||
$total_values += $sla_value;
|
||||
$count_total_charts++;
|
||||
$table1->data[$k_chart][1] = $chart['chart'];
|
||||
$table1->data[$k_chart][2] = "<span style = 'font-weight: bold; font-size: ".$font_size.'; color: '.$color."'>".$sla_value.'</span><br/>';
|
||||
|
||||
|
@ -3922,7 +3928,7 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
|
|||
|| $item['data'][$k_chart]['compare'] === 1)
|
||||
) {
|
||||
$table1 = new stdClass();
|
||||
$table1->width = '99%';
|
||||
$table1->width = '100%';
|
||||
$table1->data = [];
|
||||
$table1->size = [];
|
||||
$table1->size[0] = '10%';
|
||||
|
@ -3971,6 +3977,8 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
|
|||
|
||||
case 'result':
|
||||
default:
|
||||
$total_values += $sla_value;
|
||||
$count_total_charts++;
|
||||
$title = '<b>'.__('Result').'</b>';
|
||||
$sla_value_text = "<span style = 'font-weight: bold; font-size: ".$font_size.' !important; color: '.$color."'>".$sla_value.'</span>';
|
||||
$checks_resume_text = '<span style = "font-size: '.$font_mini.';">';
|
||||
|
@ -3996,6 +4004,27 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
|
|||
}
|
||||
}
|
||||
|
||||
if ((bool) $item['summary'] === true) {
|
||||
$table_summary = new stdClass();
|
||||
$table_summary->width = '20%';
|
||||
|
||||
$table_summary->size = [];
|
||||
$table_summary->size[0] = '50%';
|
||||
$table_summary->size[1] = '50%';
|
||||
|
||||
$table_summary->data = [];
|
||||
$table_summary->data[0][0] = '<b>'.__('Summary').'</b>';
|
||||
$table_summary->data[0][1] = '<span style = "font-weight: bold; font-size: '.$font_size.' !important;">';
|
||||
$table_summary->data[0][1] .= sla_truncate($total_values / $count_total_charts);
|
||||
$table_summary->data[0][1] .= ' %';
|
||||
$table_summary->data[0][1] .= '</span>';
|
||||
|
||||
$tables_chart .= html_print_table(
|
||||
$table_summary,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
if ($item['type'] == 'availability_graph') {
|
||||
// Table_legend_graphs.
|
||||
$table2 = new stdClass();
|
||||
|
|
|
@ -1073,7 +1073,25 @@ var TreeController = {
|
|||
$node.append($group);
|
||||
}
|
||||
|
||||
_.each(data.tree, function(element) {
|
||||
// Get the main values of the tree.
|
||||
var rawTree = Object.values(data.tree);
|
||||
// Sorting tree by description (services.treeview_services.php).
|
||||
rawTree.sort(function(a, b) {
|
||||
// Only the services are ordered since only they have the elementDescription property.
|
||||
if (a.elementDescription && b.elementDescription) {
|
||||
var x = a.elementDescription.toLowerCase();
|
||||
var y = b.elementDescription.toLowerCase();
|
||||
if (x < y) {
|
||||
return -1;
|
||||
}
|
||||
if (x > y) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
|
||||
_.each(rawTree, function(element) {
|
||||
element.jqObject = _processNode($group, element);
|
||||
});
|
||||
|
||||
|
|
|
@ -73,6 +73,7 @@ final class EventsHistory extends Item
|
|||
* Fetch a vc item data structure from the database using a filter.
|
||||
*
|
||||
* @param array $filter Filter of the Visual Console Item.
|
||||
* @param float $ratio Ratio visual console in dashboards.
|
||||
*
|
||||
* @return array The Visual Console Item data structure stored into the DB.
|
||||
* @throws \InvalidArgumentException When an agent Id cannot be found.
|
||||
|
@ -124,18 +125,31 @@ final class EventsHistory extends Item
|
|||
$data['height'] = 11;
|
||||
}
|
||||
|
||||
// Use the same HTML output as the old VC.
|
||||
$html = \graph_graphic_moduleevents(
|
||||
$agentId,
|
||||
$moduleId,
|
||||
100,
|
||||
(int) $data['height'],
|
||||
static::extractMaxTime($data),
|
||||
'',
|
||||
true,
|
||||
1,
|
||||
$data['width']
|
||||
);
|
||||
if (empty($moduleId) === true) {
|
||||
$html = \graph_graphic_agentevents(
|
||||
$agentId,
|
||||
100,
|
||||
(int) $data['height'],
|
||||
static::extractMaxTime($data),
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
500
|
||||
);
|
||||
} else {
|
||||
// Use the same HTML output as the old VC.
|
||||
$html = \graph_graphic_moduleevents(
|
||||
$agentId,
|
||||
$moduleId,
|
||||
100,
|
||||
(int) $data['height'],
|
||||
static::extractMaxTime($data),
|
||||
'',
|
||||
true,
|
||||
1,
|
||||
$data['width']
|
||||
);
|
||||
}
|
||||
|
||||
$data['html'] = $html;
|
||||
|
||||
|
@ -211,7 +225,7 @@ final class EventsHistory extends Item
|
|||
'return' => true,
|
||||
'module_input' => true,
|
||||
'module_name' => 'moduleId',
|
||||
'module_none' => false,
|
||||
'module_none' => true,
|
||||
],
|
||||
];
|
||||
|
||||
|
@ -227,6 +241,8 @@ final class EventsHistory extends Item
|
|||
'sort' => false,
|
||||
'agent_id' => $values['agentId'],
|
||||
'metaconsole_id' => $values['metaconsoleId'],
|
||||
'nothing' => '--',
|
||||
'nothing_value' => 0,
|
||||
],
|
||||
];
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -129,7 +129,7 @@
|
|||
<div style='height: 10px'>
|
||||
<?php
|
||||
$version = '7.0NG.752';
|
||||
$build = '210309';
|
||||
$build = '210310';
|
||||
$banner = "v$version Build $build";
|
||||
|
||||
error_reporting(0);
|
||||
|
|
|
@ -436,7 +436,7 @@ if ($not_found) {
|
|||
__('Save networkmap'),
|
||||
'crt',
|
||||
false,
|
||||
'class="sub next"'
|
||||
'class="sub next" onclick="if (typeof(sent) == \'undefined\') {sent = 1; return true;} else {return false;}"'
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -140,8 +140,11 @@ $text_module = get_parameter(
|
|||
$filter['module_search']
|
||||
);
|
||||
$id_agent_module = get_parameter(
|
||||
'filter[id_agent_module]',
|
||||
$filter['id_agent_module']
|
||||
'id_agent_module',
|
||||
get_parameter(
|
||||
'filter[id_agent_module]',
|
||||
$filter['id_agent_module']
|
||||
)
|
||||
);
|
||||
$pagination = get_parameter(
|
||||
'filter[pagination]',
|
||||
|
@ -374,6 +377,9 @@ if (is_ajax()) {
|
|||
}
|
||||
|
||||
$tmp->agent_name = io_safe_output($tmp->agent_name);
|
||||
|
||||
$tmp->ack_utimestamp_raw = strtotime($tmp->ack_utimestamp);
|
||||
|
||||
$tmp->ack_utimestamp = ui_print_timestamp(
|
||||
$tmp->ack_utimestamp,
|
||||
true
|
||||
|
@ -766,10 +772,6 @@ if ($pure) {
|
|||
$rss['active'] = false;
|
||||
$rss['text'] = '<a class="events_link" href="operation/events/events_rss.php?user='.$config['id_user'].'&hashup='.$hashup.'&">'.html_print_image('images/rss.png', true, ['title' => __('RSS Events')]).'</a>';
|
||||
|
||||
// Marquee.
|
||||
$marquee['active'] = false;
|
||||
$marquee['text'] = '<a class="events_link" href="operation/events/events_marquee.php?">'.html_print_image('images/heart.png', true, ['title' => __('Marquee display')]).'</a>';
|
||||
|
||||
// CSV.
|
||||
$csv['active'] = false;
|
||||
$csv['text'] = '<a class="events_link" href="operation/events/export_csv.php?'.$filter_b64.'">'.html_print_image('images/csv_mc.png', true, ['title' => __('Export to CSV file')]).'</a>';
|
||||
|
|
|
@ -1,127 +0,0 @@
|
|||
<?php
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
error_reporting(1);
|
||||
|
||||
// Local settings for marquee extension
|
||||
$MAX_MARQUEE_EVENTS = 10;
|
||||
$MARQUEE_INTERVAL = 90;
|
||||
$MARQUEE_FONT_SIZE = '32px';
|
||||
$MARQUEE_SPEED = 9;
|
||||
|
||||
$output = '';
|
||||
|
||||
// Don't start a session before this import.
|
||||
// The session is configured and started inside the config process.
|
||||
require_once '../../include/config.php';
|
||||
require_once '../../include/functions.php';
|
||||
require_once '../../include/functions_db.php';
|
||||
require_once '../../include/functions_api.php';
|
||||
require_once '../../include/functions_users.php';
|
||||
|
||||
global $config;
|
||||
|
||||
|
||||
$config['id_user'] = $_SESSION['id_usuario'];
|
||||
|
||||
// http://es2.php.net/manual/en/ref.session.php#64525
|
||||
// Session locking concurrency speedup!
|
||||
check_login();
|
||||
|
||||
$event_a = check_acl($config['id_user'], 0, 'ER');
|
||||
$event_w = check_acl($config['id_user'], 0, 'EW');
|
||||
$event_m = check_acl($config['id_user'], 0, 'EM');
|
||||
$access = ($event_a == true) ? 'ER' : (($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'ER'));
|
||||
|
||||
if (!isInACL($_SERVER['REMOTE_ADDR'])) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access marquee without ACL Access'
|
||||
);
|
||||
include '../../general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
|
||||
$groups = users_get_groups($config['id_user'], $access);
|
||||
|
||||
// Otherwise select all groups the user has rights to.
|
||||
if (!empty($groups)) {
|
||||
$sql_group_filter = ' AND id_grupo IN ('.implode(',', array_keys($groups)).')';
|
||||
} else {
|
||||
$sql_group_filter = '';
|
||||
}
|
||||
|
||||
// Skip system messages if user is not PM
|
||||
if (!check_acl($config['id_user'], 0, 'PM')) {
|
||||
$sql_group_filter .= ' AND id_grupo != 0';
|
||||
}
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$sql = "SELECT evento, timestamp, id_agente
|
||||
FROM tevento
|
||||
WHERE 1=1 $sql_group_filter
|
||||
ORDER BY utimestamp DESC
|
||||
LIMIT 0 , $MAX_MARQUEE_EVENTS";
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
$sql = "SELECT evento, timestamp, id_agente
|
||||
FROM tevento
|
||||
WHERE 1=1 $sql_group_filter
|
||||
ORDER BY utimestamp DESC
|
||||
LIMIT $MAX_MARQUEE_EVENTS OFFSET 0";
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
$sql = "SELECT evento, timestamp, id_agente
|
||||
FROM tevento
|
||||
WHERE (1=1 $sql_group_filter ) AND rownum <= $MAX_MARQUEE_EVENTS
|
||||
ORDER BY utimestamp DESC";
|
||||
break;
|
||||
}
|
||||
|
||||
$result = db_get_all_rows_sql($sql);
|
||||
foreach ($result as $row) {
|
||||
$agente = '';
|
||||
if ($row['id_agente'] != 0) {
|
||||
$agente = db_get_sql(
|
||||
'SELECT alias
|
||||
FROM tagente
|
||||
WHERE id_agente = '.$row['id_agente']
|
||||
);
|
||||
$agente = $agente.' : ';
|
||||
}
|
||||
|
||||
$output .= strtoupper($agente).$row['evento'].' , '.human_time_comparation($row['timestamp']);
|
||||
$output .= '. . . . . . . ';
|
||||
}
|
||||
|
||||
|
||||
echo '<html>';
|
||||
echo '<head>';
|
||||
echo '<title>'.__('%s - Latest events', get_product_name()).'</title>';
|
||||
|
||||
$query = ui_get_full_url();
|
||||
echo '<meta http-equiv="refresh" content="'.$MARQUEE_INTERVAL.'; URL='.$query.'">';
|
||||
echo '<link rel="icon" href="../../'.ui_get_favicon().'" type="image/ico">';
|
||||
echo '</head>';
|
||||
|
||||
echo "<body bgcolor='#000000' >";
|
||||
echo '<br><br>';
|
||||
echo '<center>';
|
||||
echo "<div style='font-size:$MARQUEE_FONT_SIZE; color: #fff'>";
|
||||
echo "<marquee width=95% scrollamount=$MARQUEE_SPEED>$output</marquee>";
|
||||
echo '</center>';
|
||||
echo '</div>';
|
||||
echo '</body>';
|
|
@ -430,11 +430,6 @@ if (check_acl($config['id_user'], 0, 'ER')
|
|||
$sub['operation/events/events_rss.php?user='.$config['id_user'].'&hashup='.$hashup.'&fb64='.$fb64]['text'] = __('RSS');
|
||||
$sub['operation/events/events_rss.php?user='.$config['id_user'].'&hashup='.$hashup.'&fb64='.$fb64]['id'] = 'RSS';
|
||||
$sub['operation/events/events_rss.php?user='.$config['id_user'].'&hashup='.$hashup.'&fb64='.$fb64]['type'] = 'direct';
|
||||
|
||||
// Marquee.
|
||||
$sub['operation/events/events_marquee.php']['text'] = __('Marquee');
|
||||
$sub['operation/events/events_marquee.php']['id'] = 'Marquee';
|
||||
$sub['operation/events/events_marquee.php']['type'] = 'direct';
|
||||
}
|
||||
|
||||
// Sound Events.
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.752
|
||||
%define release 210309
|
||||
%define release 210310
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.752
|
||||
%define release 210309
|
||||
%define release 210310
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.752
|
||||
%define release 210309
|
||||
%define release 210310
|
||||
%define httpd_name httpd
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name apache2
|
||||
|
|
|
@ -1560,6 +1560,7 @@ CREATE TABLE IF NOT EXISTS `treport_content` (
|
|||
`failover_mode` tinyint(1) DEFAULT '1',
|
||||
`failover_type` tinyint(1) DEFAULT '1',
|
||||
`uncompressed_module` TINYINT DEFAULT '0',
|
||||
`summary` tinyint(1) DEFAULT 0,
|
||||
`landscape` tinyint(1) UNSIGNED NOT NULL default 0,
|
||||
`pagebreak` tinyint(1) UNSIGNED NOT NULL default 0,
|
||||
`compare_work_time` tinyint(1) UNSIGNED NOT NULL default 0,
|
||||
|
@ -3163,6 +3164,7 @@ CREATE TABLE IF NOT EXISTS `treport_content_template` (
|
|||
`current_month` TINYINT(1) DEFAULT '1',
|
||||
`failover_mode` tinyint(1) DEFAULT '1',
|
||||
`failover_type` tinyint(1) DEFAULT '1',
|
||||
`summary` tinyint(1) DEFAULT 0,
|
||||
`uncompressed_module` TINYINT DEFAULT '0',
|
||||
`landscape` tinyint(1) UNSIGNED NOT NULL default 0,
|
||||
`pagebreak` tinyint(1) UNSIGNED NOT NULL default 0,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-server
|
||||
Version: 7.0NG.752-210309
|
||||
Version: 7.0NG.752-210310
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.752-210309"
|
||||
pandora_version="7.0NG.752-210310"
|
||||
|
||||
package_cpan=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -45,7 +45,7 @@ our @EXPORT = qw(
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.752";
|
||||
my $pandora_build = "210309";
|
||||
my $pandora_build = "210310";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
# Setup hash
|
||||
|
|
|
@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.752";
|
||||
my $pandora_build = "210309";
|
||||
my $pandora_build = "210310";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.752
|
||||
%define release 210309
|
||||
%define release 210310
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.752
|
||||
%define release 210309
|
||||
%define release 210310
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.752"
|
||||
PI_BUILD="210309"
|
||||
PI_BUILD="210310"
|
||||
|
||||
MODE=$1
|
||||
if [ $# -gt 1 ]; then
|
||||
|
|
|
@ -35,7 +35,7 @@ use PandoraFMS::Config;
|
|||
use PandoraFMS::DB;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.752 PS210309";
|
||||
my $version = "7.0NG.752 PS210310";
|
||||
|
||||
# Pandora server configuration
|
||||
my %conf;
|
||||
|
|
|
@ -36,7 +36,7 @@ use Encode::Locale;
|
|||
Encode::Locale::decode_argv;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.752 PS210309";
|
||||
my $version = "7.0NG.752 PS210310";
|
||||
|
||||
# save program name for logging
|
||||
my $progname = basename($0);
|
||||
|
|
|
@ -68,6 +68,14 @@ export default class Service extends Item<ServiceProps> {
|
|||
element.style.background = `url(${this.props.statusImageSrc}) no-repeat`;
|
||||
element.style.backgroundSize = "contain";
|
||||
element.style.backgroundPosition = "center";
|
||||
if (this.props.encodedTitle !== null) {
|
||||
element.className = "service image forced_title";
|
||||
element.setAttribute("data-use_title_for_force_title", "1");
|
||||
element.setAttribute(
|
||||
"data-title",
|
||||
decodeBase64(this.props.encodedTitle)
|
||||
);
|
||||
}
|
||||
} else if (this.props.encodedTitle !== null) {
|
||||
element.innerHTML = decodeBase64(this.props.encodedTitle);
|
||||
}
|
||||
|
@ -84,6 +92,14 @@ export default class Service extends Item<ServiceProps> {
|
|||
element.style.background = `url(${this.props.statusImageSrc}) no-repeat`;
|
||||
element.style.backgroundSize = "contain";
|
||||
element.style.backgroundPosition = "center";
|
||||
if (this.props.encodedTitle !== null) {
|
||||
element.className = "service image forced_title";
|
||||
element.setAttribute("data-use_title_for_force_title", "1");
|
||||
element.setAttribute(
|
||||
"data-title",
|
||||
decodeBase64(this.props.encodedTitle)
|
||||
);
|
||||
}
|
||||
element.innerHTML = "";
|
||||
} else if (this.props.encodedTitle !== null) {
|
||||
element.innerHTML = decodeBase64(this.props.encodedTitle);
|
||||
|
|
Loading…
Reference in New Issue