Merge remote-tracking branch 'origin/develop' into ent-9640-agrupacion-de-graficas-en-periodos-de-tiempo
Conflicts: pandora_console/include/styles/pandora.css
This commit is contained in:
commit
cc12c77008
|
@ -1,6 +1,6 @@
|
|||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2023 Pandora FMS
|
||||
# Version 7.0NG.774
|
||||
# Version 7.0NG.774
|
||||
# This program is Free Software, you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public Licence as published by the Free Software
|
||||
# Foundation; either version 2 of the Licence or any later version
|
||||
|
|
|
@ -2179,16 +2179,7 @@ sub configure ($) {
|
|||
|
||||
#Launch tentacle server in proxy mode if configured
|
||||
if ($Conf{'proxy_mode'}) {
|
||||
|
||||
#Check if user is root
|
||||
if ($> != 0) {
|
||||
if (launch_tentacle_proxy() != 0) {
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
error ('Proxy mode can not be launched as root');
|
||||
return 1;
|
||||
}
|
||||
return 1 if (launch_tentacle_proxy() != 0);
|
||||
}
|
||||
|
||||
# Add the plugins directory to the PATH
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.774-231211
|
||||
Version: 7.0NG.774-231213
|
||||
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.774-231211"
|
||||
pandora_version="7.0NG.774-231213"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -1039,7 +1039,7 @@ my $Sem = undef;
|
|||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.774';
|
||||
use constant AGENT_BUILD => '231211';
|
||||
use constant AGENT_BUILD => '231213';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
@ -4436,14 +4436,7 @@ my $PID = $$;
|
|||
|
||||
#Launch tentacle server in proxy mode if configured
|
||||
if ($Conf{'proxy_mode'}) {
|
||||
|
||||
#Check if user is root
|
||||
if ($> != 0) {
|
||||
launch_tentacle_proxy();
|
||||
} else {
|
||||
log_message ('error', 'Proxy mode can not be launched as root');
|
||||
exit 1;
|
||||
}
|
||||
launch_tentacle_proxy();
|
||||
}
|
||||
|
||||
# Advice if YAML::Tiny is allowed in this system
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_agent_linux
|
||||
%define version 7.0NG.774
|
||||
%define release 231211
|
||||
%define release 231213
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
%define name pandorafms_agent_linux_bin
|
||||
%define source_name pandorafms_agent_linux
|
||||
%define version 7.0NG.774
|
||||
%define release 231211
|
||||
%define release 231213
|
||||
%define debug_package %{nil}
|
||||
|
||||
Summary: Pandora FMS Linux agent, binary version
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
%define name pandorafms_agent_linux_bin
|
||||
%define source_name pandorafms_agent_linux
|
||||
%define version 7.0NG.774
|
||||
%define release 231211
|
||||
%define release 231213
|
||||
%define debug_package %{nil}
|
||||
|
||||
Summary: Pandora FMS Linux agent, binary version
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
%define name pandorafms_agent_linux_bin
|
||||
%define source_name pandorafms_agent_linux
|
||||
%define version 7.0NG.774
|
||||
%define release 231211
|
||||
%define release 231213
|
||||
|
||||
Summary: Pandora FMS Linux agent, binary version
|
||||
Name: %{name}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_agent_linux
|
||||
%define version 7.0NG.774
|
||||
%define release 231211
|
||||
%define release 231213
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.774"
|
||||
PI_BUILD="231211"
|
||||
PI_BUILD="231213"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{231211}
|
||||
{231213}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.774 Build 231211")
|
||||
#define PANDORA_VERSION ("7.0NG.774 Build 231213")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
|||
VALUE "LegalCopyright", "Pandora FMS"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.774(Build 231211))"
|
||||
VALUE "ProductVersion", "(7.0NG.774(Build 231213))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.774-231211
|
||||
Version: 7.0NG.774-231213
|
||||
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.774-231211"
|
||||
pandora_version="7.0NG.774-231213"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -34,11 +34,11 @@ if ((bool) $config['metaconsole']) {
|
|||
include_once $config['homedir'].'/include/functions_modules.php';
|
||||
include_once $config['homedir'].'/include/functions_users.php';
|
||||
} else {
|
||||
include_once '../include/config.php';
|
||||
include_once '../include/functions_agents.php';
|
||||
include_once '../include/functions_reporting.php';
|
||||
include_once '../include/functions_modules.php';
|
||||
include_once '../include/functions_users.php';
|
||||
include_once __DIR__.'/../include/config.php';
|
||||
include_once __DIR__.'/../include/functions_agents.php';
|
||||
include_once __DIR__.'/../include/functions_reporting.php';
|
||||
include_once __DIR__.'/../include/functions_modules.php';
|
||||
include_once __DIR__.'/../include/functions_users.php';
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ function view_logfile($file_name, $toggle=false)
|
|||
} else {
|
||||
$file_size = filesize($file_name);
|
||||
|
||||
if ($memory_limit < $file_size) {
|
||||
if ($memory_limit < $file_size && $memory_limit !== '-1') {
|
||||
$code .= '<pre><h2>'.$file_name.' ('.__('File is too large than PHP memory allocated in the system.').')</h2>';
|
||||
$code .= '<h2>'.__('The preview file is imposible.').'</h2>';
|
||||
} else if ($file_size > ($config['max_log_size'] * 1000)) {
|
||||
|
@ -117,6 +117,7 @@ function pandoralogs_extension_main()
|
|||
view_logfile($config['homedir'].'/log/console.log', true);
|
||||
}
|
||||
|
||||
view_logfile('/var/log/php-fpm/www-error.log', true);
|
||||
view_logfile($logs_directory.'/pandora_server.log', true);
|
||||
view_logfile($logs_directory.'/pandora_server.error', true);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
pandorafms.vmware=9959cc3e5cc6bfcfadd6d05b56d4a11b
|
||||
pandorafms.vmware=248788e0fb2cd4e11623e4a52ee7d05b
|
||||
pandorafms.mysql=fadb4750d18285c0eca34f47c6aa3cfe
|
||||
pandorafms.mssql=1cc215409741d19080269ffba112810e
|
||||
pandorafms.oracle=2d9320a514d1e48a0b2804e1653c31c6
|
||||
|
|
|
@ -52,4 +52,6 @@ UPDATE `tagente_modulo` INNER JOIN `tservice` ON `tagente_modulo`.`custom_intege
|
|||
UPDATE talert_actions SET field2='[PANDORA] Alert FIRED on _agent_ / _module_ / _timestamp_ / _data_' WHERE id=9;
|
||||
UPDATE talert_actions SET field2='[PANDORA] Alert FIRED on _agent_ / _module_ / _timestamp_ / _data_' WHERE id=11;
|
||||
|
||||
UPDATE `tdiscovery_apps` SET `version` = '1.2' WHERE `short_name` = 'pandorafms.vmware';
|
||||
|
||||
COMMIT;
|
||||
|
|
|
@ -455,19 +455,28 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||
);
|
||||
$header_logout .= '</a></div>';
|
||||
|
||||
if (enterprise_installed()) {
|
||||
$subtitle_header = $config['custom_subtitle_header'];
|
||||
$class_header = '';
|
||||
} else {
|
||||
$subtitle_header = __('the Flexible Monitoring System (OpenSource version)');
|
||||
echo '<div id="dialog_why_enterprise" class="invisible"></div>';
|
||||
$class_header = 'underline-hover modal_module_list';
|
||||
}
|
||||
|
||||
if (is_reporting_console_node() === true) {
|
||||
echo '<div class="header_left">';
|
||||
echo '<div class="header_left '.$class_header.'">';
|
||||
echo '<span class="header_title">';
|
||||
echo $config['custom_title_header'];
|
||||
echo '</span>';
|
||||
echo '<span class="header_subtitle">';
|
||||
echo $config['custom_subtitle_header'];
|
||||
echo $subtitle_header;
|
||||
echo '</span>';
|
||||
echo '</div>';
|
||||
echo '<div class="header_center"></div>';
|
||||
echo '<div class="header_right">'.$modal_help, $header_user, $header_logout.'</div>';
|
||||
} else {
|
||||
echo '<div class="header_left"><span class="header_title">'.$config['custom_title_header'].'</span><span class="header_subtitle">'.$config['custom_subtitle_header'].'</span></div>
|
||||
echo '<div class="header_left '.$class_header.'"><span class="header_title">'.$config['custom_title_header'].'</span><span class="header_subtitle">'.$subtitle_header.'</span></div>
|
||||
<div class="header_center">'.$header_searchbar.'</div>
|
||||
<div class="header_right">'.$header_autorefresh, $header_autorefresh_counter, $header_discovery, $header_welcome, $servers_list, $modal_help, $header_setup, $header_user, $header_logout.'</div>';
|
||||
}
|
||||
|
@ -916,6 +925,46 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||
|
||||
$(document).ready (function () {
|
||||
|
||||
<?php if (enterprise_installed() === false) { ?>
|
||||
$('.header_left').on('click', function(){
|
||||
// Hidden tips modal.
|
||||
$(".window").css("display", "none");
|
||||
jQuery.post(
|
||||
"ajax.php",
|
||||
{
|
||||
page: "include/functions_menu",
|
||||
'why_enterprise': "true"
|
||||
},
|
||||
function(data) {
|
||||
if (data) {
|
||||
$("#dialog_why_enterprise").html(data);
|
||||
// Open dialog
|
||||
$("#dialog_why_enterprise").dialog({
|
||||
resizable: false,
|
||||
draggable: false,
|
||||
modal: true,
|
||||
show: {
|
||||
effect: "fade",
|
||||
duration: 200
|
||||
},
|
||||
hide: {
|
||||
effect: "fade",
|
||||
duration: 200
|
||||
},
|
||||
closeOnEscape: true,
|
||||
width: 700,
|
||||
height: 450,
|
||||
close: function(){
|
||||
$('#dialog_why_enterprise').html('');
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
"html"
|
||||
);
|
||||
});
|
||||
<?php } ?>
|
||||
|
||||
// Check new notifications on a periodic way
|
||||
setInterval(check_new_notifications, 60000);
|
||||
|
||||
|
|
|
@ -566,10 +566,10 @@ if ($search != '') {
|
|||
if ($id != '') {
|
||||
$aux = $id[0]['id_agent'];
|
||||
$search_sql = sprintf(
|
||||
' AND ( nombre LIKE "%%%s%%"
|
||||
OR alias LIKE "%%%s%%"
|
||||
OR comentarios LIKE "%%%s%%"
|
||||
OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND description LIKE "%%%s%%")
|
||||
' AND ( REPLACE(nombre, " ", " ") LIKE "%%%s%%"
|
||||
OR REPLACE(alias, " ", " ") LIKE "%%%s%%"
|
||||
OR REPLACE(comentarios, " ", " ") LIKE "%%%s%%"
|
||||
OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND REPLACE(description, " ", " ") LIKE "%%%s%%")
|
||||
OR tagente.id_agente = %d',
|
||||
$search,
|
||||
$search,
|
||||
|
@ -591,10 +591,10 @@ if ($search != '') {
|
|||
$search_sql .= ')';
|
||||
} else {
|
||||
$search_sql = sprintf(
|
||||
' AND ( nombre
|
||||
LIKE "%%%s%%" OR alias
|
||||
LIKE "%%%s%%" OR comentarios LIKE "%%%s%%"
|
||||
OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND description LIKE "%%%s%%"))',
|
||||
' AND ( REPLACE(nombre, " ", " ")
|
||||
LIKE "%%%s%%" OR REPLACE(alias, " ", " ")
|
||||
LIKE "%%%s%%" OR REPLACE(comentarios, " ", " ") LIKE "%%%s%%"
|
||||
OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND REPLACE(description, " ", " ") LIKE "%%%s%%"))',
|
||||
$search,
|
||||
$search,
|
||||
$search,
|
||||
|
|
|
@ -575,7 +575,7 @@ $where = sprintf('delete_pending = 0 AND id_agente = %s', $id_agente);
|
|||
$search_string_entities = io_safe_input($search_string);
|
||||
|
||||
$basic_where = sprintf(
|
||||
"(nombre LIKE '%%%s%%' OR nombre LIKE '%%%s%%' OR descripcion LIKE '%%%s%%' OR descripcion LIKE '%%%s%%') AND",
|
||||
"(REPLACE(nombre, ' ', ' ') LIKE '%%%s%%' OR REPLACE(nombre, ' ', ' ') LIKE '%%%s%%' OR REPLACE(descripcion, ' ', ' ') LIKE '%%%s%%' OR REPLACE(descripcion, ' ', ' ') LIKE '%%%s%%') AND",
|
||||
$search_string,
|
||||
$search_string_entities,
|
||||
$search_string,
|
||||
|
|
|
@ -575,12 +575,13 @@ if ($access_console_node === true) {
|
|||
continue;
|
||||
}
|
||||
|
||||
$extmenu = [];
|
||||
if ($extension['godmode_menu']['name'] !== __('DB Schema check') && $extension['godmode_menu']['name'] !== __('DB interface')) {
|
||||
$extmenu = $extension['godmode_menu'];
|
||||
}
|
||||
|
||||
// Check the ACL for this user.
|
||||
if ((bool) check_acl($config['id_user'], 0, $extmenu['acl']) === false) {
|
||||
if ((bool) check_acl($config['id_user'], 0, ($extmenu['acl'] ?? '')) === false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -729,7 +729,7 @@ if ($search_id_group) {
|
|||
}
|
||||
|
||||
if ($search_string != '') {
|
||||
$filter[] = '(name LIKE '."'%".$search_string."%'".'OR description LIKE '."'%".$search_string."%'".'OR tcp_send LIKE '."'%".$search_string."%'".'OR tcp_rcv LIKE '."'%".$search_string."%'".')';
|
||||
$filter[] = '(REPLACE(name, " ", " ") LIKE '."'%".$search_string."%'".' OR REPLACE(REPLACE(description, " ", " "), " ", " ")LIKE '."'%".$search_string."%'".' OR REPLACE(tcp_send, " ", " ") LIKE '."'%".$search_string."%'".'OR REPLACE(tcp_rcv, " ", " ") LIKE '."'%".$search_string."%'".')';
|
||||
}
|
||||
|
||||
$total_components = network_components_get_network_components(
|
||||
|
|
|
@ -1658,7 +1658,7 @@ if (is_metaconsole() === true) {
|
|||
10,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
|
@ -1692,7 +1692,7 @@ if (is_metaconsole() === true) {
|
|||
10,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
|
@ -1746,7 +1746,7 @@ if (is_metaconsole() === true) {
|
|||
10,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
|
@ -1771,7 +1771,7 @@ if (is_metaconsole() === true) {
|
|||
<td >
|
||||
<?php
|
||||
html_print_extended_select_for_time(
|
||||
'period',
|
||||
'period3',
|
||||
(string) $period,
|
||||
'onselect=loadLogAgents();',
|
||||
'',
|
||||
|
@ -1809,7 +1809,7 @@ if (is_metaconsole() === true) {
|
|||
10,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
|
@ -7167,7 +7167,7 @@ function loadLogAgents() {
|
|||
params["get_agent_source"] = 1;
|
||||
params["log_alert"] = 1;
|
||||
params["page"] = "enterprise/include/ajax/log_viewer.ajax";
|
||||
params["date"] = $('#period_select').val();
|
||||
params["date"] = $('#period3_select').val();
|
||||
jQuery.ajax({
|
||||
data: params,
|
||||
dataType: "json",
|
||||
|
|
|
@ -1643,7 +1643,7 @@ switch ($action) {
|
|||
$es['log_number'] = $log_number;
|
||||
|
||||
$values['external_source'] = json_encode($es);
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['period'] = get_parameter('period3');
|
||||
$good_format = true;
|
||||
break;
|
||||
|
||||
|
@ -1661,7 +1661,7 @@ switch ($action) {
|
|||
$es['log_number'] = $log_number;
|
||||
|
||||
$values['external_source'] = json_encode($es);
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['period'] = get_parameter('period3');
|
||||
$values['period_range'] = get_parameter('period_range');
|
||||
$values['show_graph'] = get_parameter('combo_graph_options');
|
||||
$values['group_by_agent'] = get_parameter('checkbox_row_group_by_agent');
|
||||
|
@ -2764,7 +2764,7 @@ switch ($action) {
|
|||
$es['log_number'] = $log_number;
|
||||
|
||||
$values['external_source'] = json_encode($es);
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['period'] = get_parameter('period3');
|
||||
$good_format = true;
|
||||
break;
|
||||
|
||||
|
@ -2782,7 +2782,7 @@ switch ($action) {
|
|||
$es['log_number'] = $log_number;
|
||||
|
||||
$values['external_source'] = json_encode($es);
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['period'] = get_parameter('period3');
|
||||
$values['period_range'] = get_parameter('period_range');
|
||||
$values['show_graph'] = get_parameter('combo_graph_options');
|
||||
$values['group_by_agent'] = get_parameter('checkbox_row_group_by_agent');
|
||||
|
|
|
@ -539,6 +539,7 @@ foreach ($layoutDatas as $layoutData) {
|
|||
$table->data[($i + 1)][5] .= html_print_checkbox('multiple_delete_items', $idLayoutData, false, true);
|
||||
$table->data[($i + 1)][5] .= '<a href="'.$url_delete.'"onclick="javascript: if (!confirm(\''.__('Are you sure?').'\')) return false;">'.html_print_image('images/delete.svg', true, ['class' => 'main_menu_icon invert_filter']).'</a>';
|
||||
$table->data[($i + 1)][5] .= html_print_input_hidden('updated_'.$idLayoutData, '0', true);
|
||||
$table->data[($i + 1)][5] .= html_print_input_hidden('rowtype_'.$idLayoutData, $layoutData['type'], true);
|
||||
|
||||
// Second row
|
||||
$table->data[($i + 2)]['icon'] = '';
|
||||
|
@ -789,14 +790,6 @@ if ($x > ini_get('max_input_vars')) {
|
|||
|
||||
$pure = get_parameter('pure', 0);
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
echo '<form id="vc_elem_form" method="post" action="index.php?sec=network&sec2=godmode/reporting/visual_console_builder&tab='.$activeTab.'&id_visual_console='.$visualConsole['id'].'">';
|
||||
html_print_input_hidden('action', 'update');
|
||||
} else {
|
||||
echo "<form id='vc_elem_form' method='post' action='index.php?operation=edit_visualmap&sec=screen&sec2=screens/screens&action=visualmap&pure=0&tab=list_elements&id_visual_console=".$idVisualConsole."'>";
|
||||
html_print_input_hidden('action2', 'update');
|
||||
}
|
||||
|
||||
html_print_table($table);
|
||||
|
||||
// Form for multiple delete.
|
||||
|
@ -806,15 +799,14 @@ if (is_metaconsole() === false) {
|
|||
$url_multiple_delete = 'index.php?sec=screen&sec2=screens/screens&action=visualmap&tab='.$activeTab.'&id_visual_console='.$visualConsole['id'];
|
||||
}
|
||||
|
||||
echo '</form>';
|
||||
|
||||
$buttons = html_print_submit_button(
|
||||
__('Update'),
|
||||
'go',
|
||||
false,
|
||||
[
|
||||
'icon' => 'next',
|
||||
'form' => 'vc_elem_form',
|
||||
'icon' => 'next',
|
||||
'form' => 'vc_elem_form',
|
||||
'onclick' => 'submit_update_json()',
|
||||
],
|
||||
true
|
||||
);
|
||||
|
@ -976,4 +968,76 @@ ui_require_javascript_file('tinymce', 'vendor/tinymce/tinymce/');
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
function submit_update_json() {
|
||||
var array_update = [];
|
||||
$('input[id^=hidden-updated_]').each(function(){
|
||||
var id = $(this).attr('id').split('_')[1];
|
||||
|
||||
var label = $('#hidden-label_'+id).val();
|
||||
var image = $('#image_'+id).val();
|
||||
var width = $('#text-width_'+id).val();
|
||||
var height = $('#text-height_'+id).val();
|
||||
var pos_x = $('#text-left_'+id).val();
|
||||
var pos_y = $('#text-top_'+id).val();
|
||||
var parent = $('#parent_'+id).val();
|
||||
var agent = $('#hidden-agent_'+id).val();
|
||||
var module = $('#module_'+id).val();
|
||||
var period = $('#hidden-period_'+id).val();
|
||||
var map_linked = $('#map_linked_'+id).val();
|
||||
var id_server = $('#id_server_id_'+id).val();
|
||||
var rowtype = $('rowtype_'+id).val();
|
||||
var custom_graph = $('#custom_graph_'+id).val();
|
||||
|
||||
array_update.push({
|
||||
'id': id,
|
||||
'label': label,
|
||||
'image': image,
|
||||
'width': width,
|
||||
'height': height,
|
||||
'pos_x': pos_x,
|
||||
'pos_y': pos_y,
|
||||
'parent': parent,
|
||||
'agent': agent,
|
||||
'module': module,
|
||||
'period': period,
|
||||
'map_linked': map_linked,
|
||||
'rowtype': rowtype,
|
||||
'custom_graph': custom_graph,
|
||||
'id_server': id_server,
|
||||
});
|
||||
});
|
||||
|
||||
var background_width = $('#text-width').val();
|
||||
var background_height = $('#text-height').val();
|
||||
|
||||
if (background_height > 0 && background_width > 0){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "ajax.php",
|
||||
data: {
|
||||
page: "godmode/reporting/visual_console_builder",
|
||||
action: "update_json",
|
||||
tab: "list_elements",
|
||||
array_update: JSON.stringify(array_update),
|
||||
id_visual_console: "<?php echo (is_metaconsole() === true) ? $idVisualConsole : $visualConsole['id']; ?>",
|
||||
background: $('#background').val(),
|
||||
background_width: $('#text-width').val(),
|
||||
background_height: $('#text-height').val(),
|
||||
},
|
||||
dataType: "json",
|
||||
complete: function (data) {
|
||||
location.reload();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
confirmDialog({
|
||||
title: "<?php echo __('Error.'); ?>",
|
||||
message: "<?php echo __('The width and height property is required and should greater than 0'); ?>",
|
||||
strOKButton: "<?php echo __('Close'); ?>",
|
||||
hideCancelButton: true,
|
||||
size: 300,
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -78,6 +78,7 @@ $action = get_parameterBetweenListValues(
|
|||
'update',
|
||||
'delete',
|
||||
'multiple_delete',
|
||||
'update_json',
|
||||
],
|
||||
'new'
|
||||
);
|
||||
|
@ -526,6 +527,110 @@ switch ($activeTab) {
|
|||
}
|
||||
break;
|
||||
|
||||
case 'update_json':
|
||||
// Update background.
|
||||
$background = get_parameter('background');
|
||||
$width = get_parameter('background_width');
|
||||
$height = get_parameter('background_height');
|
||||
|
||||
if ($width == 0 && $height == 0) {
|
||||
$sizeBackground = getimagesize(
|
||||
$config['homedir'].'/images/console/background/'.$background
|
||||
);
|
||||
$width = $sizeBackground[0];
|
||||
$height = $sizeBackground[1];
|
||||
}
|
||||
|
||||
db_process_sql_update(
|
||||
'tlayout',
|
||||
[
|
||||
'background' => $background,
|
||||
'width' => $width,
|
||||
'height' => $height,
|
||||
],
|
||||
['id' => $idVisualConsole]
|
||||
);
|
||||
|
||||
// Return the updated visual console.
|
||||
$visualConsole = db_get_row_filter(
|
||||
'tlayout',
|
||||
['id' => $idVisualConsole]
|
||||
);
|
||||
|
||||
// Update elements in visual map.
|
||||
$idsElements = db_get_all_rows_filter(
|
||||
'tlayout_data',
|
||||
['id_layout' => $idVisualConsole],
|
||||
[
|
||||
'id',
|
||||
'type',
|
||||
]
|
||||
);
|
||||
|
||||
$array_update = json_decode(io_safe_output(get_parameter('array_update')), true);
|
||||
|
||||
if (count($array_update)) {
|
||||
foreach ($array_update as $row) {
|
||||
$id = $row['id'];
|
||||
$values = [];
|
||||
$values['label'] = $row['label'];
|
||||
$values['image'] = $row['image'];
|
||||
$values['width'] = $row['width'];
|
||||
$values['height'] = $row['height'];
|
||||
$values['pos_x'] = $row['pos_x'];
|
||||
$values['pos_y'] = $row['pos_y'];
|
||||
|
||||
switch ($row['rowtype']) {
|
||||
case NETWORK_LINK:
|
||||
case LINE_ITEM:
|
||||
continue 2;
|
||||
|
||||
break;
|
||||
|
||||
case SIMPLE_VALUE_MAX:
|
||||
case SIMPLE_VALUE_MIN:
|
||||
case SIMPLE_VALUE_AVG:
|
||||
$values['period'] = $row['period'];
|
||||
break;
|
||||
|
||||
case MODULE_GRAPH:
|
||||
$values['period'] = $row['period'];
|
||||
unset($values['image']);
|
||||
break;
|
||||
|
||||
case GROUP_ITEM:
|
||||
$values['id_group'] = $row['group'];
|
||||
break;
|
||||
|
||||
case CIRCULAR_PROGRESS_BAR:
|
||||
case CIRCULAR_INTERIOR_PROGRESS_BAR:
|
||||
case PERCENTILE_BUBBLE:
|
||||
case PERCENTILE_BAR:
|
||||
unset($values['height']);
|
||||
break;
|
||||
}
|
||||
|
||||
if (defined('METACONSOLE')) {
|
||||
$values['id_metaconsole'] = $row['id_server'];
|
||||
}
|
||||
|
||||
$values['id_agent'] = $row['agent'];
|
||||
$values['id_agente_modulo'] = $row['module'];
|
||||
$values['id_custom_graph'] = $row['custom_graph'];
|
||||
$values['parent_item'] = $row['parent'];
|
||||
$values['id_layout_linked'] = $row['map_linked'];
|
||||
|
||||
if (enterprise_installed()) {
|
||||
enterprise_visual_map_update_action_from_list_elements($row['rowtype'], $values, $id);
|
||||
}
|
||||
|
||||
db_process_sql_update('tlayout_data', $values, ['id' => $id]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
$id_element = get_parameter('id_element');
|
||||
$result = db_process_sql_delete('tlayout_data', ['id' => $id_element]);
|
||||
|
|
|
@ -1113,9 +1113,9 @@ $(document).ready (function () {
|
|||
id_imodule = $(value).attr('value');
|
||||
$("select[name='inventory_changes_blacklist[]']")
|
||||
.append(
|
||||
$("<option></option>")
|
||||
$("<option selected='selected'></option>")
|
||||
.val(id_imodule)
|
||||
.html('<i>' + imodule_name + '</i>')
|
||||
.text(imodule_name)
|
||||
);
|
||||
$("#inventory_changes_blacklist_out")
|
||||
.find("option[value='" + id_imodule + "']").remove();
|
||||
|
@ -1141,7 +1141,7 @@ $(document).ready (function () {
|
|||
.append(
|
||||
$("<option></option>")
|
||||
.val(id_imodule)
|
||||
.html('<i>' + imodule_name + '</i>')
|
||||
.text(imodule_name)
|
||||
);
|
||||
$("#inventory_changes_blacklist")
|
||||
.find("option[value='" + id_imodule + "']").remove();
|
||||
|
@ -1157,12 +1157,15 @@ $(document).ready (function () {
|
|||
}
|
||||
}
|
||||
});
|
||||
|
||||
$("#inventory_changes_blacklist > option").each(function(key, value) {
|
||||
$(value).prop('selected',true).trigger('change');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$("#submit-update_button").click(function () {
|
||||
$('#inventory_changes_blacklist option').map(function(){
|
||||
$(this).prop('selected', true);
|
||||
});
|
||||
$("#inventory_changes_blacklist > option").each(function(key, value) {
|
||||
$(value).prop('selected',true).trigger('change');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -652,30 +652,30 @@ if ($get_agent_alerts_datatable === true) {
|
|||
if (is_metaconsole() === true) {
|
||||
include_once $config['homedir'].'/enterprise/meta/include/functions_alerts_meta.php';
|
||||
if ($idAgent !== 0) {
|
||||
$alerts['alerts_simple'] = alerts_meta_get_alerts($agents, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, false, $strict_user, $tag_filter, $action_filter);
|
||||
$alerts['alerts_simple'] = alerts_meta_get_alerts($agents, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, false, false, $tag_filter, $action_filter);
|
||||
|
||||
$countAlertsSimple = alerts_meta_get_alerts($agents, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, $strict_user, $tag_filter, $action_filter);
|
||||
$countAlertsSimple = alerts_meta_get_alerts($agents, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, false, $tag_filter, $action_filter);
|
||||
} else {
|
||||
$id_groups = array_keys(
|
||||
users_get_groups($config['id_user'], 'AR', false)
|
||||
);
|
||||
$alerts['alerts_simple'] = alerts_meta_get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, false, $strict_user, $tag_filter, $action_filter, $search_sg);
|
||||
$alerts['alerts_simple'] = alerts_meta_get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, false, false, $tag_filter, $action_filter, $search_sg);
|
||||
|
||||
$countAlertsSimple = alerts_meta_get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, $strict_user, $tag_filter, $action_filter, $search_sg);
|
||||
$countAlertsSimple = alerts_meta_get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, false, $tag_filter, $action_filter, $search_sg);
|
||||
}
|
||||
} else {
|
||||
if ($idAgent !== 0) {
|
||||
$alerts['alerts_simple'] = agents_get_alerts_simple($idAgent, $filter_alert, $options_simple, $whereAlertSimple, false, false, $idGroup, false, $strict_user, $tag_filter);
|
||||
$alerts['alerts_simple'] = agents_get_alerts_simple($idAgent, $filter_alert, $options_simple, $whereAlertSimple, false, false, $idGroup, false, false, $tag_filter);
|
||||
|
||||
$countAlertsSimple = agents_get_alerts_simple($idAgent, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, $strict_user, $tag_filter);
|
||||
$countAlertsSimple = agents_get_alerts_simple($idAgent, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, false, $tag_filter);
|
||||
} else {
|
||||
$id_groups = array_keys(
|
||||
users_get_groups($config['id_user'], $access, false)
|
||||
);
|
||||
|
||||
$alerts['alerts_simple'] = get_group_alerts($id_groups, $filter_alert, $options_simple, $whereAlertSimple, false, false, $idGroup, false, $strict_user, $tag_filter, $action_filter, false, $search_sg);
|
||||
$alerts['alerts_simple'] = get_group_alerts($id_groups, $filter_alert, $options_simple, $whereAlertSimple, false, false, $idGroup, false, false, $tag_filter, $action_filter, false, $search_sg);
|
||||
|
||||
$countAlertsSimple = get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, $strict_user, $tag_filter, $action_filter, false, $search_sg);
|
||||
$countAlertsSimple = get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, false, $tag_filter, $action_filter, false, $search_sg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -756,6 +756,7 @@ if (check_login()) {
|
|||
$access = ($agent_a === true) ? 'AR' : (($agent_w === true) ? 'AW' : 'AR');
|
||||
$id_agent = (int) get_parameter('id_agente');
|
||||
$id_agente = $id_agent;
|
||||
$id_grupo = agents_get_agent_group($id_agent);
|
||||
$show_notinit = (bool) get_parameter('show_notinit');
|
||||
$cluster_list = (int) get_parameter('cluster_list');
|
||||
$sortField = (string) get_parameter('sort_field');
|
||||
|
|
|
@ -118,7 +118,7 @@ class ConfigPEN extends HTML
|
|||
if (is_array($filter)) {
|
||||
if (!empty($filter['free_search'])) {
|
||||
$sql_filters[] = vsprintf(
|
||||
' AND (lower(`manufacturer`) like lower("%%%s%%")
|
||||
' AND (lower(REPLACE(manufacturer, " ", " ")) like lower("%%%s%%")
|
||||
OR pen = "%s") ',
|
||||
array_fill(0, 2, $filter['free_search'])
|
||||
);
|
||||
|
|
|
@ -701,6 +701,10 @@ class Diagnostics extends Wizard
|
|||
{
|
||||
global $config;
|
||||
|
||||
// Get version comment DB.
|
||||
$sql_version_comment = 'select @@version_comment as version_comment';
|
||||
$version_comment = db_get_sql($sql_version_comment);
|
||||
|
||||
$result = [
|
||||
'error' => false,
|
||||
'data' => [
|
||||
|
@ -716,6 +720,14 @@ class Diagnostics extends Wizard
|
|||
'name' => __('DB Schema Build'),
|
||||
'value' => $config['db_scheme_build'],
|
||||
],
|
||||
'dbVersion' => [
|
||||
'name' => __('Engine version'),
|
||||
'value' => $config['dbconnection']->server_info,
|
||||
],
|
||||
'dbVersionComment' => [
|
||||
'name' => __('Version comment'),
|
||||
'value' => $version_comment,
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
|
|
|
@ -333,6 +333,7 @@ class TreeService extends Tree
|
|||
$services[$service['id']]['id'] = $service['id'];
|
||||
$services[$service['id']]['description'] = $service['description'];
|
||||
$services[$service['id']]['serviceDetail'] = 'index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.(int) $service['id'];
|
||||
$services[$service['id']]['title'] = services_get_parents_title((int) $service['id']);
|
||||
}
|
||||
|
||||
return $services;
|
||||
|
@ -627,6 +628,7 @@ class TreeService extends Tree
|
|||
$tmp['type'] = 'services';
|
||||
$tmp['rootType'] = 'services';
|
||||
$tmp['children'] = [];
|
||||
$tmp['servicesChildren'] = services_get_services_children($item->service()->id());
|
||||
$tmp['serviceDetail'] = ui_get_full_url(
|
||||
'index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.$item->service()->id()
|
||||
);
|
||||
|
@ -731,7 +733,10 @@ class TreeService extends Tree
|
|||
if (isset($this->filter['searchService']) === true
|
||||
&& empty($this->filter['searchService']) === false
|
||||
) {
|
||||
return " AND (ts.name LIKE '%".$this->filter['searchService']."%' OR ts.description LIKE '%".$this->filter['searchService']."%')";
|
||||
$whereAncestors = ' AND ts.name LIKE "%'.$this->filter['searchService'].'%"
|
||||
OR ts.description LIKE "%'.$this->filter['searchService'].'%"';
|
||||
|
||||
return $whereAncestors;
|
||||
}
|
||||
|
||||
return '';
|
||||
|
|
|
@ -606,7 +606,7 @@ class WelcomeWindow extends Wizard
|
|||
],
|
||||
[
|
||||
'arguments' => [
|
||||
'label' => __("Let's do it!"),
|
||||
'label' => __('Let's do it!'),
|
||||
'type' => 'button',
|
||||
'attributes' => [
|
||||
'class' => 'secondary',
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
/**
|
||||
* Pandora build version and version
|
||||
*/
|
||||
$build_version = 'PC231211';
|
||||
$build_version = 'PC231213';
|
||||
$pandora_version = 'v7.0NG.774';
|
||||
|
||||
// Do not overwrite default timezone set if defined.
|
||||
|
|
|
@ -10301,8 +10301,7 @@ function api_set_module_data($id, $thrash2, $other, $trash1)
|
|||
modules_get_type_name($agentModule['id_tipo_modulo']),
|
||||
$data
|
||||
);
|
||||
|
||||
if (false === @file_put_contents($config['remote_config'].'/'.io_safe_output($agent['nombre']).'.'.$time.'.data', $xml)) {
|
||||
if (false === @file_put_contents($config['remote_config'].'/'.io_safe_output($agent['nombre']).'.'.$idAgentModule.'.'.$time.'.data', $xml)) {
|
||||
returnError(sprintf('XML file could not be generated in path: %s', $config['remote_config']));
|
||||
} else {
|
||||
echo __('XML file was generated successfully in path: ').$config['remote_config'];
|
||||
|
|
|
@ -194,11 +194,11 @@ function custom_graphs_get_user($id_user=0, $only_names=false, $returnAllGroup=t
|
|||
function custom_graphs_search($id_group, $search)
|
||||
{
|
||||
if ($id_group != '' && $search != '') {
|
||||
$all_graphs = db_get_all_rows_sql('select * from tgraph where id_group = '.$id_group.' AND (name LIKE "%'.$search.'%" OR description LIKE "'.$search.'")');
|
||||
$all_graphs = db_get_all_rows_sql('select * from tgraph where id_group = '.$id_group.' AND (REPLACE(name, " ", " ") LIKE "%'.$search.'%" OR REPLACE(description, " ", " ") LIKE "'.$search.'")');
|
||||
} else if ($id_group != '') {
|
||||
$all_graphs = db_get_all_rows_sql('select * from tgraph where id_group = '.$id_group.'');
|
||||
} else {
|
||||
$all_graphs = db_get_all_rows_sql('select * from tgraph where name LIKE "%'.$search.'%" OR description LIKE "'.$search.'"');
|
||||
$all_graphs = db_get_all_rows_sql('select * from tgraph where REPLACE(name, " ", " ") LIKE "%'.$search.'%" OR REPLACE(description, " ", " ") LIKE "'.$search.'"');
|
||||
}
|
||||
|
||||
if ($all_graphs === false) {
|
||||
|
|
|
@ -128,19 +128,18 @@ function upload_file($upload_file_or_zip, $default_real_directory, $destination_
|
|||
$extension = pathinfo($filename, PATHINFO_EXTENSION);
|
||||
|
||||
$umask = io_safe_output((string) get_parameter('umask'));
|
||||
$parse_all_queries = explode('&', parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY));
|
||||
$parse_sec2_query = explode('=', $parse_all_queries[1]);
|
||||
$check_extension = true;
|
||||
if ($parse_sec2_query[1] === 'operation/snmpconsole/snmp_mib_uploader') {
|
||||
if ((strtolower($extension) !== 'mib' && strtolower($extension) !== 'zip')) {
|
||||
$check_extension = false;
|
||||
} else {
|
||||
$check_extension = true;
|
||||
}
|
||||
}
|
||||
|
||||
// $parse_all_queries = explode('&', parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY));
|
||||
// $parse_sec2_query = explode('=', $parse_all_queries[1]);
|
||||
// $check_extension = true;
|
||||
// if ($parse_sec2_query[1] === 'operation/snmpconsole/snmp_mib_uploader') {
|
||||
// if ((strtolower($extension) !== 'mib' && strtolower($extension) !== 'zip')) {
|
||||
// $check_extension = false;
|
||||
// } else {
|
||||
// $check_extension = true;
|
||||
// }
|
||||
// }
|
||||
// (strtolower($extension) !== 'mib' && strtolower($extension) !== 'zip')
|
||||
if (strpos($real_directory, $default_real_directory) !== 0 || $check_extension === false) {
|
||||
if (strpos($real_directory, $default_real_directory) !== 0) {
|
||||
// Perform security check to determine whether received upload
|
||||
// directory is part of the default path for caller uploader and
|
||||
// user is not trying to access an external path (avoid
|
||||
|
@ -152,12 +151,12 @@ function upload_file($upload_file_or_zip, $default_real_directory, $destination_
|
|||
// Copy file to directory and change name.
|
||||
$nombre_archivo = sprintf('%s/%s', $real_directory, $filename);
|
||||
try {
|
||||
$mimeContentType = mime_content_type($_FILES['file']['tmp_name']);
|
||||
|
||||
if (empty($filterFilesType) === true || in_array($mimeContentType, $filterFilesType) === true) {
|
||||
$ext = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
|
||||
if (empty($filterFilesType) === true || in_array($ext, $filterFilesType) === true) {
|
||||
$result = copy($_FILES['file']['tmp_name'], $nombre_archivo);
|
||||
} else {
|
||||
$error_message = 'The uploaded file is not allowed. Only gif, png or jpg files can be uploaded.';
|
||||
$types_allowed = implode(', ', $filterFilesType);
|
||||
$error_message = 'The uploaded file is not allowed. Only '.$types_allowed.' files can be uploaded.';
|
||||
throw new Exception(__($error_message));
|
||||
}
|
||||
} catch (Exception $ex) {
|
||||
|
@ -199,19 +198,29 @@ function upload_file($upload_file_or_zip, $default_real_directory, $destination_
|
|||
$filepath = $_FILES['file']['tmp_name'];
|
||||
$real_directory = filemanager_safe_directory($destination_directory);
|
||||
$secure = true;
|
||||
if ($parse_sec2_query[1] === 'operation/snmpconsole/snmp_mib_uploader') {
|
||||
// Security control structure.
|
||||
$zip = new \ZipArchive;
|
||||
if ($zip->open($filepath) === true) {
|
||||
for ($i = 0; $i < $zip->numFiles; $i++) {
|
||||
$unzip_filename = $zip->getNameIndex($i);
|
||||
$extension = pathinfo($unzip_filename, PATHINFO_EXTENSION);
|
||||
if (strtolower($extension) !== 'mib') {
|
||||
$secure = false;
|
||||
break;
|
||||
try {
|
||||
$ext = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
|
||||
if (empty($filterFilesType) === true || in_array($ext, $filterFilesType) === true) {
|
||||
// Security control structure.
|
||||
$zip = new \ZipArchive;
|
||||
if ($zip->open($filepath) === true) {
|
||||
for ($i = 0; $i < $zip->numFiles; $i++) {
|
||||
$unzip_filename = $zip->getNameIndex($i);
|
||||
$extension = pathinfo($unzip_filename, PATHINFO_EXTENSION);
|
||||
if (in_array(strtolower($extension), $filterFilesType) === false) {
|
||||
$error_message = 'The uploaded file is not allowed. Only '.$types_allowed.' files can be uploaded.';
|
||||
$secure = false;
|
||||
throw new Exception(__($error_message));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception $ex) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_FILE_MANAGER,
|
||||
'Error Uploading files: '.$ex->getMessage()
|
||||
);
|
||||
$config['filemanager']['message'] = ui_print_error_message(__('Upload error').': '.$ex->getMessage());
|
||||
}
|
||||
|
||||
if (strpos($real_directory, $default_real_directory) !== 0 || $secure === false) {
|
||||
|
|
|
@ -77,7 +77,7 @@ function inventory_get_data(
|
|||
}
|
||||
|
||||
if ($inventory_search_string != '') {
|
||||
array_push($where, "tagent_module_inventory.data LIKE '%".$inventory_search_string."%'");
|
||||
array_push($where, "REPLACE(tagent_module_inventory.data, ' ', ' ') LIKE '%".$inventory_search_string."%'");
|
||||
}
|
||||
|
||||
$offset = (int) get_parameter('offset');
|
||||
|
@ -746,7 +746,7 @@ function inventory_get_datatable(
|
|||
}
|
||||
|
||||
if ($inventory_search_string != '') {
|
||||
array_push($where, "tagent_module_inventory.data LIKE '%".$inventory_search_string."%'");
|
||||
array_push($where, "REPLACE(tagente_datos_inventory.data, ' ', ' ') LIKE '%".$inventory_search_string."%'");
|
||||
}
|
||||
|
||||
if ($utimestamp > 0) {
|
||||
|
@ -786,7 +786,6 @@ function inventory_get_datatable(
|
|||
}
|
||||
|
||||
$rows = db_get_all_rows_sql($sql);
|
||||
|
||||
if ($order_by_agent === false) {
|
||||
$modules = [];
|
||||
foreach ($rows as $row) {
|
||||
|
@ -796,7 +795,13 @@ function inventory_get_datatable(
|
|||
|
||||
$data_rows = explode(PHP_EOL, $row['data_inventory']);
|
||||
foreach ($data_rows as $data_key => $data_value) {
|
||||
if (empty($data_value) === false) {
|
||||
if (empty($inventory_search_string) !== true) {
|
||||
$search_check = strpos(str_replace(' ', ' ', $data_value), $inventory_search_string);
|
||||
} else {
|
||||
$search_check = true;
|
||||
}
|
||||
|
||||
if (empty($data_value) === false && $search_check !== false) {
|
||||
$row['data'] = $data_value;
|
||||
$modules[$row['name']][$row['name_agent'].'-'.$data_key.'-'.$data_value] = $row;
|
||||
}
|
||||
|
@ -889,7 +894,7 @@ function get_data_basic_info_sql($params, $count=false)
|
|||
|
||||
if ($params['search'] > 0) {
|
||||
$where .= sprintf(
|
||||
' AND ( alias LIKE "%%%s%%" )',
|
||||
' AND ( REPLACE(alias, " ", " ") LIKE "%%%s%%" )',
|
||||
$params['search']
|
||||
);
|
||||
}
|
||||
|
|
|
@ -330,7 +330,7 @@ function menu_print_menu(&$menu)
|
|||
|
||||
if (isset($sub['type']) && $sub['type'] == 'direct') {
|
||||
// This is an external link.
|
||||
$submenu_output .= '<li title="'.$sub['id'].'" id="'.str_replace(' ', '_', $sub['id']).'" class="'.$class.'">';
|
||||
$submenu_output .= '<li title="'.$sub['text'].'" id="'.str_replace(' ', '_', $sub['id']).'" class="'.$class.'">';
|
||||
|
||||
if (isset($sub['subtype']) && $sub['subtype'] == 'nolink') {
|
||||
$submenu_output .= '<div class=" SubNoLink '.$sub_tree_class.'"><span class="w70p span_has_menu_text">'.$sub['text'].'</span><div class="w21p arrow_menu_down"></div></div>';
|
||||
|
@ -875,6 +875,7 @@ function menu_pepare_acl_select_data($pages, $sec)
|
|||
if (is_ajax()) {
|
||||
$about = (bool) get_parameter('about');
|
||||
$about_operation = (bool) get_parameter('about_operation');
|
||||
$why_enterprise = (bool) get_parameter('why_enterprise');
|
||||
if ($about) {
|
||||
global $config;
|
||||
global $pandora_version;
|
||||
|
@ -1107,10 +1108,10 @@ if (is_ajax()) {
|
|||
</tr>
|
||||
<tr class="about-last-tr">
|
||||
<th style="width: 50%;">
|
||||
<p class="about-last-p"><span>'.$db_info->data->dbSize->name.'</span></p>
|
||||
<p class="about-last-p"><span>'.$db_info->data->dbVersion->name.'</span></p>
|
||||
</th>
|
||||
<th style="width: 50%;">
|
||||
<p class="about-last-p" style="font-size: 10pt;">'.$db_info->data->dbSize->value.'</p>
|
||||
<p class="about-last-p" style="font-size: 10pt;">'.$db_info->data->dbVersion->value.'</p>
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
|
@ -1370,4 +1371,50 @@ if (is_ajax()) {
|
|||
|
||||
echo $dialog;
|
||||
}
|
||||
|
||||
if ($why_enterprise) {
|
||||
global $config;
|
||||
global $pandora_version;
|
||||
$product_name = io_safe_output(get_product_name());
|
||||
|
||||
$lts_name = '';
|
||||
if (empty($config['lts_name']) === false) {
|
||||
$lts_name = ' <i>'.$config['lts_name'].'</i>';
|
||||
}
|
||||
|
||||
$image_about = ui_get_full_url('/images/custom_logo/logo-default-pandorafms-collapsed.svg', false, false, false);
|
||||
$url_why_enterprise = 'https://pandorafms.com/en/why-enterprise/';
|
||||
$lang = users_get_user_by_id($config['id_user'])['language'];
|
||||
if ($lang === 'es') {
|
||||
$url_why_enterprise = 'https://pandorafms.com/es/por-que-pandora-fms-enterprise/';
|
||||
}
|
||||
|
||||
$dialog = '
|
||||
<div id="about-tabs" class="overflow-hidden">
|
||||
<div id="tab-general-view">
|
||||
<table class="table-about">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th style="width: 40%; border: 0px;">
|
||||
<a href="https://pandorafms.com/" target="_blank">
|
||||
<img src="'.$image_about.'" alt="logo" width="50%">
|
||||
</a>
|
||||
</th>
|
||||
<th style="width: 60%; text-align: left; border: 0px;">
|
||||
<h1>'.$product_name.'</h1>
|
||||
<p><span>'.__('Version').' '.$pandora_version.$lts_name.' - '.(enterprise_installed() ? 'Enterprise' : 'Community').'</span></p>
|
||||
<p>'.__('You are using the free, OpenSource version of Pandora FMS.').'</p>
|
||||
<p>'.__('This version has no official support or warranty, you can purchase the Enterprise version, which offers support, warranty and additional features to the Opensource version.').'</p>
|
||||
<p><span><a href="'.$url_why_enterprise.'">'.__('Click on this link for more information.').'</a></span></p>
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="trademark-copyright">Trademark and copyright 2004 - '.date('Y').' <a href="https://pandorafms.com/" target="_blank">Pandora FMS</a>. All rights reserved</p>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
|
||||
echo $dialog;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2624,12 +2624,26 @@ function modules_get_agentmodule_data_for_humans($module)
|
|||
$salida = human_milliseconds_to_string($module['datos']);
|
||||
}
|
||||
} else {
|
||||
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision'], $config['decimal_separator'], $config['thousand_separator']));
|
||||
$salida = remove_right_zeros(
|
||||
number_format(
|
||||
$module['datos'],
|
||||
$config['graph_precision'],
|
||||
$config['decimal_separator'],
|
||||
($config['thousand_separator'] ?? null)
|
||||
)
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision'], $config['decimal_separator'], $config['thousand_separator']));
|
||||
$salida = remove_right_zeros(
|
||||
number_format(
|
||||
$module['datos'],
|
||||
$config['graph_precision'],
|
||||
$config['decimal_separator'],
|
||||
($config['thousand_separator'] ?? null)
|
||||
)
|
||||
);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -2648,12 +2662,26 @@ function modules_get_agentmodule_data_for_humans($module)
|
|||
$salida = human_milliseconds_to_string($module['datos']);
|
||||
}
|
||||
} else {
|
||||
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision'], $config['decimal_separator'], $config['thousand_separator']));
|
||||
$salida = remove_right_zeros(
|
||||
number_format(
|
||||
$module['datos'],
|
||||
$config['graph_precision'],
|
||||
$config['decimal_separator'],
|
||||
($config['thousand_separator'] ?? null)
|
||||
)
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision'], $config['decimal_separator'], $config['thousand_separator']));
|
||||
$salida = remove_right_zeros(
|
||||
number_format(
|
||||
$module['datos'],
|
||||
$config['graph_precision'],
|
||||
$config['decimal_separator'],
|
||||
($config['thousand_separator'] ?? null)
|
||||
)
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2935,7 +2963,14 @@ function modules_get_status($id_agent_module, $db_status, $data, &$status, &$tit
|
|||
}
|
||||
|
||||
if (is_numeric($data)) {
|
||||
$title .= ': '.remove_right_zeros(number_format($data, $config['graph_precision'], $config['decimal_separator'], $config['thousand_separator']));
|
||||
$title .= ': '.remove_right_zeros(
|
||||
number_format(
|
||||
$data,
|
||||
$config['graph_precision'],
|
||||
$config['decimal_separator'],
|
||||
($config['thousand_separator'] ?? null)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$text = io_safe_output($data);
|
||||
|
||||
|
|
|
@ -1275,7 +1275,7 @@ function reporting_html_SLA($table, $item, $mini, $pdf=0)
|
|||
$table3->headstyle[5] = 'text-align: right';
|
||||
|
||||
foreach ($item['data'] as $sla) {
|
||||
if (isset($sla) === true) {
|
||||
if (isset($sla) === true && empty($sla['agent']) === false) {
|
||||
// First_table.
|
||||
$row = [];
|
||||
$row[] = $sla['agent'];
|
||||
|
|
|
@ -1486,6 +1486,11 @@ var TreeController = {
|
|||
return 0;
|
||||
});
|
||||
|
||||
//Search service criterion
|
||||
const searchFilter = controller.filter.searchService;
|
||||
if (searchFilter && controller.finded !== 1) {
|
||||
rawTree = _filterItems(rawTree, searchFilter);
|
||||
}
|
||||
_.each(rawTree, function(element) {
|
||||
element.jqObject = _processNode($group, element);
|
||||
});
|
||||
|
@ -1551,6 +1556,67 @@ var TreeController = {
|
|||
|
||||
// Add again the hover event to the 'force_callback' elements
|
||||
forced_title_callback();
|
||||
|
||||
/**
|
||||
* Filter the tree based on a search criterion
|
||||
*/
|
||||
function _filterItems(rawTree, searched) {
|
||||
const ancestors = [];
|
||||
const father = [];
|
||||
const newTree = [];
|
||||
const tmpTree = [];
|
||||
rawTree.map((raw, index) => {
|
||||
if (raw.type === "services") {
|
||||
if (raw.servicesChildren.length !== 0) {
|
||||
// search at parent level
|
||||
let descr = raw.description.toLowerCase();
|
||||
let sear = searched.toLowerCase();
|
||||
let findedPadre = descr.indexOf(sear);
|
||||
if (findedPadre === -1) {
|
||||
father.push(raw.id);
|
||||
} else if (findedPadre >= 0) {
|
||||
ancestors.push(raw.id);
|
||||
} else {
|
||||
//we mark the father as found
|
||||
controller.finded = 1;
|
||||
}
|
||||
} else {
|
||||
let finded = raw.description.indexOf(searched);
|
||||
if (finded === -1) {
|
||||
delete rawTree[index];
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (ancestors.length >= 1) {
|
||||
ancestors.map(ancestor => {
|
||||
newTree.push(
|
||||
rawTree.filter(item => item.id === parseInt(ancestor))
|
||||
);
|
||||
});
|
||||
|
||||
return newTree[0];
|
||||
}
|
||||
|
||||
if (father.length >= 1) {
|
||||
let filterfather = [...new Set(father)];
|
||||
|
||||
filterfather.map(father => {
|
||||
tmpTree.push(rawTree.filter(raw => raw.id == father));
|
||||
});
|
||||
|
||||
let tree = [...new Set(tmpTree)];
|
||||
tree.map(item => {
|
||||
let tmpItem = item[0];
|
||||
newTree.push(tmpItem);
|
||||
});
|
||||
|
||||
return newTree;
|
||||
}
|
||||
|
||||
return rawTree.filter(item => item);
|
||||
}
|
||||
},
|
||||
load: function() {
|
||||
this.reload();
|
||||
|
|
|
@ -8764,6 +8764,10 @@ div.graph div.legend table {
|
|||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.underline-hover:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.w105px {
|
||||
width: 105px;
|
||||
}
|
||||
|
@ -10266,6 +10270,14 @@ div#err_msg_centralised {
|
|||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.div-col-4 {
|
||||
width: 25%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.div-span {
|
||||
width: 100%;
|
||||
color: #161628;
|
||||
|
@ -12903,6 +12915,14 @@ tr.shown td.details-control {
|
|||
background-color: transparent;
|
||||
}
|
||||
|
||||
.span_as_label {
|
||||
font-size: 13px;
|
||||
line-height: 16px;
|
||||
color: #161628;
|
||||
font-weight: bold;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.basic-options-disabled tr > td,
|
||||
.basic-options-disabled tr > td > div > label {
|
||||
color: gray;
|
||||
|
|
|
@ -743,6 +743,9 @@ p {
|
|||
margin-block-end: 1em;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-size: inherit;
|
||||
}
|
||||
/* Styles for the solid icons */
|
||||
|
||||
.fa {
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -131,7 +131,7 @@
|
|||
<div style='padding-bottom: 50px'>
|
||||
<?php
|
||||
$version = '7.0NG.774';
|
||||
$build = '231211';
|
||||
$build = '231213';
|
||||
$banner = "v$version Build $build";
|
||||
error_reporting(0);
|
||||
|
||||
|
|
|
@ -320,6 +320,7 @@ $table->size[0] = '50%';
|
|||
$table->size[1] = '50%';
|
||||
$table->class = 'filter-table-adv';
|
||||
|
||||
$table->cellstyle['group'][0] = 'display: flex;width: 95% !important;';
|
||||
$table->data['group'][0] = html_print_label_input_block(
|
||||
__('Group'),
|
||||
html_print_select_groups(
|
||||
|
@ -336,7 +337,8 @@ $table->data['group'][0] = html_print_label_input_block(
|
|||
true,
|
||||
'',
|
||||
false
|
||||
)
|
||||
),
|
||||
['div_class' => 'w100p']
|
||||
);
|
||||
|
||||
$table->data['group'][0] .= html_print_label_input_block(
|
||||
|
@ -346,11 +348,7 @@ $table->data['group'][0] .= html_print_label_input_block(
|
|||
1,
|
||||
$recursion,
|
||||
true
|
||||
),
|
||||
[
|
||||
'div_class' => 'add-input-reverse',
|
||||
'label_class' => 'label-thin',
|
||||
]
|
||||
)
|
||||
);
|
||||
|
||||
$table->data['group'][1] = html_print_label_input_block(
|
||||
|
@ -405,7 +403,7 @@ foreach ($pre_fields as $key => $value) {
|
|||
|
||||
$table->data[1][0] = html_print_label_input_block(
|
||||
__('Operating System'),
|
||||
html_print_select($fields, 'os', $os, '', 'All', 0, true)
|
||||
html_print_select($fields, 'os', $os, '', 'All', 0, true, false, true, 'w100p', false, 'width:100%')
|
||||
);
|
||||
|
||||
$table->data[1][1] = html_print_label_input_block(
|
||||
|
@ -428,9 +426,22 @@ if (function_exists('policies_get_policies') === true) {
|
|||
}
|
||||
}
|
||||
|
||||
$table->data[2][0] = html_print_label_input_block(
|
||||
$table->data[2][1] = html_print_label_input_block(
|
||||
__('Policies'),
|
||||
html_print_select($fields, 'policies[]', $policies, '', 'All', 0, true, true)
|
||||
html_print_select(
|
||||
$fields,
|
||||
'policies',
|
||||
$policies,
|
||||
'this.form.submit()',
|
||||
__('All'),
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'w100p',
|
||||
false,
|
||||
'width: 100%'
|
||||
)
|
||||
);
|
||||
|
||||
$custom_fields = db_get_all_fields_in_table('tagent_custom_fields');
|
||||
|
@ -438,7 +449,7 @@ if ($custom_fields === false) {
|
|||
$custom_fields = [];
|
||||
}
|
||||
|
||||
$div_custom_fields = '<div class="flex-row">';
|
||||
$div_custom_fields = '<div class="flex-row w100p" style="justify-content: unset;">';
|
||||
foreach ($custom_fields as $custom_field) {
|
||||
$custom_field_value = '';
|
||||
if (empty($ag_custom_fields) === false) {
|
||||
|
@ -448,10 +459,10 @@ foreach ($custom_fields as $custom_field) {
|
|||
}
|
||||
}
|
||||
|
||||
$div_custom_fields .= '<div class="div-col">';
|
||||
$div_custom_fields .= '<div class="div-col-4">';
|
||||
|
||||
$div_custom_fields .= '<div class="div-span">';
|
||||
$div_custom_fields .= '<span >'.$custom_field['name'].'</span>';
|
||||
$div_custom_fields .= '<span class="span_as_label">'.$custom_field['name'].'</span>';
|
||||
$div_custom_fields .= '</div>';
|
||||
|
||||
$div_custom_fields .= '<div class="div-input">';
|
||||
|
@ -890,7 +901,11 @@ if ($group_id > 0) {
|
|||
$groups = array_keys($user_groups);
|
||||
}
|
||||
|
||||
$all_policies = in_array(0, ($policies ?? []));
|
||||
if (is_array($policies)) {
|
||||
$all_policies = in_array(0, ($policies ?? []));
|
||||
} else {
|
||||
$all_policies = [];
|
||||
}
|
||||
|
||||
$id_os_sql = '';
|
||||
$policies_sql = '';
|
||||
|
|
|
@ -121,8 +121,11 @@ if (empty($agent['os_version']) !== true) {
|
|||
$os_agent_text = $os_version.' ('.$os_version_name[1].')';
|
||||
} else {
|
||||
$os_name = preg_split('/[0-9]/', $agent['os_version'])[0];
|
||||
$os_version = explode($os_name, explode('(', $agent['os_version'])[0])[1];
|
||||
$os_agent_text = $os_version;
|
||||
$os_agent_text = $agent['os_version'];
|
||||
if (empty($os_name) === false) {
|
||||
$os_version = explode($os_name, explode('(', $agent['os_version'])[0])[1];
|
||||
$os_agent_text = $os_version;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1289,6 +1289,10 @@ if ($inventory_module !== 'basic') {
|
|||
$style = 'width: 100%';
|
||||
$ordering = true;
|
||||
$searching = false;
|
||||
$search = [];
|
||||
if (strlen($inventory_search_string) > 0) {
|
||||
$search['value'] = $inventory_search_string;
|
||||
}
|
||||
|
||||
$columns = [
|
||||
'alias',
|
||||
|
@ -1338,6 +1342,7 @@ if ($inventory_module !== 'basic') {
|
|||
'get_data_basic_info' => 1,
|
||||
'id_agent' => $id_agente,
|
||||
'id_group' => $inventory_id_group,
|
||||
'search' => $search,
|
||||
],
|
||||
'zeroRecords' => __('Agent info not found'),
|
||||
'emptyTable' => __('Agent info not found'),
|
||||
|
|
|
@ -76,15 +76,15 @@ if ($searchAgents) {
|
|||
$sql = "SELECT DISTINCT taddress_agent.id_agent FROM taddress
|
||||
INNER JOIN taddress_agent ON
|
||||
taddress.id_a = taddress_agent.id_a
|
||||
WHERE taddress.ip LIKE '$stringSearchSQL'";
|
||||
WHERE LOWER(REPLACE(taddress.ip, ' ', ' ')) LIKE LOWER('$stringSearchSQL')";
|
||||
|
||||
$id = db_get_all_rows_sql($sql);
|
||||
if ($id != '') {
|
||||
$aux = $id[0]['id_agent'];
|
||||
$search_sql = " t1.nombre LIKE '".$stringSearchSQL."' OR
|
||||
t2.nombre LIKE '".$stringSearchSQL."' OR
|
||||
t1.alias LIKE '".$stringSearchSQL."' OR
|
||||
t1.comentarios LIKE '".$stringSearchSQL."' OR
|
||||
$search_sql = " LOWER(REPLACE(t1.nombre, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR
|
||||
LOWER(REPLACE(t2.nombre, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR
|
||||
LOWER(REPLACE(t1.alias, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR
|
||||
LOWER(REPLACE(t1.comentarios, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR
|
||||
t1.id_agente =".$aux;
|
||||
|
||||
$idCount = count($id);
|
||||
|
@ -96,16 +96,16 @@ if ($searchAgents) {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
$search_sql = " t1.nombre LIKE '".$stringSearchSQL."' OR
|
||||
t2.nombre LIKE '".$stringSearchSQL."' OR
|
||||
t1.direccion LIKE '".$stringSearchSQL."' OR
|
||||
t1.comentarios LIKE '".$stringSearchSQL."' OR
|
||||
t1.alias LIKE '".$stringSearchSQL."'";
|
||||
$search_sql = " LOWER(REPLACE(t1.nombre, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR
|
||||
LOWER(REPLACE(t2.nombre, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR
|
||||
LOWER(REPLACE(t1.direccion, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR
|
||||
LOWER(REPLACE(t1.comentarios, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR
|
||||
LOWER(REPLACE(t1.alias, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."')";
|
||||
}
|
||||
|
||||
if ($has_secondary === true) {
|
||||
$search_sql .= " OR (tasg.id_group IS NOT NULL AND
|
||||
tasg.id_group IN (SELECT id_grupo FROM tgrupo WHERE nombre LIKE '".$stringSearchSQL."'))";
|
||||
tasg.id_group IN (SELECT id_grupo FROM tgrupo WHERE LOWER(REPLACE(nombre, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."')))";
|
||||
}
|
||||
|
||||
$sql = "
|
||||
|
|
|
@ -139,64 +139,64 @@ if ($searchAlerts) {
|
|||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$whereAlerts = 'AND (
|
||||
id_alert_template IN (SELECT id FROM talert_templates WHERE name LIKE "%'.$stringSearchSQL.'%") OR
|
||||
id_alert_template IN (SELECT id FROM talert_templates WHERE REPLACE(name, " ", " ") LIKE "%'.$stringSearchSQL.'%") OR
|
||||
id_alert_template IN (
|
||||
SELECT id
|
||||
FROM talert_templates
|
||||
WHERE id_alert_action IN (
|
||||
SELECT id
|
||||
FROM talert_actions
|
||||
WHERE name LIKE "%'.$stringSearchSQL.'%")) OR
|
||||
WHERE REPLACE(name, " ", " ") LIKE "%'.$stringSearchSQL.'%")) OR
|
||||
talert_template_modules.id IN (
|
||||
SELECT id_alert_template_module
|
||||
FROM talert_template_module_actions
|
||||
WHERE id_alert_action IN (
|
||||
SELECT id
|
||||
FROM talert_actions
|
||||
WHERE name LIKE "%'.$stringSearchSQL.'%")) OR
|
||||
WHERE REPLACE(name, " ", " ") LIKE "%'.$stringSearchSQL.'%")) OR
|
||||
id_agent_module IN (
|
||||
SELECT id_agente_modulo
|
||||
FROM tagente_modulo
|
||||
WHERE nombre LIKE "%'.$stringSearchSQL.'%") OR
|
||||
WHERE REPLACE(nombre, " ", " ") LIKE "%'.$stringSearchSQL.'%") OR
|
||||
id_agent_module IN (
|
||||
SELECT id_agente_modulo
|
||||
FROM tagente_modulo
|
||||
WHERE id_agente IN (
|
||||
SELECT id_agente
|
||||
FROM tagente
|
||||
WHERE nombre LIKE "%'.$stringSearchSQL.'%" '.$extra_sql.'))
|
||||
WHERE REPLACE(nombre, " ", " ") LIKE "%'.$stringSearchSQL.'%" '.$extra_sql.'))
|
||||
)';
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
case 'oracle':
|
||||
$whereAlerts = 'AND (
|
||||
id_alert_template IN (SELECT id FROM talert_templates WHERE upper(name) LIKE \'%'.strtolower($stringSearchSQL).'%\') OR
|
||||
id_alert_template IN (SELECT id FROM talert_templates WHERE upper(REPLACE(name, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\') OR
|
||||
id_alert_template IN (
|
||||
SELECT id
|
||||
FROM talert_templates
|
||||
WHERE id_alert_action IN (
|
||||
SELECT id
|
||||
FROM talert_actions
|
||||
WHERE upper(name) LIKE \'%'.strtolower($stringSearchSQL).'%\')) OR
|
||||
WHERE upper(REPLACE(name, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\')) OR
|
||||
talert_template_modules.id IN (
|
||||
SELECT id_alert_template_module
|
||||
FROM talert_template_module_actions
|
||||
WHERE id_alert_action IN (
|
||||
SELECT id
|
||||
FROM talert_actions
|
||||
WHERE upper(name) LIKE \'%'.strtolower($stringSearchSQL).'%\')) OR
|
||||
WHERE upper(REPLACE(name, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\')) OR
|
||||
id_agent_module IN (
|
||||
SELECT id_agente_modulo
|
||||
FROM tagente_modulo
|
||||
WHERE upper(nombre) LIKE \'%'.strtolower($stringSearchSQL).'%\') OR
|
||||
WHERE upper(REPLACE(nombre, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\') OR
|
||||
id_agent_module IN (
|
||||
SELECT id_agente_modulo
|
||||
FROM tagente_modulo
|
||||
WHERE id_agente IN (
|
||||
SELECT id_agente
|
||||
FROM tagente
|
||||
WHERE upper(nombre) LIKE \'%'.strtolower($stringSearchSQL).'%\' '.$extra_sql.'))
|
||||
WHERE upper(REPLACE(nombre, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\' '.$extra_sql.'))
|
||||
)';
|
||||
$agents = false;
|
||||
break;
|
||||
|
|
|
@ -31,7 +31,7 @@ if ($searchGraphs) {
|
|||
}
|
||||
|
||||
$filter = [];
|
||||
$filter[] = "(upper(name) LIKE '%".strtolower($stringSearchSQL)."%' OR upper(description) LIKE '%$".strtolower($stringSearchSQL)."%')";
|
||||
$filter[] = "(upper(REPLACE(name, ' ', ' ')) LIKE '%".strtolower($stringSearchSQL)."%' OR upper(REPLACE(description, ' ', ' ')) LIKE '%$".strtolower($stringSearchSQL)."%')";
|
||||
$filter['id_graph'] = $usergraphs_id;
|
||||
|
||||
$columns = [
|
||||
|
|
|
@ -62,10 +62,10 @@ $sql = "SELECT DISTINCT taddress_agent.id_agent FROM taddress
|
|||
$id = db_get_all_rows_sql($sql);
|
||||
if ($id != '') {
|
||||
$aux = $id[0]['id_agent'];
|
||||
$search_sql = " t1.nombre LIKE '".$stringSearchSQL."' OR
|
||||
t2.nombre LIKE '".$stringSearchSQL."' OR
|
||||
t1.alias LIKE '".$stringSearchSQL."' OR
|
||||
t1.comentarios LIKE '".$stringSearchSQL."' OR
|
||||
$search_sql = " REPLACE(t1.nombre, ' ', ' ') LIKE '".$stringSearchSQL."' OR
|
||||
REPLACE(t2.nombre, ' ', ' ') LIKE '".$stringSearchSQL."' OR
|
||||
REPLACE(t1.alias, ' ', ' ') LIKE '".$stringSearchSQL."' OR
|
||||
REPLACE(t1.comentarios, ' ', ' ') LIKE '".$stringSearchSQL."' OR
|
||||
t1.id_agente =".$aux;
|
||||
|
||||
$idCount = count($id);
|
||||
|
@ -77,16 +77,16 @@ if ($id != '') {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
$search_sql = " t1.nombre LIKE '".$stringSearchSQL."' OR
|
||||
t2.nombre LIKE '".$stringSearchSQL."' OR
|
||||
t1.direccion LIKE '".$stringSearchSQL."' OR
|
||||
t1.comentarios LIKE '".$stringSearchSQL."' OR
|
||||
t1.alias LIKE '".$stringSearchSQL."'";
|
||||
$search_sql = " REPLACE(t1.nombre, ' ', ' ') LIKE '".$stringSearchSQL."' OR
|
||||
REPLACE(t2.nombre, ' ', ' ') LIKE '".$stringSearchSQL."' OR
|
||||
REPLACE(t1.direccion, ' ', ' ') LIKE '".$stringSearchSQL."' OR
|
||||
REPLACE(t1.comentarios, ' ', ' ') LIKE '".$stringSearchSQL."' OR
|
||||
REPLACE(t1.alias, ' ', ' ') LIKE '".$stringSearchSQL."'";
|
||||
}
|
||||
|
||||
if ($has_secondary === true) {
|
||||
$search_sql .= " OR (tasg.id_group IS NOT NULL AND
|
||||
tasg.id_group IN (SELECT id_grupo FROM tgrupo WHERE nombre LIKE '".$stringSearchSQL."'))";
|
||||
tasg.id_group IN (SELECT id_grupo FROM tgrupo WHERE REPLACE(nombre, ' ', ' ') LIKE '".$stringSearchSQL."'))";
|
||||
}
|
||||
|
||||
$sql = "
|
||||
|
|
|
@ -32,7 +32,7 @@ if ((bool) $searchMaps === true) {
|
|||
FROM tlayout tl
|
||||
LEFT JOIN tlayout_data tld
|
||||
ON tl.id = tld.id_layout
|
||||
WHERE tl.name LIKE "%%%s%%"
|
||||
WHERE REPLACE(tl.name, " ", " ") LIKE "%%%s%%"
|
||||
AND tl.id_group IN (%s)
|
||||
GROUP BY tl.id, tl.name, tl.id_group',
|
||||
$stringSearchSQL,
|
||||
|
|
|
@ -142,8 +142,8 @@ if ($searchModules) {
|
|||
)
|
||||
)
|
||||
AND
|
||||
(t1.nombre LIKE "%'.$stringSearchSQL.'%" OR
|
||||
t3.nombre LIKE "%'.$stringSearchSQL.'%")
|
||||
(REPLACE(t1.nombre, " ", " ") LIKE "%'.$stringSearchSQL.'%" OR
|
||||
REPLACE(t3.nombre, " ", " ") LIKE "%'.$stringSearchSQL.'%")
|
||||
AND t1.disabled = 0';
|
||||
break;
|
||||
|
||||
|
@ -172,8 +172,8 @@ if ($searchModules) {
|
|||
)
|
||||
)
|
||||
) AND
|
||||
(t1.nombre LIKE \'%'.$stringSearchSQL.'%\' OR
|
||||
t3.nombre LIKE \'%'.$stringSearchSQL.'%\')';
|
||||
(REPLACE(t1.nombre, " ", " ") LIKE \'%'.$stringSearchSQL.'%\' OR
|
||||
REPLACE(t3.nombre, " ", " ") LIKE \'%'.$stringSearchSQL.'%\')';
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
|
@ -201,8 +201,8 @@ if ($searchModules) {
|
|||
)
|
||||
)
|
||||
) AND
|
||||
(LOWER(t1.nombre) LIKE \'%'.strtolower($stringSearchSQL).'%\' OR
|
||||
LOWER(t3.nombre) LIKE \'%'.strtolower($stringSearchSQL).'%\')';
|
||||
(LOWER(REPLACE(t1.nombre, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\' OR
|
||||
LOWER(REPLACE(t3.nombre, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\')';
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -207,7 +207,7 @@ if ($searchpolicies === true) {
|
|||
|
||||
$sql = "SELECT id, name, description, id_group, status
|
||||
FROM tpolicies
|
||||
WHERE name LIKE '$stringSearchSQL'
|
||||
WHERE REPLACE(name, ' ', ' ') LIKE '$stringSearchSQL'
|
||||
AND id_group IN ($id_user_groups_str)
|
||||
";
|
||||
}
|
||||
|
|
|
@ -46,13 +46,13 @@ if ($searchReports) {
|
|||
case 'postgresql':
|
||||
$sql = "SELECT id_report, name, description
|
||||
FROM treport
|
||||
WHERE (name LIKE '%".$stringSearchSQL."%' OR description LIKE '%".$stringSearchSQL."%')".$reports_condition;
|
||||
WHERE (REPLACE(name, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR REPLACE(description, ' ', ' ') LIKE '%".$stringSearchSQL."%')".$reports_condition;
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
$sql = "SELECT id_report, name, description
|
||||
FROM treport
|
||||
WHERE (upper(name) LIKE '%".strtolower($stringSearchSQL)."%' OR description LIKE '%".strtolower($stringSearchSQL)."%')".$reports_condition;
|
||||
WHERE (upper(REPLACE(name, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR REPLACE(description, ' ', ' ') LIKE '%".strtolower($stringSearchSQL)."%')".$reports_condition;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -77,13 +77,13 @@ if ($searchReports) {
|
|||
case 'postgresql':
|
||||
$sql_count = "SELECT COUNT(id_report) AS count
|
||||
FROM treport
|
||||
WHERE (name LIKE '%".$stringSearchSQL."%' OR description LIKE '%".$stringSearchSQL."%')".$reports_condition;
|
||||
WHERE (REPLACE(name, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR REPLACE(description, ' ', ' ') LIKE '%".$stringSearchSQL."%')".$reports_condition;
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
$sql_count = "SELECT COUNT(id_report) AS count
|
||||
FROM treport
|
||||
WHERE (upper(name) LIKE '%".strtolower($stringSearchSQL)."%' OR upper(description) LIKE '%".strtolower($stringSearchSQL)."%')".$reports_condition;
|
||||
WHERE (upper(REPLACE(name, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR upper(REPLACE(description, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%')".$reports_condition;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -179,23 +179,23 @@ if ($searchUsers) {
|
|||
case 'mysql':
|
||||
case 'postgresql':
|
||||
$sql = "SELECT id_user, fullname, firstname, lastname, middlename, email, last_connect, is_admin, comments FROM tusuario
|
||||
WHERE fullname LIKE '%".$stringSearchSQL."%' OR
|
||||
id_user LIKE '%".$stringSearchSQL."%' OR
|
||||
firstname LIKE '%".$stringSearchSQL."%' OR
|
||||
lastname LIKE '%".$stringSearchSQL."%' OR
|
||||
middlename LIKE '%".$stringSearchSQL."%' OR
|
||||
email LIKE '%".$stringSearchSQL."%'
|
||||
WHERE REPLACE(fullname, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR
|
||||
REPLACE(id_user, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR
|
||||
REPLACE(firstname, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR
|
||||
REPLACE(lastname, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR
|
||||
REPLACE(middlename, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR
|
||||
REPLACE(email, ' ', ' ') LIKE '%".$stringSearchSQL."%'
|
||||
ORDER BY ".$order['field'].' '.$order['order'];
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
$sql = "SELECT id_user, fullname, firstname, lastname, middlename, email, last_connect, is_admin, comments FROM tusuario
|
||||
WHERE upper(fullname) LIKE '%".strtolower($stringSearchSQL)."%' OR
|
||||
upper(id_user) LIKE '%".strtolower($stringSearchSQL)."%' OR
|
||||
upper(firstname) LIKE '%".strtolower($stringSearchSQL)."%' OR
|
||||
upper(lastname) LIKE '%".strtolower($stringSearchSQL)."%' OR
|
||||
upper(middlename) LIKE '%".strtolower($stringSearchSQL)."%' OR
|
||||
upper(email) LIKE '%".strtolower($stringSearchSQL)."%'
|
||||
WHERE upper(REPLACE(fullname, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR
|
||||
upper(REPLACE(id_user, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR
|
||||
upper(REPLACE(firstname, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR
|
||||
upper(REPLACE(lastname, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR
|
||||
upper(REPLACE(middlename, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR
|
||||
upper(REPLACE(email, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%'
|
||||
ORDER BY ".$order['field'].' '.$order['order'];
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -91,7 +91,7 @@ $create_text_file = (bool) get_parameter('create_text_file');
|
|||
$default_real_directory = realpath($config['homedir'].'/'.$fallback_directory);
|
||||
|
||||
if ($upload_file_or_zip === true) {
|
||||
upload_file($upload_file_or_zip, $default_real_directory, $real_directory);
|
||||
upload_file($upload_file_or_zip, $default_real_directory, $real_directory, ['mib', 'zip']);
|
||||
}
|
||||
|
||||
if ($create_text_file === true) {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
%define debug_package %{nil}
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.774
|
||||
%define release 231211
|
||||
%define release 231213
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
%define debug_package %{nil}
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.774
|
||||
%define release 231211
|
||||
%define release 231213
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.774
|
||||
%define release 231211
|
||||
%define release 231213
|
||||
%define httpd_name httpd
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name apache2
|
||||
|
|
|
@ -2730,7 +2730,7 @@ SET @short_name = 'pandorafms.vmware';
|
|||
SET @name = 'VMware';
|
||||
SET @section = 'app';
|
||||
SET @description = 'Monitor ESXi hosts, datastores and VMs from a specific datacenter';
|
||||
SET @version = '1.1';
|
||||
SET @version = '1.2';
|
||||
INSERT IGNORE INTO `tdiscovery_apps` (`id_app`, `short_name`, `name`, `section`, `description`, `version`) VALUES ('', @short_name, @name, @section, @description, @version);
|
||||
SELECT @id_app := `id_app` FROM `tdiscovery_apps` WHERE `short_name` = @short_name;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-server
|
||||
Version: 7.0NG.774-231211
|
||||
Version: 7.0NG.774-231213
|
||||
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.774-231211"
|
||||
pandora_version="7.0NG.774-231213"
|
||||
|
||||
package_cpan=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -46,7 +46,7 @@ our @EXPORT = qw(
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.774";
|
||||
my $pandora_build = "231211";
|
||||
my $pandora_build = "231213";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
# Setup hash
|
||||
|
|
|
@ -5786,9 +5786,9 @@ sub pandora_inhibit_alerts {
|
|||
sub pandora_cps_enabled($$) {
|
||||
my ($agent, $module) = @_;
|
||||
|
||||
return 1 if ($agent->{'cps'} > 0);
|
||||
return 1 if ($agent->{'cps'} >= 0);
|
||||
|
||||
return 1 if ($module->{'cps'} > 0);
|
||||
return 1 if ($module->{'cps'} >= 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.774";
|
||||
my $pandora_build = "231211";
|
||||
my $pandora_build = "231213";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
%define debug_package %{nil}
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.774
|
||||
%define release 231211
|
||||
%define release 231213
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.774
|
||||
%define release 231211
|
||||
%define release 231213
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.774"
|
||||
PI_BUILD="231211"
|
||||
PI_BUILD="231213"
|
||||
|
||||
MODE=$1
|
||||
if [ $# -gt 1 ]; then
|
||||
|
|
|
@ -38,7 +38,7 @@ use PandoraFMS::Config;
|
|||
use PandoraFMS::DB;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.774 Build 231211";
|
||||
my $version = "7.0NG.774 Build 231213";
|
||||
|
||||
# Pandora server configuration
|
||||
my %conf;
|
||||
|
|
|
@ -36,7 +36,7 @@ use Encode::Locale;
|
|||
Encode::Locale::decode_argv;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.774 Build 231211";
|
||||
my $version = "7.0NG.774 Build 231213";
|
||||
|
||||
# save program name for logging
|
||||
my $progname = basename($0);
|
||||
|
|
|
@ -742,3 +742,7 @@ p {
|
|||
margin-block-start: 1em;
|
||||
margin-block-end: 1em;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-size: inherit;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue