Merge branch 'develop' into ent-13451-widget-module-status-y-module-value-tema-oscuro-y-color-valor

This commit is contained in:
Pablo Aragon 2024-04-11 10:20:22 +02:00
commit 398b791199
55 changed files with 635 additions and 305 deletions

View File

@ -234,16 +234,6 @@ module_description Number of cron task files
module_unit files module_unit files
module_end module_end
# This module /var/log/syslog file, under the module name "syslog"
# And search for "ssh" string into it, sending only that information.
module_begin
module_name Syslog
module_description Search for ssh string into /var/log/syslog file
module_type log
module_regexp /var/log/syslog
module_pattern ssh
module_end
#Hardening plugin for security compliance analysis. Enable to use it. #Hardening plugin for security compliance analysis. Enable to use it.
#module_begin #module_begin
#module_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150 #module_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150
@ -310,11 +300,15 @@ module_plugin pandora_df
#module_description Postcondition test module #module_description Postcondition test module
#module_end #module_end
# This plugin runs several security checks in a Linux system
#module_plugin pandora_security_check
# Extraction module example # Extraction module example
#module_begin #module_begin
#module_name Collector #module_name Syslog
#module_description Logs extraction module #module_description Gets all logs from system messages
#module_type log #module_type log
#module_regexp /var/log/logfile.log #module_regexp /var/log/messages
#module_pattern .* #module_pattern .*
#module_end #module_end

View File

@ -354,11 +354,11 @@ module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df.vbs"
#module_description Postcondition test module #module_description Postcondition test module
#module_end #module_end
# Example of collector module # Logs extraction
#module_begin #module_begin
#module_name Collector #module_name Syslog
#module_description Logs extraction module #module_description Gets all logs from system messages
#module_type log #module_type log
#module_regexp /var/log/logfile.log #module_regexp C:\server\logs\messages
#module_pattern .* #module_pattern .*
#module_end #module_end

View File

@ -163,26 +163,16 @@ module_end
#module_absoluteinterval 7d #module_absoluteinterval 7d
#module_end #module_end
# This module parses /var/log/syslog file, under the module name "syslog"
# And search for "ssh" string into it, sending only that information.
module_begin
module_name Syslog
module_description Search for ssh string into /var/log/syslog file
module_type log
module_regexp /var/log/syslog
module_pattern ssh
module_end
# Plugin example # Plugin example
# Plugin for inventory on the agent. # Plugin for inventory on the agent.
# module_plugin inventory 1 cpu ram video nic hd cdrom software # module_plugin inventory 1 cpu ram video nic hd cdrom software
# Extraction module example # Logs extraction
#module_begin #module_begin
#module_name Collector #module_name Syslog
#module_description Logs extraction module #module_description Gets all logs from system messages
#module_type log #module_type log
#module_regexp /var/log/logfile.log #module_regexp /var/log/messages
#module_pattern .* #module_pattern .*
#module_end #module_end

View File

@ -378,26 +378,16 @@ module_end
#module_absoluteinterval 7d #module_absoluteinterval 7d
#module_end #module_end
# This module parses /var/log/syslog file, under the module name "syslog"
# And search for "ssh" string into it, sending only that information.
module_begin
module_name Syslog
module_description Log collection modules
module_type log
module_regexp /var/log/syslog
module_pattern ssh
module_end
# Plugin example # Plugin example
# Plugin for inventory on the agent. # Plugin for inventory on the agent.
# module_plugin inventory 1 cpu ram video nic hd cdrom software # module_plugin inventory 1 cpu ram video nic hd cdrom software
# Extraction module example # Logs extraction
#module_begin #module_begin
#module_name Collector #module_name Syslog
#module_description Logs extraction module #module_description Gets all logs from system messages
#module_type log #module_type log
#module_regexp /var/log/logfile.log #module_regexp /var/log/messages
#module_pattern .* #module_pattern .*
#module_end #module_end

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix package: pandorafms-agent-unix
Version: 7.0NG.776-240410 Version: 7.0NG.776-240411
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

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

View File

@ -277,4 +277,10 @@ module_plugin grep_log /var/log/auth.log Syslog sshd
# Log collection modules. Only for enterprise version, this will collect log files for forensic analysis. # Log collection modules. Only for enterprise version, this will collect log files for forensic analysis.
# This is for LOG monitoring, only on enterprise version # This is for LOG monitoring, only on enterprise version
#module_plugin grep_log_module /var/log/messages Syslog \.\* #module_begin
#module_name Syslog
#module_description Gets all logs from system messages
#module_type log
#module_regexp /var/log/messages
#module_pattern .*
#module_end

View File

@ -325,12 +325,3 @@ module_end
#module_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150 #module_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150
#module_absoluteinterval 7d #module_absoluteinterval 7d
#module_end #module_end
# Extraction module example
#module_begin
#module_name Collector
#module_description Logs extraction module
#module_type log
#module_regexp /var/log/logfile.log
#module_pattern .*
#module_end

View File

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

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil} %global __os_install_post %{nil}
%define name pandorafms_agent_linux %define name pandorafms_agent_linux
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240410 %define release 240411
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin %define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux %define source_name pandorafms_agent_linux
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240410 %define release 240411
%define debug_package %{nil} %define debug_package %{nil}
Summary: Pandora FMS Linux agent, binary version Summary: Pandora FMS Linux agent, binary version

View File

@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin %define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux %define source_name pandorafms_agent_linux
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240410 %define release 240411
%define debug_package %{nil} %define debug_package %{nil}
Summary: Pandora FMS Linux agent, binary version Summary: Pandora FMS Linux agent, binary version

View File

@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin %define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux %define source_name pandorafms_agent_linux
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240410 %define release 240411
Summary: Pandora FMS Linux agent, binary version Summary: Pandora FMS Linux agent, binary version
Name: %{name} Name: %{name}

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil} %global __os_install_post %{nil}
%define name pandorafms_agent_linux %define name pandorafms_agent_linux
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240410 %define release 240411
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -10,7 +10,7 @@
# ********************************************************************** # **********************************************************************
PI_VERSION="7.0NG.776" PI_VERSION="7.0NG.776"
PI_BUILD="240410" PI_BUILD="240411"
OS_NAME=`uname -s` OS_NAME=`uname -s`
FORCE=0 FORCE=0

View File

@ -289,14 +289,6 @@ module_plugin "%PROGRAMFILES%\Pandora_Agent\util\autodiscover.exe" --default
#module_type generic_data_string #module_type generic_data_string
#module_end #module_end
# Get logs from Application source. Need enterprise version.
#module_begin
#module_name Eventlog_Application
#module_type log
#module_logevent
#module_source Application
#module_end
# Example: get Network information using Agent plugin # Example: get Network information using Agent plugin
#module_plugin cscript //B "%ProgramFiles%\Pandora_Agent\util\nettraffic.vbs" #module_plugin cscript //B "%ProgramFiles%\Pandora_Agent\util\nettraffic.vbs"
@ -533,10 +525,10 @@ module_plugin "%PROGRAMFILES%\Pandora_Agent\util\autodiscover.exe" --default
# Logs extraction # Logs extraction
#module_begin #module_begin
#module_name X_Server_log #module_name Syslog
#module_description Logs extraction module #module_description Gets all logs from system messages
#module_type log #module_type log
#module_regexp C:\server\logs\xserver.log #module_regexp C:\server\logs\messages
#module_pattern .* #module_pattern .*
#module_end #module_end

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{} {}
Version Version
{240410} {240411}
ViewReadme ViewReadme
{Yes} {Yes}

View File

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

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Pandora FMS" VALUE "LegalCopyright", "Pandora FMS"
VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent" VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.776(Build 240410))" VALUE "ProductVersion", "(7.0NG.776(Build 240411))"
VALUE "FileVersion", "1.0.0.0" VALUE "FileVersion", "1.0.0.0"
END END
END END

View File

@ -1,5 +1,5 @@
package: pandorafms-console package: pandorafms-console
Version: 7.0NG.776-240410 Version: 7.0NG.776-240411
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

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

View File

@ -140,7 +140,6 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
} }
} }
$search_bar .= '<div id="result_order" class="result_order"></div>';
$search_bar .= '<input id="keywords" name="keywords"'; $search_bar .= '<input id="keywords" name="keywords"';
if (!isset($config['search_keywords'])) { if (!isset($config['search_keywords'])) {
$search_bar .= "value='".__('Enter keywords to search')."'"; $search_bar .= "value='".__('Enter keywords to search')."'";
@ -408,6 +407,27 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
$modal_box .= '<a href="https://discord.com/invite/xVt2ruSxmr" target="_blank">'.__('Join discord community').'</a>'; $modal_box .= '<a href="https://discord.com/invite/xVt2ruSxmr" target="_blank">'.__('Join discord community').'</a>';
$modal_box .= '</div>'; $modal_box .= '</div>';
// Move help modal (header) fix z-index.
$modal_box .= '
<script>
$(document).ready(function() {
let helpModalIcon = $("#modal-help-content > img");
let helpModal = $("#modal_help");
if (helpModalIcon.length > 0) {
let distanceRight =
$(window).width() - (helpModalIcon.offset().left + helpModalIcon.width());
helpModal.css("z-index", "3");
helpModal.css("position", "fixed");
helpModal.css("top", "16px");
helpModal.css("right", `${Math.floor(distanceRight) + 34}px`);
helpModal.appendTo(document.body);
}
});
</script>
';
if ($config['activate_feedback'] === '1') { if ($config['activate_feedback'] === '1') {
$modal_help = html_print_div( $modal_help = html_print_div(
[ [
@ -883,7 +903,8 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
enterprise: <?php echo (int) enterprise_installed(); ?>, enterprise: <?php echo (int) enterprise_installed(); ?>,
}, },
success: function (data) { success: function (data) {
$('#result_order').html(data); $('#result_order').html(data);
resizeSearchHeader()
}, },
error: function (data) { error: function (data) {
console.error("Fatal error in AJAX call to interpreter order", data) console.error("Fatal error in AJAX call to interpreter order", data)
@ -1208,4 +1229,8 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
}); });
}); });
/* ]]> */ /* ]]> */
$(window).resize(function () {
resizeSearchHeader()
});
</script> </script>

View File

@ -75,8 +75,8 @@ if (isset($text) === false) {
} }
$directory = (string) get_parameter('directory'); $directory = (string) get_parameter('directory');
$directory = str_replace('&lt;', '', $text); $directory = str_replace('&lt;', '', $directory);
$directory = str_replace('&gt;', '', $text); $directory = str_replace('&gt;', '', $directory);
if (empty($directory) === true) { if (empty($directory) === true) {
$directory = $fallback_directory; $directory = $fallback_directory;
} else { } else {

View File

@ -111,11 +111,8 @@ if (enterprise_installed()) {
array_push($menu_tabs, $menu_tab_url); array_push($menu_tabs, $menu_tab_url);
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=hist_db').'">'.__('History database').'</a>'; $menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=hist_db').'">'.__('History database').'</a>';
array_push($menu_tabs, $menu_tab_url); array_push($menu_tabs, $menu_tab_url);
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=log').'">'.__('Log collector').'</a>';
if ($config['log_collector']) { array_push($menu_tabs, $menu_tab_url);
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=log').'">'.__('Log collector').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
} }
$buttons['auth'] = [ $buttons['auth'] = [
@ -422,8 +419,14 @@ switch ($section) {
$help_header = ''; $help_header = '';
break; break;
case 'log':
$buttons['log']['active'] = true;
$subpage = __('Log Collector');
$help_header = 'opensearch_installation';
break;
default: default:
$subpage = 'seccion: '; $subpage = '';
// Default. // Default.
break; break;
} }
@ -432,7 +435,7 @@ $dots = dot_tab($menu_tabs);
// Header. // Header.
ui_print_standard_header( ui_print_standard_header(
__('Setup').' &raquo; '.$subpage, $subpage,
'', '',
false, false,
$help_header, $help_header,

View File

@ -250,6 +250,13 @@ class ConsoleSupervisor
$this->checkAllowOverrideEnabled(); $this->checkAllowOverrideEnabled();
/*
* Check if OpenSearch is configured and log collector enabled
* NOTIF.OPENSEARCH.CONSOLELOG
*/
$this->checkOpenSearchLogCollector();
/* /*
* Check if the Pandora Console log * Check if the Pandora Console log
* file remains in old location. * file remains in old location.
@ -540,6 +547,12 @@ class ConsoleSupervisor
$this->checkUpdateManagerRegistration(); $this->checkUpdateManagerRegistration();
/*
* Check if OpenSearch is configured and log collector enabled
* NOTIF.OPENSEARCH.CONSOLELOG
*/
$this->checkOpenSearchLogCollector();
/* /*
* Check if has API access. * Check if has API access.
* NOTIF.API.ACCESS * NOTIF.API.ACCESS
@ -2540,6 +2553,35 @@ class ConsoleSupervisor
} }
/**
* Check if OpenSearch is configured and log collector enabled.
*
* @return void
*/
public function checkOpenSearchLogCollector()
{
global $config;
include_once $config['homedir'].'/include/functions_update_manager.php';
$login = get_parameter('login', false);
if ($config['log_collector'] !== '1' && empty($config['elasticsearch_ip']) === false && empty($config['elasticsearch_port']) === false) {
if (update_manager_verify_registration() === false) {
$this->notify(
[
'type' => 'NOTIF.OPENSEARCH.CONSOLELOG',
'title' => __('The Log collector is not enabled'),
'message' => __('The OpenSearch is defined but the log collector is not enabled.'),
'url' => '__url__/index.php?sec=gsetup&sec2=godmode/setup/setup&section=log',
'icon_notification' => self::ICON_QUESTION,
]
);
} else {
$this->cleanNotifications('NOTIF.OPENSEARCH.CONSOLELOG');
}
}
}
/** /**
* Check if has access to the API * Check if has access to the API
* *

View File

@ -404,7 +404,7 @@ class OrderInterpreter extends Wizard
if ($iterator <= 9 && $this->canShowItem($enterprise, $this->pages_menu[$key]['url'])) { if ($iterator <= 9 && $this->canShowItem($enterprise, $this->pages_menu[$key]['url'])) {
echo '<li class="list_found" name="'.$iterator.'" id="'.$iterator.'">'; echo '<li class="list_found" name="'.$iterator.'" id="'.$iterator.'">';
echo ' echo '
<span class="invert_filter"> Go to </span> &nbsp; <span class=""> Go to </span> &nbsp;
<img src="'.$this->pages_menu[$key]['icon'].'">'; <img src="'.$this->pages_menu[$key]['icon'].'">';
echo '&nbsp; echo '&nbsp;
<a href="'.$this->pages_menu[$key]['url'].'"> <a href="'.$this->pages_menu[$key]['url'].'">

View File

@ -240,27 +240,27 @@ class SnmpConsole extends HTML
'status', 'status',
[ [
'text' => 'snmp_agent', 'text' => 'snmp_agent',
'class' => 'snmp-td datos_green', 'class' => 'snmp-td',
], ],
[ [
'text' => 'enterprise_string', 'text' => 'enterprise_string',
'class' => 'snmp-td datos_green', 'class' => 'snmp-td',
], ],
[ [
'text' => 'count', 'text' => 'count',
'class' => 'snmp-td datos_green', 'class' => 'snmp-td',
], ],
[ [
'text' => 'trap_subtype', 'text' => 'trap_subtype',
'class' => 'snmp-td datos_green', 'class' => 'snmp-td',
], ],
[ [
'text' => 'user_id', 'text' => 'user_id',
'class' => 'snmp-td datos_green', 'class' => 'snmp-td',
], ],
[ [
'text' => 'timestamp', 'text' => 'timestamp',
'class' => 'snmp-td datos_green', 'class' => 'snmp-td',
], ],
'alert', 'alert',
[ [
@ -791,7 +791,7 @@ class SnmpConsole extends HTML
// SNMP Agent. // SNMP Agent.
$agent = agents_get_agent_with_ip($tmp->source); $agent = agents_get_agent_with_ip($tmp->source);
if ($agent === false) { if ($agent === false) {
$tmp->snmp_agent .= '<a href="index.php?sec=estado&sec2=godmode/agentes/configurar_agente&new_agent=1&direccion='.$tmp->source.'" title="'.__('Create agent').'">'.$tmp->source.'</a>'; $tmp->snmp_agent .= '<a class="'.$severity_class.' href="index.php?sec=estado&sec2=godmode/agentes/configurar_agente&new_agent=1&direccion='.$tmp->source.'" title="'.__('Create agent').'">'.$tmp->source.'</a>';
} else { } else {
$tmp->snmp_agent .= '<div class="'.$severity_class.' snmp-div"><a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_agente'].'" title="'.__('View agent details').'">'; $tmp->snmp_agent .= '<div class="'.$severity_class.' snmp-div"><a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_agente'].'" title="'.__('View agent details').'">';
$tmp->snmp_agent .= '<strong>'.$agent['alias'].ui_print_help_tip($tmp->source, true); $tmp->snmp_agent .= '<strong>'.$agent['alias'].ui_print_help_tip($tmp->source, true);

View File

@ -22,7 +22,7 @@ use DI\ContainerBuilder;
/* /*
* Pandora build version and version * Pandora build version and version
*/ */
$build_version = 'PC240410'; $build_version = 'PC240411';
$pandora_version = 'v7.0NG.776'; $pandora_version = 'v7.0NG.776';
// Do not overwrite default timezone set if defined. // Do not overwrite default timezone set if defined.

View File

@ -5617,6 +5617,13 @@ function get_help_info($section_name)
} }
break; break;
case 'opensearch_installation':
if ($es) {
$result .= 'pandorafms/technical_annexes/38_opensearch_installation#instalacion';
} else {
$result .= 'pandorafms/technical_annexes/38_opensearch_installation#installation';
}
case 'servers_ha_clusters_tab': case 'servers_ha_clusters_tab':
if ($es) { if ($es) {
$result .= 'pandorafms/complex_environments_and_optimization/06_ha#alta_disponibilidad_del_servidor_de_datos'; $result .= 'pandorafms/complex_environments_and_optimization/06_ha#alta_disponibilidad_del_servidor_de_datos';

View File

@ -4597,7 +4597,7 @@ function html_print_table(&$table, $return=false)
} else { } else {
$headStyle = ''; $headStyle = '';
} }
if (isset($table->headStyle[$heading])) { if (isset($table->headStyle[$heading])) {
$headStyle = ' style = "'.$table->headStyle[$heading].'" '; $headStyle = ' style = "'.$table->headStyle[$heading].'" ';
} }

View File

@ -147,6 +147,7 @@ function notifications_get_subtypes(?string $source=null)
'NOTIF.METACONSOLE.DB_CONNECTION', 'NOTIF.METACONSOLE.DB_CONNECTION',
'NOTIF.DOWNTIME', 'NOTIF.DOWNTIME',
'NOTIF.UPDATEMANAGER.REGISTRATION', 'NOTIF.UPDATEMANAGER.REGISTRATION',
'NOTIF.OPENSEARCH.CONSOLELOG',
'NOTIF.API.ACCESS', 'NOTIF.API.ACCESS',
'NOTIF.MISC.EVENTSTORMPROTECTION', 'NOTIF.MISC.EVENTSTORMPROTECTION',
'NOTIF.MISC.DEVELOPBYPASS', 'NOTIF.MISC.DEVELOPBYPASS',

View File

@ -4646,10 +4646,12 @@ function ui_toggle(
$imageRotate = $rotateB; $imageRotate = $rotateB;
$style .= 'height:0;position:absolute;'; $style .= 'height:0;position:absolute;';
$original = $img_b; $original = $img_b;
$data_close = 'true';
} else { } else {
$imageRotate = $rotateA; $imageRotate = $rotateA;
$style .= 'height:auto;position:relative;'; $style .= 'height:auto;position:relative;';
$original = $img_a; $original = $img_a;
$data_close = 'false';
} }
$header_class = ''; $header_class = '';
@ -4668,7 +4670,7 @@ function ui_toggle(
// Link to toggle. // Link to toggle.
$output = '<div class="'.$main_class.'" id="'.$id.'" '.$toggl_attr.'>'; $output = '<div class="'.$main_class.'" id="'.$id.'" '.$toggl_attr.'>';
$output .= '<div class="'.$header_class.'" '.(($disableToggle === false) ? 'style="cursor: pointer;" ' : '').' id="tgl_ctrl_'.$uniqid.'">'; $output .= '<div class="'.$header_class.'" '.(($disableToggle === false) ? 'style="cursor: pointer;" ' : '').' id="tgl_ctrl_'.$uniqid.'" data-close="'.$data_close.'">';
if ($reverseImg === false) { if ($reverseImg === false) {
if ($switch === true) { if ($switch === true) {
if (empty($switch_name) === true) { if (empty($switch_name) === true) {
@ -4783,6 +4785,7 @@ function ui_toggle(
$output .= " $('#tgl_div_".$uniqid."').css('position', '".$position_div."');\n"; $output .= " $('#tgl_div_".$uniqid."').css('position', '".$position_div."');\n";
$output .= " $('#image_".$uniqid."').attr('style', 'rotate: ".$rotateA."');\n"; $output .= " $('#image_".$uniqid."').attr('style', 'rotate: ".$rotateA."');\n";
$output .= " $('#checkbox-".$switch_name."').prop('checked', true);\n"; $output .= " $('#checkbox-".$switch_name."').prop('checked', true);\n";
$output .= " $('#tgl_ctrl_".$uniqid."').attr('data-close', 'false');\n";
$output .= $class_table; $output .= $class_table;
$output .= " }\n"; $output .= " }\n";
$output .= " else {\n"; $output .= " else {\n";
@ -4791,6 +4794,7 @@ function ui_toggle(
$output .= " $('#tgl_div_".$uniqid."').css('position', 'absolute');\n"; $output .= " $('#tgl_div_".$uniqid."').css('position', 'absolute');\n";
$output .= " $('#image_".$uniqid."').attr('style', 'rotate: ".$rotateB."');\n"; $output .= " $('#image_".$uniqid."').attr('style', 'rotate: ".$rotateB."');\n";
$output .= " $('#checkbox-".$switch_name."').prop('checked', false);\n"; $output .= " $('#checkbox-".$switch_name."').prop('checked', false);\n";
$output .= " $('#tgl_ctrl_".$uniqid."').attr('data-close', 'true');\n";
$output .= " }\n"; $output .= " }\n";
$output .= " });\n"; $output .= " });\n";
$output .= " }\n"; $output .= " }\n";

View File

@ -1126,3 +1126,29 @@ function user_print_header(int $pure=0, string $tab='user', ?string $title=null)
] ]
); );
} }
/**
* Returns the timezone of the user given or the actual one.
*
* @param mixed $id_user Id usuario (No give notingh return current user).
*
* @return string Return timezone of the user.
*/
function user_get_timezone($id_user=null)
{
global $config;
if (empty($id_user)) {
$id_user = $config['id_user'];
}
$timezone = db_get_value(
'timezone',
'tusuario',
'id_user',
$id_user
);
return $timezone;
}

View File

@ -344,6 +344,22 @@ function flot_area_graph(
// Trick to get translated string from javascript. // Trick to get translated string from javascript.
$return .= html_print_input_hidden('unknown_text', __('Unknown'), true); $return .= html_print_input_hidden('unknown_text', __('Unknown'), true);
if (isset($array_events_alerts)) {
$user_timezone = user_get_timezone();
if (isset($user_timezone) && $user_timezone !== '') {
foreach ($array_events_alerts as $key_event_alert => $event_alert) {
foreach ($event_alert as $key => $row) {
if (isset($row['timestamp']) === true) {
$timezone = new DateTimeZone($user_timezone);
$date = new DateTime();
$date->setTimestamp($row['utimestamp']);
$date->setTimezone($timezone);
$array_events_alerts[$key_event_alert][$key]['timestamp'] = $date->format('Y-m-d H:i:s');
}
}
}
}
}
$values = json_encode($array_data); $values = json_encode($array_data);

View File

@ -2736,3 +2736,8 @@ function menuTabsShowHide() {
} }
} }
} }
function resizeSearchHeader() {
$(".show_result_interpreter").width($("#keywords").outerWidth() - 12);
$(".show_result_interpreter").css("left", $("#keywords").position().left + 2);
}

View File

@ -615,7 +615,7 @@ class EventsListWidget extends Widget
if (in_array('0', $this->values['groupId'])) { if (in_array('0', $this->values['groupId'])) {
$filter['id_group_filter'] = 0; $filter['id_group_filter'] = 0;
} else { } else {
$filter['id_group_filter'] = (!empty($this->values['groupId'][0])) ? $this->values['groupId'] : 0; $filter['id_group_filter'] = (!empty($customFilter['id_group'])) ? $customFilter['id_group'] : 0;
} }
$filter['tag_with'] = base64_encode( $filter['tag_with'] = base64_encode(

View File

@ -778,6 +778,7 @@ class Group extends Entity
exit; exit;
} }
/** /**
* Check whether group is linked to a database element (needed for ajax check). * Check whether group is linked to a database element (needed for ajax check).
* *

View File

@ -478,7 +478,6 @@ ul li {
top: 0; top: 0;
left: 0; left: 0;
background-color: #ffffff; background-color: #ffffff;
border-right: 1px solid #eee;
} }
.button_collapse { .button_collapse {
@ -545,6 +544,13 @@ ul li {
width: 35px; width: 35px;
} }
#button_collapse {
width: 32px;
height: 32px;
background-color: #f6f7fb;
border-radius: 50%;
}
@media screen and (max-height: 750px) { @media screen and (max-height: 750px) {
.operation { .operation {
padding-top: 10px; padding-top: 10px;
@ -586,7 +592,7 @@ ul li {
#menu_tabs { #menu_tabs {
height: 49px; height: 49px;
border-bottom: 1px solid #c1ccdc; border-bottom: 1px solid #f6f7fb;
} }
.div_border_line { .div_border_line {

View File

@ -2,16 +2,18 @@ div.show_result_interpreter {
background-color: #fff; background-color: #fff;
color: #000; color: #000;
border: 1px solid #e2e2e2; border: 1px solid #e2e2e2;
border-bottom-left-radius: 10px; border-top: 0;
border-bottom-right-radius: 10px; border-bottom-left-radius: 18px;
border-bottom-right-radius: 18px;
padding-left: 10px; padding-left: 10px;
padding-top: 5px; padding-top: 5px;
padding-bottom: 5px; padding-bottom: 5px;
box-shadow: 0px 0px 15px -4px #dadada; box-shadow: 0px 0px 15px -4px #dadada;
position: absolute; position: fixed;
z-index: 1; z-index: 3;
width: 300px; width: 300px;
top: 45px; top: 48px;
left: 50%;
} }
.more_results { .more_results {
@ -21,27 +23,37 @@ div.show_result_interpreter {
} }
.results-found { .results-found {
background-image: url("../../images/input_zoom_gray.png"); background-image: url("../../images/details.svg");
background-position: center right 10px; background-position: center left 20px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 17px; background-size: 17px;
background-color: #f2f6f7; background-color: #f6f7fb;
padding: 0px; padding: 0px;
margin: 0; margin: 0;
width: 300px; width: 150px;
height: 30px; height: 36px;
margin-left: 2px; margin-left: 2px;
padding-left: 15px; padding-right: 15px;
padding-right: 40px; padding-left: 45px;
color: #777; color: #777;
font-size: 8.5pt; font-size: 8.5pt;
border-top-left-radius: 10px; border-top-left-radius: 18px;
border-top-right-radius: 10px; border-top-right-radius: 18px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
border-color: transparent; border-color: transparent;
} }
.list_found { .list_found {
padding-top: 5px; padding: 5px;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
}
.list_found img {
padding: 0 5px;
} }
.active { .active {

View File

@ -29,6 +29,7 @@
:root { :root {
--primary-color: #14524f; --primary-color: #14524f;
--primary-color-hover: #318280;
--secondary-color: #ffffff; --secondary-color: #ffffff;
--text-color: #333; --text-color: #333;
@ -44,6 +45,31 @@
--input-border: #c0ccdc; --input-border: #c0ccdc;
--table-hover-background: #ebfffe; --table-hover-background: #ebfffe;
/* Events priorities colors */
--events-priority-bg-green: #82b92e;
--events-priority-text-green: #fff;
--events-priority-bg-red: #e63c52;
--events-priority-text-red: #fff;
--events-priority-bg-yellow: #f3b200;
--events-priority-text-yellow: #111;
--events-priority-bg-blue: #4ca8e0;
--events-priority-text-blue: #fff;
--events-priority-bg-grey: #999999;
--events-priority-text-grey: #fff;
--events-priority-bg-pink: #fdc4ca;
--events-priority-text-pink: #111;
--events-priority-bg-brown: #a67c52;
--events-priority-text-brown: #fff;
--events-priority-bg-orange: #f7931e;
--events-priority-text-orange: #111;
} }
/* /*
@ -1584,7 +1610,6 @@ div#head {
height: 60px; height: 60px;
padding-top: 0px; padding-top: 0px;
margin: 0 auto; margin: 0 auto;
border-bottom: 1px solid #eee;
min-width: 882px; min-width: 882px;
background-color: #fff; background-color: #fff;
color: #000; color: #000;
@ -1982,21 +2007,43 @@ div.title_line {
#menu_tab_frame_view, #menu_tab_frame_view,
#menu_tab_frame_view_bc { #menu_tab_frame_view_bc {
position: sticky; position: sticky;
top: 61px; top: 60px;
z-index: 2; z-index: 2;
display: flex; display: flex;
align-items: flex-end; align-items: flex-end;
justify-content: space-between; justify-content: space-between;
border-bottom: 1px solid #eee;
width: -webkit-fill-available; width: -webkit-fill-available;
width: -moz-available; width: -moz-available;
padding-right: 0px; padding-right: 0px;
height: 50px; height: 50px;
box-sizing: border-box; box-sizing: border-box;
background-color: #fff; background-color: #f6f7fb;
margin: -25px -25px 25px -25px; margin: -25px -25px 25px -25px;
} }
#menu_full::before {
content: "";
width: 16px;
height: 16px;
background-color: var(--secondary-color);
position: absolute;
top: 60px;
right: -16px;
z-index: 0;
}
#menu_full::after {
content: "";
width: 16px;
height: 16px;
background-color: #f6f7fb;
position: absolute;
top: 60px;
right: -16px;
z-index: 0;
border-top-left-radius: 16px;
}
/* Breadcrum */ /* Breadcrum */
#menu_tab_frame_view_bc { #menu_tab_frame_view_bc {
min-height: 55px; min-height: 55px;
@ -2805,10 +2852,31 @@ div#pandora_logo_header {
flex-direction: column; flex-direction: column;
} }
#head,
#header {
text-wrap: nowrap;
}
.header_center { .header_center {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 100%;
}
#header_searchbar {
width: 100%;
padding: 0 100px;
}
@media screen and (max-width: 1300px) {
#header_searchbar {
padding: 0 30px;
}
}
#header_searchbar #keywords {
width: 100%;
} }
.header_right { .header_right {
@ -3591,17 +3659,17 @@ div.tip > img {
*/ */
input.search_input { input.search_input {
background-image: url("../../images/details.svg"); background-image: url("../../images/details.svg");
background-position: center right 10px; background-position: center left 20px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 17px; background-size: 17px;
background-color: #f2f6f7; background-color: #f6f7fb;
padding: 0px; padding: 0px;
margin: 0; margin: 0;
width: 150px; width: 150px;
height: 30px; height: 36px;
margin-left: 2px; margin-left: 2px;
padding-left: 15px; padding-right: 15px;
padding-right: 40px; padding-left: 45px;
color: #777; color: #777;
font-size: 8.5pt; font-size: 8.5pt;
border-top-left-radius: 50px; border-top-left-radius: 50px;
@ -4073,15 +4141,22 @@ div.div_groups_status {
min-height: 53px; min-height: 53px;
} }
#menu_tab li:hover:not(.menu-dots-li) {
box-shadow: inset 0px 4px var(--primary-color);
}
#menu_tab li.nomn_high, #menu_tab li.nomn_high,
#menu_tab li.nomn_high span { #menu_tab li.nomn_high span {
color: #fff; color: #fff;
box-shadow: inset 0px 4px var(--primary-color); }
background-color: #fff;
#menu_tab li.nomn_high::before,
#menu_tab li:hover:not(.menu-dots-li)::before {
content: "";
display: block;
position: absolute;
bottom: 0px;
width: 40px;
height: 5px;
margin-left: -5px;
background-color: var(--primary-color-hover);
border-radius: 5px;
} }
#menu_tab li.nomn img, #menu_tab li.nomn img,
@ -10509,6 +10584,11 @@ select:focus {
border: 2px solid #8a96a6; border: 2px solid #8a96a6;
} }
#keywords.results-found {
border: 1px solid var(--border-color);
border-bottom: 0px;
}
:focus { :focus {
outline: #8a96a6; outline: #8a96a6;
} }
@ -11602,12 +11682,56 @@ pre.external_tools_output {
z-index: 1; z-index: 1;
width: -webkit-fill-available; width: -webkit-fill-available;
width: -moz-available; width: -moz-available;
margin: -25px -25px 25px -25px; margin-bottom: 25px;
} }
.white_table_graph.fixed_filter_bar { .white_table_graph.fixed_filter_bar {
border-radius: 0px;
background-color: #f6f7fb;
border: 0;
top: 133px;
}
.white_table_graph.fixed_filter_bar::before {
content: "";
width: calc(100% + 2px);
height: 25px;
background-color: #f6f7fb;
position: absolute;
top: -25px;
margin: 0 -1px;
}
.white_table_graph.fixed_filter_bar > div:nth-child(1) {
background-color: var(--secondary-color);
border: 1px solid #e5e9ed;
border-bottom: 0px;
border-radius: 0; border-radius: 0;
top: 110px; border-top-left-radius: 8px;
border-top-right-radius: 8px;
}
.white_table_graph.fixed_filter_bar > div:nth-child(1)[data-close="true"] {
border-radius: 8px;
border: 1px solid #e5e9ed;
}
.white_table_graph.fixed_filter_bar > div:nth-child(2) {
background-color: var(--secondary-color);
/* border: 1px solid #e5e9ed; */
border-top: 0px;
border-radius: 0;
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
}
.white_table_graph.fixed_filter_bar > div:nth-child(2) > div {
background-color: unset;
border: 1px solid #e5e9ed;
border-top: 0px;
border-radius: 0;
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
} }
/* /*
@ -14017,3 +14141,57 @@ form#aws-view > span.select2 {
vertical-align: bottom; vertical-align: bottom;
margin-right: 15px; margin-right: 15px;
} }
table#snmp_console tbody td:not(.table_action_buttons) * {
height: 100%;
display: flex;
align-items: center;
}
table#snmp_console tbody .datos_green,
table#snmp_console tbody .datos_green * {
background-color: var(--events-priority-bg-green);
color: var(--events-priority-text-green) !important;
}
table#snmp_console tbody .datos_red,
table#snmp_console tbody .datos_red * {
background-color: var(--events-priority-bg-red);
color: var(--events-priority-text-red) !important;
}
table#snmp_console tbody .datos_yellow,
table#snmp_console tbody .datos_yellow * {
background-color: var(--events-priority-bg-yellow);
color: var(--events-priority-text-yellow) !important;
}
table#snmp_console tbody .datos_blue,
table#snmp_console tbody .datos_blue * {
background-color: var(--events-priority-bg-blue);
color: var(--events-priority-text-blue) !important;
}
table#snmp_console tbody .datos_grey,
table#snmp_console tbody .datos_grey * {
background-color: var(--events-priority-bg-grey);
color: var(--events-priority-text-grey) !important;
}
table#snmp_console tbody .datos_pink,
table#snmp_console tbody .datos_pink * {
background-color: var(--events-priority-bg-pink);
color: var(--events-priority-text-pink) !important;
}
table#snmp_console tbody .datos_brown,
table#snmp_console tbody .datos_brown * {
background-color: var(--events-priority-bg-brown);
color: var(--events-priority-text-brown) !important;
}
table#snmp_console tbody .datos_orange,
table#snmp_console tbody .datos_orange * {
background-color: var(--events-priority-bg-orange);
color: var(--events-priority-text-orange) !important;
}

File diff suppressed because it is too large Load Diff

View File

@ -1565,6 +1565,9 @@ while (ob_get_length() > 0) {
ob_end_flush(); ob_end_flush();
} }
// Results search header.
echo '<div id="result_order" class="result_order"></div>';
db_print_database_debug(); db_print_database_debug();
echo '</html>'; echo '</html>';

View File

@ -131,7 +131,7 @@
<div style='padding-bottom: 50px'> <div style='padding-bottom: 50px'>
<?php <?php
$version = '7.0NG.776'; $version = '7.0NG.776';
$build = '240410'; $build = '240411';
$banner = "v$version Build $build"; $banner = "v$version Build $build";
error_reporting(0); error_reporting(0);

View File

@ -6,7 +6,7 @@
%define debug_package %{nil} %define debug_package %{nil}
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240410 %define release 240411
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd

View File

@ -6,7 +6,7 @@
%define debug_package %{nil} %define debug_package %{nil}
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240410 %define release 240411
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd

View File

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

View File

@ -1,5 +1,5 @@
package: pandorafms-server package: pandorafms-server
Version: 7.0NG.776-240410 Version: 7.0NG.776-240411
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

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

View File

@ -46,7 +46,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only # version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.776"; my $pandora_version = "7.0NG.776";
my $pandora_build = "240410"; my $pandora_build = "240411";
our $VERSION = $pandora_version." ".$pandora_build; our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash # Setup hash

View File

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

View File

@ -7,7 +7,7 @@
%define debug_package %{nil} %define debug_package %{nil}
%define name pandorafms_server %define name pandorafms_server
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240410 %define release 240411
Summary: Pandora FMS Server Summary: Pandora FMS Server
Name: %{name} Name: %{name}

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil} %global __os_install_post %{nil}
%define name pandorafms_server %define name pandorafms_server
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240410 %define release 240411
Summary: Pandora FMS Server Summary: Pandora FMS Server
Name: %{name} Name: %{name}

View File

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

View File

@ -38,7 +38,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB; use PandoraFMS::DB;
# version: define current version # version: define current version
my $version = "7.0NG.776 Build 240410"; my $version = "7.0NG.776 Build 240411";
# Pandora server configuration # Pandora server configuration
my %conf; my %conf;

View File

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