Merge remote-tracking branch 'origin/develop' into ent-5165-error-pdf-report-names-generated-by-template
@ -9,6 +9,7 @@ RUN yum -y install \
|
||||
epel-release \
|
||||
unzip \
|
||||
perl \
|
||||
python3 \
|
||||
sed \
|
||||
"perl(Sys::Syslog)"
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.742-191218
|
||||
Version: 7.0NG.742-200109
|
||||
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.742-191218"
|
||||
pandora_version="7.0NG.742-200109"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
@ -55,7 +55,7 @@ my $Sem = undef;
|
||||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.742';
|
||||
use constant AGENT_BUILD => '191218';
|
||||
use constant AGENT_BUILD => '200109';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
@ -2882,7 +2882,7 @@ sub cron_valid_date {
|
||||
my $utime;
|
||||
eval {
|
||||
local $SIG{__DIE__} = sub {};
|
||||
$utime = timelocal(0, $min, $hour, $mday, $month, $year);
|
||||
$utime = strftime("%s", 0, $min, $hour, $mday, $month, $year);
|
||||
};
|
||||
if ($@) {
|
||||
return 0;
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.742
|
||||
%define release 191218
|
||||
%define release 200109
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.742
|
||||
%define release 191218
|
||||
%define release 200109
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
@ -10,7 +10,7 @@
|
||||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.742"
|
||||
PI_BUILD="191218"
|
||||
PI_BUILD="200109"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
||||
{}
|
||||
|
||||
Version
|
||||
{191218}
|
||||
{200109}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
||||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.742(Build 191218)")
|
||||
#define PANDORA_VERSION ("7.0NG.742(Build 200109)")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
@ -11,7 +11,7 @@ BEGIN
|
||||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.742(Build 191218))"
|
||||
VALUE "ProductVersion", "(7.0NG.742(Build 200109))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
@ -1,5 +1,5 @@
|
||||
package: pandorafms-console
|
||||
Version: 7.0NG.742-191218
|
||||
Version: 7.0NG.742-200109
|
||||
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.742-191218"
|
||||
pandora_version="7.0NG.742-200109"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
@ -22,6 +22,17 @@ function dbmanager_query($sql, &$error, $dbconnection)
|
||||
}
|
||||
|
||||
$sql = html_entity_decode($sql, ENT_QUOTES);
|
||||
|
||||
// Extract the text in quotes to add html entities before query db.
|
||||
$patttern = '/(?:"|\')+([^"\']*)(?:"|\')+/m';
|
||||
$sql = preg_replace_callback(
|
||||
$patttern,
|
||||
function ($matches) {
|
||||
return '"'.io_safe_input($matches[1]).'"';
|
||||
},
|
||||
$sql
|
||||
);
|
||||
|
||||
if ($config['mysqli']) {
|
||||
$result = mysqli_query($dbconnection, $sql);
|
||||
if ($result === false) {
|
||||
|
@ -13,6 +13,8 @@
|
||||
require_once 'include/functions_messages.php';
|
||||
require_once 'include/functions_servers.php';
|
||||
require_once 'include/functions_notifications.php';
|
||||
require_once 'include/ajax/order_interpreter.php';
|
||||
ui_require_css_file('order_interpreter');
|
||||
|
||||
// Check permissions
|
||||
// Global errors/warnings checking.
|
||||
@ -99,7 +101,8 @@ if ($config['menu_type'] == 'classic') {
|
||||
|
||||
if ($acl_head_search) {
|
||||
// Search bar.
|
||||
$search_bar = '<form method="get" style="display: inline;" name="quicksearch" action="">';
|
||||
$search_bar = '<form autocomplete="off" method="get" style="display: inline;" name="quicksearch" action="">';
|
||||
'<input autocomplete="false" name="hidden" type="text" style="display:none;">';
|
||||
if (!isset($config['search_keywords'])) {
|
||||
$search_bar .= '<script type="text/javascript"> var fieldKeyWordEmpty = true; </script>';
|
||||
} else {
|
||||
@ -110,7 +113,7 @@ if ($config['menu_type'] == 'classic') {
|
||||
}
|
||||
}
|
||||
|
||||
$search_bar .= '<input type="text" id="keywords" name="keywords"';
|
||||
$search_bar .= '<input id="keywords" name="keywords"';
|
||||
if (!isset($config['search_keywords'])) {
|
||||
$search_bar .= "value='".__('Enter keywords to search')."'";
|
||||
} else if (strlen($config['search_keywords']) == 0) {
|
||||
@ -119,9 +122,11 @@ if ($config['menu_type'] == 'classic') {
|
||||
$search_bar .= "value='".$config['search_keywords']."'";
|
||||
}
|
||||
|
||||
$search_bar .= 'onfocus="javascript: if (fieldKeyWordEmpty) $(\'#keywords\').val(\'\');"
|
||||
onkeyup="javascript: fieldKeyWordEmpty = false;" class="search_input" />';
|
||||
$search_bar .= 'type="search" onfocus="javascript: if (fieldKeyWordEmpty) $(\'#keywords\').val(\'\');"
|
||||
onkeyup="showinterpreter()" class="search_input"/>';
|
||||
|
||||
|
||||
$search_bar .= '<div id="result_order" class="result_order"></div>';
|
||||
// $search_bar .= 'onClick="javascript: document.quicksearch.submit()"';
|
||||
$search_bar .= "<input type='hidden' name='head_search_keywords' value='abc' />";
|
||||
$search_bar .= '</form>';
|
||||
@ -622,7 +627,7 @@ if ($config['menu_type'] == 'classic') {
|
||||
});
|
||||
}
|
||||
|
||||
// Resize event
|
||||
// Resize event.
|
||||
window.addEventListener("resize", function() {
|
||||
attatch_to_image();
|
||||
});
|
||||
@ -631,6 +636,85 @@ if ($config['menu_type'] == 'classic') {
|
||||
|
||||
var new_chat = <?php echo (int) $_SESSION['new_chat']; ?>;
|
||||
|
||||
function showinterpreter(){
|
||||
|
||||
document.onclick = function(e) {
|
||||
$('#result_order').hide();
|
||||
$('#keywords').addClass('search_input');
|
||||
$('#keywords').removeClass('results-found');
|
||||
$('#keywords').value = '';
|
||||
$('#keywords').attr('placeholder','Enter keywords to search');
|
||||
}
|
||||
|
||||
if(event.keyCode == 13 && $("#result_items li.active").length != 0 )
|
||||
{
|
||||
window.location = $('#result_items').find("li.active a").attr('href');
|
||||
}
|
||||
var code = event.key;
|
||||
switch (code){
|
||||
case 'ArrowDown':
|
||||
if($("#result_items li.active").length!=0)
|
||||
{
|
||||
var storeTarget = $('#result_items').find("li.active").next();
|
||||
$("#result_items li.active").removeClass("active");
|
||||
storeTarget.focus().addClass("active");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#result_items').find("li:first").focus().addClass("active");
|
||||
}
|
||||
return;
|
||||
|
||||
case 'ArrowUp':
|
||||
if($("#result_items li.active"))
|
||||
{
|
||||
var storeTarget = $('#result_items').find("li.active").prev();
|
||||
$("#result_items li.active").removeClass("active");
|
||||
storeTarget.focus().addClass("active");
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#result_items').find("li:first").focus().addClass("active");
|
||||
}
|
||||
return;
|
||||
|
||||
case 'ArrowRight':
|
||||
return;
|
||||
case 'ArrowLeft':
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
if( $('#keywords').val() === ''){
|
||||
$('#keywords').addClass('search_input');
|
||||
$('#keywords').removeClass('results-found');
|
||||
$('#result_order').hide();
|
||||
$('#keywords').attr('placeholder','Enter keywords to search');
|
||||
}else {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "ajax.php",
|
||||
dataType: "html",
|
||||
data: {
|
||||
page: 'include/ajax/order_interpreter',
|
||||
method: 'getResult',
|
||||
text: $('#keywords').val(),
|
||||
},
|
||||
success: function (data) {
|
||||
$('#result_order').html(data);
|
||||
console.log(data);
|
||||
},
|
||||
error: function (data) {
|
||||
console.error("Fatal error in AJAX call to interpreter order", data)
|
||||
}
|
||||
});
|
||||
$('#keywords').removeClass('search_input');
|
||||
$('#keywords').addClass('results-found');
|
||||
$('#result_order').show();
|
||||
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Loads modal from AJAX to add feedback.
|
||||
*/
|
||||
|
@ -82,12 +82,18 @@ if (!empty($page) && !empty($sec)) {
|
||||
}
|
||||
|
||||
$login_body_style = '';
|
||||
$login_body_class = '';
|
||||
// Overrides the default background with the defined by the user.
|
||||
if (!empty($config['login_background'])) {
|
||||
$background_url = 'images/backgrounds/'.$config['login_background'];
|
||||
$login_body_style = "style=\"background:linear-gradient(74deg, #02020255 36%, transparent 36%), url('".$background_url."');\"";
|
||||
}
|
||||
|
||||
// Support for Internet Explorer and Microsoft Edge browsers
|
||||
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Edge') !== false) {
|
||||
$login_body_class = "class='login_body_trident'";
|
||||
}
|
||||
|
||||
// Get alternative custom in case of db fail.
|
||||
$custom_fields = [
|
||||
'custom_logo_login',
|
||||
@ -111,7 +117,7 @@ foreach ($custom_fields as $field) {
|
||||
// Get the custom icons.
|
||||
$docs_logo = ui_get_docs_logo();
|
||||
$support_logo = ui_get_support_logo();
|
||||
echo '<div id="login_body" '.$login_body_style.'>';
|
||||
echo '<div id="login_body" '.$login_body_class.' '.$login_body_style.'>';
|
||||
echo '<div id="header_login">';
|
||||
|
||||
echo '<div id="list_icon_docs_support"><ul>';
|
||||
|
@ -40,7 +40,7 @@ if (!empty($news)) {
|
||||
// Prints news dialog template
|
||||
echo '<div id="news_dialog" title="" style="display: none;">';
|
||||
|
||||
echo '<div style="position:absolute; top:30px; left: 10px; text-align: left; right:0%; height:70px; min-width:560px; width: 95%; margin: 0 auto; border: 1px solid #FFF; line-height: 19px;">';
|
||||
echo '<div style="position:absolute; top:30px; left: 10px; text-align: left; right:0%; height:70px; min-width:560px; width: 95%; margin: 0 auto; line-height: 19px;">';
|
||||
echo '<span style="display: block; height: 260px; overflow: auto; text-align: justify; padding: 5px 15px 4px 10px; background: #ECECEC; border-radius: 4px;" id="new_text"></span>';
|
||||
echo '<span style="font-size: 12px; display: block; margin-top: 20px;" id="new_author"></span>';
|
||||
echo '<span style="font-size: 12px; display: block; font-style: italic;" id="new_timestamp"></span>';
|
||||
|
@ -612,17 +612,19 @@ if (enterprise_installed()) {
|
||||
$cascade_protection,
|
||||
true
|
||||
).__('Cascade protection').' ';
|
||||
|
||||
$table_adv_parent .= __('Module').' '.html_print_select(
|
||||
$modules_values,
|
||||
'cascade_protection_module',
|
||||
$cascade_protection_module,
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
$table_adv_parent .= __('Module').' '.html_print_select(
|
||||
$modules_values,
|
||||
'cascade_protection_module',
|
||||
$cascade_protection_module,
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true
|
||||
).'</div></div>';
|
||||
$table_adv_parent .= '</div></div>';
|
||||
|
||||
// Learn mode / Normal mode.
|
||||
$table_adv_module_mode = '<div class="label_select"><p class="input_label">'.__('Module definition').': </p>';
|
||||
@ -667,7 +669,7 @@ $table_adv_status .= html_print_checkbox_switch(
|
||||
$disabled,
|
||||
true
|
||||
);
|
||||
$table_adv_status .= '<p class="input_label input_label_simple">'.__('Disabled').': '.ui_print_help_tip(__('If the remote configuration is enabled, it will also go into standby mode when disabling it.'), true).'</p>';
|
||||
$table_adv_status .= '<p class="input_label input_label_simple">'.__('Disabled mode').': '.ui_print_help_tip(__('If the remote configuration is enabled, it will also go into standby mode when disabling it.'), true).'</p>';
|
||||
$table_adv_status .= '</div>';
|
||||
|
||||
// Url address.
|
||||
|
@ -32,19 +32,6 @@ if (! check_acl($config['id_user'], 0, 'LM')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
if (is_ajax()) {
|
||||
$get_alert_action = (bool) get_parameter('get_alert_action');
|
||||
if ($get_alert_action) {
|
||||
$id = (int) get_parameter('id');
|
||||
$action = alerts_get_alert_action($id);
|
||||
$action['command'] = alerts_get_alert_action_alert_command($action['id']);
|
||||
|
||||
echo json_encode($action);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$update_action = (bool) get_parameter('update_action');
|
||||
$create_action = (bool) get_parameter('create_action');
|
||||
$delete_action = (bool) get_parameter('delete_action');
|
||||
@ -57,15 +44,22 @@ if (defined('METACONSOLE')) {
|
||||
$sec = 'galertas';
|
||||
}
|
||||
|
||||
if ((!$copy_action) && (!$delete_action)) {
|
||||
// Header
|
||||
if (defined('METACONSOLE')) {
|
||||
alerts_meta_print_header();
|
||||
} else {
|
||||
ui_print_page_header(__('Alerts').' » '.__('Alert actions'), 'images/gm_alerts.png', false, 'alerts_action', true);
|
||||
}
|
||||
}
|
||||
// Header.
|
||||
if (defined('METACONSOLE')) {
|
||||
alerts_meta_print_header();
|
||||
} else {
|
||||
$header_help = 'alerts_action';
|
||||
|
||||
if ($copy_action) {
|
||||
$header_help = 'alerts_config';
|
||||
}
|
||||
|
||||
if ($delete_action) {
|
||||
$header_help = 'alerts_action';
|
||||
}
|
||||
|
||||
ui_print_page_header(__('Alerts').' » '.__('Alert actions'), 'images/gm_alerts.png', false, $header_help, true);
|
||||
}
|
||||
|
||||
if ($copy_action) {
|
||||
$id = get_parameter('id');
|
||||
@ -83,13 +77,6 @@ if ($copy_action) {
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
} else {
|
||||
// Header
|
||||
if (defined('METACONSOLE')) {
|
||||
alerts_meta_print_header();
|
||||
} else {
|
||||
ui_print_page_header(__('Alerts').' » '.__('Alert actions'), 'images/gm_alerts.png', false, 'alerts_config', true);
|
||||
}
|
||||
}
|
||||
} //end if
|
||||
else {
|
||||
@ -102,14 +89,7 @@ if ($copy_action) {
|
||||
|
||||
$is_in_group = in_array($al_action['id_group'], $own_groups);
|
||||
// Then action group have to be in his own groups
|
||||
if ($is_in_group) {
|
||||
// Header
|
||||
if (defined('METACONSOLE')) {
|
||||
alerts_meta_print_header();
|
||||
} else {
|
||||
ui_print_page_header(__('Alerts').' » '.__('Alert actions'), 'images/gm_alerts.png', false, 'alerts_config', true);
|
||||
}
|
||||
} else {
|
||||
if (!$is_in_group) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access Alert Management'
|
||||
@ -118,13 +98,6 @@ if ($copy_action) {
|
||||
exit;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Header
|
||||
if (defined('METACONSOLE')) {
|
||||
alerts_meta_print_header();
|
||||
} else {
|
||||
ui_print_page_header(__('Alerts').' » '.__('Alert actions'), 'images/gm_alerts.png', false, 'alerts_config', true);
|
||||
}
|
||||
}
|
||||
|
||||
$result = alerts_clone_alert_action($id);
|
||||
@ -162,13 +135,6 @@ if ($delete_action) {
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
} else {
|
||||
// Header
|
||||
if (defined('METACONSOLE')) {
|
||||
alerts_meta_print_header();
|
||||
} else {
|
||||
ui_print_page_header(__('Alerts').' » '.__('Alert actions'), 'images/gm_alerts.png', false, 'alert_action', true);
|
||||
}
|
||||
}
|
||||
|
||||
// If user tries to delete an action of others groups
|
||||
@ -182,14 +148,7 @@ if ($delete_action) {
|
||||
|
||||
$is_in_group = in_array($al_action['id_group'], $own_groups);
|
||||
// Then action group have to be in his own groups
|
||||
if ($is_in_group) {
|
||||
// Header
|
||||
if (defined('METACONSOLE')) {
|
||||
alerts_meta_print_header();
|
||||
} else {
|
||||
ui_print_page_header(__('Alerts').' » '.__('Alert actions'), 'images/gm_alerts.png', false, 'alert_action', true);
|
||||
}
|
||||
} else {
|
||||
if (!$is_in_group) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access Alert Management'
|
||||
@ -198,9 +157,6 @@ if ($delete_action) {
|
||||
exit;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Header
|
||||
ui_print_page_header(__('Alerts').' » '.__('Alert actions'), 'images/gm_alerts.png', false, '', true);
|
||||
}
|
||||
|
||||
|
||||
@ -285,10 +241,14 @@ foreach ($actions as $action) {
|
||||
2 => 'action_buttons',
|
||||
3 => 'action_buttons',
|
||||
];
|
||||
$data[2] = '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_actions&copy_action=1&id='.$action['id'].'&pure='.$pure.'"
|
||||
onClick="if (!confirm(\''.__('Are you sure?').'\')) return false;">'.html_print_image('images/copy.png', true).'</a>';
|
||||
$data[3] = '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_actions&delete_action=1&id='.$action['id'].'&pure='.$pure.'"
|
||||
onClick="if (!confirm(\''.__('Are you sure?').'\')) return false;">'.html_print_image('images/cross.png', true).'</a>';
|
||||
|
||||
$id_action = $action['id'];
|
||||
$text_confirm = __('Are you sure?');
|
||||
|
||||
$data[2] = '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_actions"
|
||||
onClick="copy_action('.$id_action.',\''.$text_confirm.'\');">'.html_print_image('images/copy.png', true).'</a>';
|
||||
$data[3] = '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_actions"
|
||||
onClick="delete_action('.$id_action.',\''.$text_confirm.'\');">'.html_print_image('images/cross.png', true).'</a>';
|
||||
}
|
||||
|
||||
array_push($table->data, $data);
|
||||
@ -308,3 +268,45 @@ echo '</form>';
|
||||
echo '</div>';
|
||||
|
||||
enterprise_hook('close_meta_frame');
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
function copy_action(id_action, text_confirm) {
|
||||
if (!confirm(text_confirm)) {
|
||||
return false;
|
||||
} else {
|
||||
jQuery.post ("ajax.php",
|
||||
{
|
||||
"page" : "godmode/alerts/alert_actions",
|
||||
"copy_action" : 1,
|
||||
"id" : id_action
|
||||
},
|
||||
function (data, status) {
|
||||
// No data.
|
||||
},
|
||||
"json"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function delete_action(id_action, text_confirm) {
|
||||
if (!confirm(text_confirm)) {
|
||||
return false;
|
||||
} else {
|
||||
jQuery.post ("ajax.php",
|
||||
{
|
||||
"page" : "godmode/alerts/alert_actions",
|
||||
"delete_action" : 1,
|
||||
"id" : id_action
|
||||
},
|
||||
function (data, status) {
|
||||
// No data.
|
||||
},
|
||||
"json"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
@ -117,6 +117,14 @@ if ($update_agents) {
|
||||
$values['quiet'] = get_parameter('quiet_select');
|
||||
}
|
||||
|
||||
if (get_parameter('safe_mode_change', -1) == 1 && get_parameter('safe_mode_module', '') != '') {
|
||||
// Get the module name.
|
||||
$values['safe_mode_module'] = get_parameter('safe_mode_module');
|
||||
} else if (get_parameter('safe_mode_change', -1) == 0) {
|
||||
// Disabled Safe Operation Mode.
|
||||
$values['safe_mode_module'] = '0';
|
||||
}
|
||||
|
||||
$fields = db_get_all_fields_in_table('tagent_custom_fields');
|
||||
|
||||
if ($fields === false) {
|
||||
@ -134,6 +142,20 @@ if ($update_agents) {
|
||||
}
|
||||
}
|
||||
|
||||
// Get the id_agente_modulo to update the 'safe_operation_mode' field.
|
||||
if (isset($values['safe_mode_module']) && ($values['safe_mode_module'] != '0')) {
|
||||
foreach ($id_agents as $id_agent) {
|
||||
$id_module_safe[$id_agent] = db_get_value_filter(
|
||||
'id_agente_modulo',
|
||||
'tagente_modulo',
|
||||
[
|
||||
'id_agente' => $id_agent,
|
||||
'nombre' => $values['safe_mode_module'],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// CONF FILE DELETION
|
||||
if (isset($values['delete_conf'])) {
|
||||
unset($values['delete_conf']);
|
||||
@ -188,6 +210,11 @@ if ($update_agents) {
|
||||
}
|
||||
}
|
||||
|
||||
// Get the id_agent_module for this agent to update the 'safe_operation_mode' field.
|
||||
if (isset($values['safe_mode_module']) && ($values['safe_mode_module'] != '0')) {
|
||||
$values['safe_mode_module'] = $id_module_safe[$id_agent];
|
||||
}
|
||||
|
||||
$result = db_process_sql_update(
|
||||
'tagente',
|
||||
$values,
|
||||
@ -677,6 +704,27 @@ $table->data[6][1] = html_print_select(
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[7][0] = __('Safe operation mode').': '.ui_print_help_tip(
|
||||
__(
|
||||
'This mode allow %s to disable all modules
|
||||
of this agent while the selected module is on CRITICAL status',
|
||||
get_product_name()
|
||||
),
|
||||
true
|
||||
);
|
||||
$table->data[7][1] .= html_print_select(
|
||||
[
|
||||
1 => __('Enabled'),
|
||||
0 => __('Disabled'),
|
||||
],
|
||||
'safe_mode_change',
|
||||
-1,
|
||||
'',
|
||||
__('No change'),
|
||||
-1,
|
||||
true
|
||||
).' ';
|
||||
$table->data[7][1] .= __('Module').' '.html_print_select('', 'safe_mode_module', '', '', __('Any'), -1, true).'</div>';
|
||||
ui_toggle(html_print_table($table, true), __('Advanced options'));
|
||||
unset($table);
|
||||
|
||||
@ -810,6 +858,54 @@ $(document).ready (function () {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Enable Safe Operation Mode if 'Enabled' is selected.
|
||||
$("#safe_mode_module").attr("disabled", "disabled");
|
||||
$("#safe_mode_change").on('change', function() {
|
||||
if ($("#safe_mode_change").val() == 1) {
|
||||
$("#safe_mode_module").removeAttr("disabled");
|
||||
refreshSafeModules();
|
||||
}
|
||||
else {
|
||||
$("#safe_mode_module").attr("disabled", "disabled");
|
||||
$('#safe_mode_module').empty();
|
||||
$("#safe_mode_module").append($("<option></option>").attr("value", 'Any').html('Any'));
|
||||
}
|
||||
});
|
||||
|
||||
// Fill modules in Safe Operation Mode.
|
||||
function refreshSafeModules(){
|
||||
var idAgents = Array();
|
||||
jQuery.each ($("#id_agents option:selected"), function (i, val) {
|
||||
idAgents.push($(val).val());
|
||||
});
|
||||
|
||||
var params = {
|
||||
"page" : "operation/agentes/ver_agente",
|
||||
"get_agent_modules_json_for_multiple_agents" : 1,
|
||||
"id_agent" : idAgents,
|
||||
"selection_mode": "common"
|
||||
};
|
||||
|
||||
jQuery.post ("ajax.php",
|
||||
params,
|
||||
function (data, status) {
|
||||
$('#safe_mode_module').empty();
|
||||
if($.type(data) === "object"){
|
||||
jQuery.each (data, function (id, value) {
|
||||
option = $("<option></option>").attr("value", value).html(value);
|
||||
$("#safe_mode_module").append(option);
|
||||
});
|
||||
} else {
|
||||
option = $("<option></option>").attr("value", 'None').html('None');
|
||||
$("#safe_mode_module").append(option);
|
||||
}
|
||||
},
|
||||
"json"
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$("#form_agent").submit(function() {
|
||||
var get_parameters_count = window.location.href.slice(
|
||||
window.location.href.indexOf('?') + 1).split('&').length;
|
||||
@ -833,7 +929,7 @@ $(document).ready (function () {
|
||||
$("#id_group").trigger("change");
|
||||
});
|
||||
|
||||
$("#id_agents").change (function () {
|
||||
$('#id_agents').on('change', function() {
|
||||
var idAgents = Array();
|
||||
jQuery.each ($("#id_agents option:selected"), function (i, val) {
|
||||
idAgents.push($(val).val());
|
||||
@ -858,6 +954,10 @@ $(document).ready (function () {
|
||||
);
|
||||
|
||||
$("#form_agents").attr("style", "");
|
||||
|
||||
if($("#safe_mode_change").val() == 1) {
|
||||
refreshSafeModules();
|
||||
}
|
||||
});
|
||||
|
||||
$("#id_group").change (function () {
|
||||
|
@ -59,52 +59,36 @@ switch ($action) {
|
||||
$resultOperationDB = false;
|
||||
} else if (!empty($ids_serialize)) {
|
||||
$ids = explode('|', $ids_serialize);
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$items = db_get_all_rows_sql(
|
||||
'
|
||||
SELECT id_gs, `field_order`
|
||||
FROM tgraph_source
|
||||
WHERE id_graph = '.$id_graph.'
|
||||
ORDER BY `field_order`'
|
||||
);
|
||||
break;
|
||||
}
|
||||
$items = db_get_all_rows_sql(
|
||||
'SELECT id_gs, `field_order`
|
||||
FROM tgraph_source
|
||||
WHERE id_graph = '.$id_graph.'
|
||||
ORDER BY `field_order`'
|
||||
);
|
||||
|
||||
if ($items === false) {
|
||||
$items = [];
|
||||
}
|
||||
|
||||
|
||||
// Clean the repeated order values
|
||||
// Clean the repeated order values.
|
||||
$order_temp = 1;
|
||||
foreach ($items as $item) {
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
db_process_sql_update(
|
||||
'tgraph_source',
|
||||
['`field_order`' => $order_temp],
|
||||
['id_gs' => $item['id_rc']]
|
||||
);
|
||||
break;
|
||||
}
|
||||
db_process_sql_update(
|
||||
'tgraph_source',
|
||||
['`field_order`' => $order_temp],
|
||||
['id_gs' => $item['id_rc']]
|
||||
);
|
||||
|
||||
$order_temp++;
|
||||
}
|
||||
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$items = db_get_all_rows_sql(
|
||||
'
|
||||
SELECT id_gs, `field_order`
|
||||
FROM tgraph_source
|
||||
WHERE id_graph = '.$id_graph.'
|
||||
ORDER BY `field_order`'
|
||||
);
|
||||
break;
|
||||
}
|
||||
$items = db_get_all_rows_sql(
|
||||
'SELECT id_gs, `field_order`
|
||||
FROM tgraph_source
|
||||
WHERE id_graph = '.$id_graph.'
|
||||
ORDER BY `field_order`'
|
||||
);
|
||||
|
||||
if ($items === false) {
|
||||
$items = [];
|
||||
@ -116,7 +100,7 @@ switch ($action) {
|
||||
|
||||
$temp = [];
|
||||
foreach ($items as $item) {
|
||||
// Remove the contents from the block to sort
|
||||
// Remove the contents from the block to sort.
|
||||
if (array_search($item['id_gs'], $ids) === false) {
|
||||
$temp[$item['field_order']] = $item['id_gs'];
|
||||
}
|
||||
@ -150,16 +134,11 @@ switch ($action) {
|
||||
|
||||
|
||||
foreach ($items as $order => $id) {
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
|
||||
db_process_sql_update(
|
||||
'tgraph_source',
|
||||
['`field_order`' => ($order + 1)],
|
||||
['id_gs' => $id]
|
||||
);
|
||||
break;
|
||||
}
|
||||
db_process_sql_update(
|
||||
'tgraph_source',
|
||||
['`field_order`' => ($order + 1)],
|
||||
['id_gs' => $id]
|
||||
);
|
||||
}
|
||||
|
||||
$resultOperationDB = true;
|
||||
@ -211,7 +190,7 @@ if ($editGraph) {
|
||||
$weights = implode(',', $weight_array);
|
||||
}
|
||||
|
||||
// Modules table
|
||||
// Modules table.
|
||||
if (count($module_array) > 0) {
|
||||
echo "<table width='100%' cellpadding=4 cellpadding=4 class='databox filters'>";
|
||||
echo '<tr>
|
||||
@ -224,7 +203,7 @@ if (count($module_array) > 0) {
|
||||
<th>'.__('Sort').'</th>';
|
||||
$color = 0;
|
||||
for ($a = 0; $a < count($module_array); $a++) {
|
||||
// Calculate table line color
|
||||
// Calculate table line color.
|
||||
if ($color == 1) {
|
||||
$tdcolor = 'datos';
|
||||
$color = 0;
|
||||
@ -332,7 +311,7 @@ echo '</form>';
|
||||
echo '<br>';
|
||||
|
||||
|
||||
// Configuration form
|
||||
// Configuration form.
|
||||
echo '<span id ="none_text" style="display: none;">'.__('None').'</span>';
|
||||
echo "<form method='post' action='index.php?sec=reporting&sec2=godmode/reporting/graph_builder&tab=graph_editor&add_module=1&edit_graph=1&id=".$id_graph."'>";
|
||||
|
||||
@ -352,7 +331,7 @@ echo "<td colspan='3'>".html_print_select_groups(
|
||||
true
|
||||
).'</td>';
|
||||
echo '</tr><tr>';
|
||||
echo "<td style='vertical-align: top;'>".__('Agents').'</td>';
|
||||
echo "<td style='vertical-align: top;'>".__('Agents').ui_print_help_tip(__('If you select several agents, only the common modules will be displayed'), true).'</td>';
|
||||
echo '<td></td>';
|
||||
echo "<td style='vertical-align: top;'>".__('Modules').'</td>';
|
||||
echo '</tr><tr>';
|
||||
|
@ -125,6 +125,20 @@ if ($report_r && $report_w) {
|
||||
get_graphs_container(id_container,hash,time);
|
||||
}
|
||||
});
|
||||
|
||||
$("div[id^=period_container_] a").on('click', function(e){
|
||||
if ($("div[id^=period_container_][id$=_default]").css('display') == 'none') {
|
||||
$('#refresh_custom_time').show();
|
||||
$('#refresh_custom_time').on('click', function(e){
|
||||
var time = $('input[id *= hidden-period_container_'+hash+']').val();
|
||||
get_graphs_container(id_container,hash,time);
|
||||
});
|
||||
}
|
||||
else if ($("div[id^=period_container_][id$=_manual]").css('display') == 'none') {
|
||||
$('#refresh_custom_time').hide();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -454,10 +454,10 @@ if (!$maps && !is_metaconsole()) {
|
||||
4 => 'action_buttons',
|
||||
];
|
||||
$data[3] = '<a class="copy_visualmap" href="index.php?sec=network&sec2=godmode/reporting/map_builder&id_layout='.$map['id'].'&copy_layout=1">'.html_print_image('images/copy.png', true).'</a>';
|
||||
$data[4] = '<a class="delete_visualmap" href="index.php?sec=network&sec2=godmode/reporting/map_builder&id_layout='.$map['id'].'&delete_layout=1">'.html_print_image('images/cross.png', true).'</a>';
|
||||
$data[4] = '<a class="delete_visualmap" href="index.php?sec=network&sec2=godmode/reporting/map_builder&id_layout='.$map['id'].'&delete_layout=1" onclick="javascript: if (!confirm(\''.__('Are you sure?').'\n'.__('Delete').': '.$map['name'].'\')) return false;">'.html_print_image('images/cross.png', true).'</a>';
|
||||
} else {
|
||||
$data[3] = '<a class="copy_visualmap" href="index.php?sec=screen&sec2=screens/screens&action=visualmap&pure='.$pure.'&id_layout='.$map['id'].'&copy_layout=1">'.html_print_image('images/copy.png', true).'</a>';
|
||||
$data[4] = '<a class="delete_visualmap" href="index.php?sec=screen&sec2=screens/screens&action=visualmap&pure='.$pure.'&id_layout='.$map['id'].'&delete_layout=1">'.html_print_image('images/cross.png', true).'</a>';
|
||||
$data[4] = '<a class="delete_visualmap" href="index.php?sec=screen&sec2=screens/screens&action=visualmap&pure='.$pure.'&id_layout='.$map['id'].'&delete_layout=1" onclick="javascript: if (!confirm(\''.__('Are you sure?').'\n'.__('Delete').': '.$map['name'].'\')) return false;">'.html_print_image('images/cross.png', true).'</a>';
|
||||
}
|
||||
} else {
|
||||
$data[3] = '';
|
||||
|
@ -905,6 +905,28 @@ $class = 'databox filters';
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
if ($meta) {
|
||||
?>
|
||||
<tr id="row_servers" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Server'); ?></td>
|
||||
<td style="">
|
||||
<?php
|
||||
html_print_select(
|
||||
$servers,
|
||||
'combo_server',
|
||||
$server_name,
|
||||
'',
|
||||
__('Local metaconsole'),
|
||||
0
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<tr id="row_label" style="" class="datos">
|
||||
<td style="font-weight:bold;">
|
||||
<?php
|
||||
@ -1844,28 +1866,6 @@ $class = 'databox filters';
|
||||
<td style="" id="max_items_example"></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
if ($meta) {
|
||||
?>
|
||||
<tr id="row_servers" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Server'); ?></td>
|
||||
<td style="">
|
||||
<?php
|
||||
html_print_select(
|
||||
$servers,
|
||||
'combo_server',
|
||||
$server_name,
|
||||
'',
|
||||
__('Local metaconsole'),
|
||||
0
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<tr id="row_header" style="" class="datos">
|
||||
<td style="font-weight:bold;">
|
||||
<?php
|
||||
@ -3546,8 +3546,19 @@ $(document).ready (function () {
|
||||
// Load selected modules by default
|
||||
$("#id_agents2").trigger('click');
|
||||
|
||||
$('#combo_server').change (function (){
|
||||
$("#id_agents").html('');
|
||||
$("#id_agents2").html('');
|
||||
$("#module").html('');
|
||||
$("#inventory_modules").html('');
|
||||
})
|
||||
|
||||
$("#combo_group").change (
|
||||
function () {
|
||||
$("#id_agents").html('');
|
||||
$("#id_agents2").html('');
|
||||
$("#module").html('');
|
||||
$("#inventory_modules").html('');
|
||||
jQuery.post ("ajax.php",
|
||||
{"page" : "operation/agentes/ver_agente",
|
||||
"get_agents_group_json" : 1,
|
||||
@ -3557,9 +3568,6 @@ $(document).ready (function () {
|
||||
"recursion" : $('#checkbox-recursion').is(':checked')
|
||||
},
|
||||
function (data, status) {
|
||||
$("#id_agents").html('');
|
||||
$("#id_agents2").html('');
|
||||
$("#module").html('');
|
||||
jQuery.each (data, function (id, value) {
|
||||
// Remove keys_prefix from the index
|
||||
id = id.substring(1);
|
||||
@ -3587,9 +3595,7 @@ $(document).ready (function () {
|
||||
"recursion" : $('#checkbox-recursion').is(':checked')
|
||||
},
|
||||
function (data, status) {
|
||||
$("#id_agents").html('');
|
||||
$("#id_agents2").html('');
|
||||
$("#module").html('');
|
||||
jQuery.each (data, function (id, value) {
|
||||
// Remove keys_prefix from the index
|
||||
id = id.substring(1);
|
||||
@ -5174,6 +5180,29 @@ function chooseType() {
|
||||
$("#id_agents").change(event_change_id_agent_inventory);
|
||||
$("#id_agents").trigger('change');
|
||||
|
||||
$("#combo_server").change(function() {
|
||||
$('#hidden-date_selected').val('');
|
||||
updateInventoryDates(
|
||||
<?php
|
||||
echo '"'.ui_get_full_url(
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
).'"';
|
||||
?>
|
||||
);
|
||||
updateAgents($(this).val(),
|
||||
<?php
|
||||
echo '"'.ui_get_full_url(
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
).'"';
|
||||
?>
|
||||
);
|
||||
});
|
||||
$("#combo_group").change(function() {
|
||||
updateAgents($(this).val(),
|
||||
<?php
|
||||
@ -5203,6 +5232,30 @@ function chooseType() {
|
||||
|
||||
$("#row_servers").show();
|
||||
|
||||
$("#combo_server").change(function() {
|
||||
$('#hidden-date_selected').val('');
|
||||
updateInventoryDates(
|
||||
<?php
|
||||
echo '"'.ui_get_full_url(
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
).'"';
|
||||
?>
|
||||
);
|
||||
updateAgents($(this).val(),
|
||||
<?php
|
||||
echo '"'.ui_get_full_url(
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
).'"';
|
||||
?>
|
||||
);
|
||||
});
|
||||
|
||||
$("#combo_group").change(function() {
|
||||
$('#hidden-date_selected').val('');
|
||||
updateInventoryDates(
|
||||
|
@ -386,7 +386,7 @@ if ($items) {
|
||||
}
|
||||
|
||||
$table->head[4] = __('Time lapse');
|
||||
$table->head[5] = __('Name').' / '.__('Description');
|
||||
$table->head[5] = __('Name or Description');
|
||||
if (check_acl($config['id_user'], 0, 'RM')) {
|
||||
$table->head[6] = '<span title="'.__('Options').'">'.__('Op.').'</span>';
|
||||
if ($report_w || $report_m) {
|
||||
|
@ -15,7 +15,7 @@ global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
// Visual console required
|
||||
// Visual console required.
|
||||
if (empty($visualConsole)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
@ -425,7 +425,7 @@ $table->data['all_one_item_per_agent'][1] .= html_print_input_hidden(
|
||||
|
||||
|
||||
$table->rowstyle['all_4'] = 'display: none;';
|
||||
$table->data['all_4'][0] = __('Agents');
|
||||
$table->data['all_4'][0] = __('Agents').ui_print_help_tip(__('If you select several agents, only the common modules will be displayed'), true);
|
||||
|
||||
$agents_list = [];
|
||||
if (!is_metaconsole()) {
|
||||
@ -506,7 +506,7 @@ $table->data['all_8'][1] = html_print_select(
|
||||
VISUAL_MAP_WIZARD_PARENTS_NONE,
|
||||
true
|
||||
);
|
||||
$table->data['all_8'][2] = '<span id="parent_column_2_item_in_visual_map">'.__('Item in the map').'</span>'.'<span id="parent_column_2_relationship">'.ui_print_help_tip(
|
||||
$table->data['all_8'][2] = '<span id="parent_column_2_item_in_visual_map">'.__('Item in the map').'</span><span id="parent_column_2_relationship">'.ui_print_help_tip(
|
||||
__('The parenting relationships in %s will be drawn on the map.', get_product_name()),
|
||||
true
|
||||
).'</span>';
|
||||
|
@ -398,7 +398,7 @@ if (($create != '') || ($view != '')) {
|
||||
}
|
||||
|
||||
$data[1] .= ' <a href="index.php?sec=gservers&sec2=godmode/servers/plugin&filemanager=1&id_plugin='.$form_id.'" style="vertical-align: bottom;">';
|
||||
$data[1] .= html_print_image('images/file.png', true);
|
||||
$data[1] .= html_print_image('images/file.png', true, false, false, true);
|
||||
$data[1] .= '</a>';
|
||||
$table->data['plugin_command'] = $data;
|
||||
|
||||
|
@ -1038,8 +1038,13 @@ $row++;
|
||||
|
||||
$row++;
|
||||
|
||||
$table_report->data[$row][0] = __('PDF font size');
|
||||
$table_report->data[$row][1] = "<input type ='number' value=".$config['font_size_item_report']." size='1' name='font_size_item_report' min='1' max='9' step='0.1'>";
|
||||
$table_report->data[$row][0] = __('PDF font size (px)');
|
||||
$table_report->data[$row][1] = "<input type ='number' value=".$config['global_font_size_report']." name='global_font_size_report' min='1' max='50' step='1'>";
|
||||
|
||||
$row++;
|
||||
|
||||
$table_report->data[$row][0] = __('HTML font size for SLA (em)');
|
||||
$table_report->data[$row][1] = "<input type ='number' value=".$config['font_size_item_report']." name='font_size_item_report' min='1' max='9' step='0.1'>";
|
||||
|
||||
$row++;
|
||||
|
||||
@ -1049,6 +1054,7 @@ $row++;
|
||||
true
|
||||
);
|
||||
$table_report->data[$row][1] = html_print_input_text('graph_image_height', $config['graph_image_height'], '', 20, 20, true);
|
||||
|
||||
$row++;
|
||||
|
||||
$interval_description = [
|
||||
|
@ -101,7 +101,7 @@
|
||||
width: 15px;
|
||||
}
|
||||
.fileupload_form ul li div {
|
||||
display: block;
|
||||
display: block !important;
|
||||
}
|
||||
.fileupload_form ul li.working span {
|
||||
background-position: 0 -12px;
|
||||
|
BIN
pandora_console/images/default_docs.png
Executable file
After Width: | Height: | Size: 280 B |
0
pandora_console/images/default_list.png
Normal file → Executable file
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 402 B |
BIN
pandora_console/images/default_support.png
Executable file
After Width: | Height: | Size: 485 B |
BIN
pandora_console/images/demo_background.jpg
Normal file
After Width: | Height: | Size: 268 KiB |
BIN
pandora_console/images/demo_background_left.jpg
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
pandora_console/images/demo_background_left.png
Normal file
After Width: | Height: | Size: 354 KiB |
BIN
pandora_console/images/demo_background_right.jpg
Normal file
After Width: | Height: | Size: 389 KiB |
BIN
pandora_console/images/demo_background_right.png
Normal file
After Width: | Height: | Size: 872 KiB |
BIN
pandora_console/images/demo_logo_spinner.gif
Normal file
After Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.8 KiB |
@ -171,8 +171,9 @@ if ($get_graphs) {
|
||||
'',
|
||||
false,
|
||||
$periods,
|
||||
'vertical-align: middle;'
|
||||
'vertical-align: middle; margin-bottom:0;'
|
||||
);
|
||||
$single_table .= html_print_image('images/refresh_mc.png', true, ['id' => 'refresh_custom_time', 'title' => 'Refresh graph', 'style' => 'cursor:pointer; vertical-align: middle; display:none;']);
|
||||
$single_table .= '</td>';
|
||||
$single_table .= '</tr>';
|
||||
$single_table .= '</table>';
|
||||
|
62
pandora_console/include/ajax/order_interpreter.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/**
|
||||
* Order interpreter ajax controller.
|
||||
*
|
||||
* @category OrderInterpreter
|
||||
* @package Pandora FMS
|
||||
* @subpackage New Installation Welcome Window
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
global $config;
|
||||
|
||||
require_once $config['homedir'].'/include/class/OrderInterpreter.class.php';
|
||||
|
||||
if (is_ajax() === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$ajaxPage = 'include/ajax/order_interpreter';
|
||||
|
||||
// Control call flow.
|
||||
try {
|
||||
// User access and validation is being processed on class constructor.
|
||||
$order_interpreter = new OrderInterpreter(true, $ajaxPage);
|
||||
} catch (Exception $e) {
|
||||
exit;
|
||||
}
|
||||
|
||||
// Ajax controller.
|
||||
$method = get_parameter('method', '');
|
||||
|
||||
if (method_exists($order_interpreter, $method) === true) {
|
||||
if ($order_interpreter->ajaxMethod($method) === true) {
|
||||
$order_interpreter->{$method}();
|
||||
} else {
|
||||
$order_interpreter->error('Unavailable method.');
|
||||
}
|
||||
} else {
|
||||
$order_interpreter->error('Method not found. ['.$method.']');
|
||||
}
|
||||
|
||||
// Stop any execution.
|
||||
exit;
|
@ -266,9 +266,10 @@ if ($install_package) {
|
||||
[$version]
|
||||
);
|
||||
|
||||
$product_name = io_safe_output(get_product_name());
|
||||
db_pandora_audit(
|
||||
'Update '.get_product_name(),
|
||||
"Update version: $version of ".get_product_name().' by '.$config['id_user']
|
||||
'Update '.$product_name,
|
||||
"Update version: $version of ".$product_name.' by '.$config['id_user']
|
||||
);
|
||||
|
||||
$return['status'] = 'success';
|
||||
|
@ -1283,7 +1283,7 @@ switch ($action) {
|
||||
[
|
||||
'disabled' => 0,
|
||||
'id_agente' => $elementFields['id_agent'],
|
||||
'tagente_modulo.id_tipo_modulo IN' => '(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,17,23,3,10,33)',
|
||||
'tagente_modulo.id_tipo_modulo IN' => '(17,23,3,10,33)',
|
||||
]
|
||||
);
|
||||
|
||||
|
@ -391,13 +391,6 @@ class ConsoleSupervisor
|
||||
|
||||
$this->checkDefaultPassword();
|
||||
|
||||
/*
|
||||
* Check if there's an active subscription.
|
||||
* NOTIF.NEWSLETTER.SUBSCRIPTION
|
||||
*/
|
||||
|
||||
$this->checkNewsletterSubscription();
|
||||
|
||||
/*
|
||||
* Check if there're new updates.
|
||||
* NOTIF.UPDATEMANAGER.OPENSETUP
|
||||
@ -608,7 +601,6 @@ class ConsoleSupervisor
|
||||
case 'NOTIF.MISC.DEVELOPBYPASS':
|
||||
case 'NOTIF.MISC.FONTPATH':
|
||||
case 'NOTIF.SECURITY.DEFAULT_PASSWORD':
|
||||
case 'NOTIF.NEWSLETTER.SUBSCRIPTION':
|
||||
case 'NOTIF.UPDATEMANAGER.OPENSETUP':
|
||||
case 'NOTIF.UPDATEMANAGER.UPDATE':
|
||||
case 'NOTIF.UPDATEMANAGER.MINOR':
|
||||
@ -2000,41 +1992,6 @@ class ConsoleSupervisor
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if instance is subscribed to newsletter.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function checkNewsletterSubscription()
|
||||
{
|
||||
global $config;
|
||||
$login = get_parameter('login', false);
|
||||
|
||||
// Newsletter advice.
|
||||
$newsletter = db_get_value(
|
||||
'middlename',
|
||||
'tusuario',
|
||||
'id_user',
|
||||
$config['id_user']
|
||||
);
|
||||
if (!$config['disabled_newsletter']
|
||||
&& $newsletter != 1
|
||||
&& $login === false
|
||||
) {
|
||||
$this->notify(
|
||||
[
|
||||
'type' => 'NOTIF.NEWSLETTER.SUBSCRIPTION',
|
||||
'title' => __('Not subscribed to the newsletter'),
|
||||
'message' => __('Click <a style="font-weight:bold; text-decoration:underline" href="javascript: force_run_newsletter();"> here</a> to subscribe to the newsletter'),
|
||||
'url' => 'javascript: force_run_newsletter();',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$this->cleanNotifications('NOTIF.NEWSLETTER.SUBSCRIPTION');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if user 'admin' is enabled and using default password.
|
||||
*
|
||||
|
@ -1341,6 +1341,9 @@ class NetworkMap
|
||||
&& $rel['child_type'] == NODE_MODULE
|
||||
) {
|
||||
// Module information available.
|
||||
$id_parent = $rel['id_parent_source_data'];
|
||||
$id_child = $rel['id_child_source_data'];
|
||||
|
||||
$priority = 1;
|
||||
$valid = 1;
|
||||
|
||||
@ -1655,7 +1658,6 @@ class NetworkMap
|
||||
$node['style']['label'] = $node['name'];
|
||||
}
|
||||
|
||||
$node['style']['shape'] = 'circle';
|
||||
if (isset($source_data['color'])) {
|
||||
$item['color'] = $source_data['color'];
|
||||
} else {
|
||||
@ -2957,7 +2959,7 @@ class NetworkMap
|
||||
'',
|
||||
0,
|
||||
true
|
||||
).' <span id="shape_icon_in_progress" style="display: none;">'.html_print_image('images/spinner.gif', true).'</span><span id="shape_icon_correct" style="display: none;">'.html_print_image('images/dot_green.png', true).'</span><span id="shape_icon_fail" style="display: none;">'.html_print_image('images/dot_red.png', true).'</span>';
|
||||
).' <span id="shape_icon_in_progress" style="display: none;">'.html_print_image('images/spinner.gif', true).'</span><span id="shape_icon_correct" style="display: none;">'.html_print_image('images/success.png', true, ['width' => '18px']).'</span><span id="shape_icon_fail" style="display: none;">'.html_print_image('images/icono-bad.png', true, ['width' => '18px']).'</span>';
|
||||
$table->data['node_name'][0] = __('Name');
|
||||
$table->data['node_name'][1] = html_print_input_text(
|
||||
'edit_name_node',
|
||||
|
453
pandora_console/include/class/OrderInterpreter.class.php
Normal file
@ -0,0 +1,453 @@
|
||||
<?php
|
||||
/**
|
||||
* Welcome to Pandora FMS feature.
|
||||
*
|
||||
* @category Class
|
||||
* @package Pandora FMS
|
||||
* @subpackage Order Interpreter
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
global $config;
|
||||
|
||||
require_once $config['homedir'].'/godmode/wizards/Wizard.main.php';
|
||||
ui_require_css_file('order_interpreter');
|
||||
|
||||
/**
|
||||
* Class OrderInterpreter.
|
||||
*/
|
||||
class OrderInterpreter extends Wizard
|
||||
{
|
||||
|
||||
/**
|
||||
* Allowed methods to be called using AJAX request.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $AJAXMethods = ['getResult'];
|
||||
|
||||
/**
|
||||
* Url of controller.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $ajaxController;
|
||||
|
||||
|
||||
/**
|
||||
* Generates a JSON error.
|
||||
*
|
||||
* @param string $msg Error message.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function error($msg)
|
||||
{
|
||||
echo json_encode(
|
||||
['error' => $msg]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if target method is available to be called using AJAX.
|
||||
*
|
||||
* @param string $method Target method.
|
||||
*
|
||||
* @return boolean True allowed, false not.
|
||||
*/
|
||||
public function ajaxMethod($method)
|
||||
{
|
||||
global $config;
|
||||
|
||||
// Check access.
|
||||
check_login();
|
||||
|
||||
return in_array($method, $this->AJAXMethods);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $ajax_controller Controller.
|
||||
*
|
||||
* @return object
|
||||
* @throws Exception On error.
|
||||
*/
|
||||
public function __construct(
|
||||
$ajax_controller='include/ajax/order_interpreter'
|
||||
) {
|
||||
global $config;
|
||||
$this->ajaxController = $ajax_controller;
|
||||
|
||||
$this->pages_menu = [
|
||||
[
|
||||
'name' => __('Tactical View'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/op_monitoring.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=view&sec2=operation/agentes/tactical'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'AR'
|
||||
) || check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'AW'
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('Agent Management'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/gm_resources.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'AW'
|
||||
) && check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'AD'
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('General Setup'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/gm_setup.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=general&sec2=godmode/setup/setup§ion=general'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'PM'
|
||||
) || is_user_admin(
|
||||
$config['id_user']
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('Manage Policies'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/gm_configuration.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=gmodules&sec2=enterprise/godmode/policies/policies'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'AW'
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('List Alerts'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/gm_alerts.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=galertas&sec2=godmode/alerts/alert_list'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'LW'
|
||||
)
|
||||
|| check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'AD'
|
||||
)
|
||||
|| check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'LM'
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('View Events'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/op_events.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=eventos&sec2=operation/events/events'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'ER'
|
||||
) ||
|
||||
check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'EW'
|
||||
) ||
|
||||
check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'EM'
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('Dashboard'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/op_reporting.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=reporting&sec2=enterprise/dashboard/dashboards'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'RR'
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('Visual Console'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/op_network.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=network&sec2=godmode/reporting/map_builder'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'VR'
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('Manage Servers'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/gm_servers.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=gservers&sec2=godmode/servers/modificar_server'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'AW'
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('Edit User'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/gm_users.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=workspace&sec2=operation/users/user_edit'
|
||||
),
|
||||
'acl' => true,
|
||||
],
|
||||
[
|
||||
'name' => __('Tree View'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/op_monitoring.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=view&sec2=operation/tree'
|
||||
),
|
||||
'acl' => true,
|
||||
],
|
||||
[
|
||||
'name' => __('Network Component'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/gm_configuration.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=gmodules&sec2=godmode/modules/manage_network_components'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'PM'
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('Task List'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/gm_discovery.menu.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=discovery&sec2=godmode/servers/discovery&wiz=tasklist'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'AR'
|
||||
)
|
||||
|| check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'AW'
|
||||
)
|
||||
|| check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'AM'
|
||||
)
|
||||
|| check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'RR'
|
||||
)
|
||||
|| check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'RW'
|
||||
)
|
||||
|| check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'RM'
|
||||
)
|
||||
|| check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'PM'
|
||||
),
|
||||
],
|
||||
[
|
||||
'name' => __('Update Manager'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/um_messages.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=messages&sec2=godmode/update_manager/update_manager&tab=setup'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'PM'
|
||||
) && is_user_admin($config['id_user']),
|
||||
],
|
||||
[
|
||||
'name' => __('Manage Agent Groups'),
|
||||
'icon' => ui_get_full_url(
|
||||
'images/gm_users.menu_gray.png'
|
||||
),
|
||||
'url' => ui_get_full_url(
|
||||
'index.php?sec=gagente&sec2=godmode/groups/group_list&tab=groups'
|
||||
),
|
||||
'acl' => check_acl(
|
||||
$config['id_user'],
|
||||
0,
|
||||
'PM'
|
||||
),
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Method to print order interpreted on header search input.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getResult()
|
||||
{
|
||||
global $config;
|
||||
|
||||
// Take value from input search.
|
||||
$text = get_parameter('text', '');
|
||||
$array_found = [];
|
||||
$iterator = 0;
|
||||
$more_results = 0;
|
||||
|
||||
if ($text !== '') {
|
||||
echo '<div class="show_result_interpreter">';
|
||||
echo '<ul id="result_items">';
|
||||
|
||||
foreach ($this->pages_menu as $key => $value) {
|
||||
if (preg_match(
|
||||
'/.*'.io_safe_output($text).'.*/i',
|
||||
__('GO TO '.$value['name'])
|
||||
) && $value['acl']
|
||||
) {
|
||||
if ($iterator <= 9) {
|
||||
echo '<li class="list_found" name="'.$iterator.'" id="'.$iterator.'">';
|
||||
echo '
|
||||
Go to
|
||||
<img src="'.$this->pages_menu[$key]['icon'].'">';
|
||||
echo '
|
||||
<a href="'.$this->pages_menu[$key]['url'].'">
|
||||
'.$value['name'].'</a><br>';
|
||||
}
|
||||
|
||||
$iterator ++;
|
||||
|
||||
if ($iterator > 10) {
|
||||
$more_results ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($iterator > 9) {
|
||||
echo '</li>';
|
||||
}
|
||||
|
||||
echo $this->loadJS();
|
||||
echo '</ul>';
|
||||
if ($iterator > 10) {
|
||||
echo '<div class="more_results">
|
||||
+ '.$more_results.' '.__('results found').'</div>';
|
||||
}
|
||||
|
||||
if ($iterator === 0) {
|
||||
echo __('No results found');
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load JS content.
|
||||
* function to create JS actions.
|
||||
*
|
||||
* @return string HTML code for javascript functionality.
|
||||
*/
|
||||
public function loadJS()
|
||||
{
|
||||
ob_start();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
|
||||
</script>
|
||||
<?php
|
||||
return ob_get_clean();
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -396,7 +396,11 @@ class WelcomeWindow extends Wizard
|
||||
$logo_url = ENTERPRISE_DIR.'/';
|
||||
}
|
||||
|
||||
$logo_url .= 'images/custom_logo/'.$config['custom_logo_white_bg'];
|
||||
if (empty($config['custom_logo_white_bg']) === false) {
|
||||
$logo_url .= 'images/custom_logo/'.$config['custom_logo_white_bg'];
|
||||
} else {
|
||||
$logo_url .= 'images/custom_logo/pandora_logo_head_white_bg.png';
|
||||
}
|
||||
|
||||
$inputs = [
|
||||
[
|
||||
|
@ -20,7 +20,7 @@
|
||||
/**
|
||||
* Pandora build version and version
|
||||
*/
|
||||
$build_version = 'PC191218';
|
||||
$build_version = 'PC200109';
|
||||
$pandora_version = 'v7.0NG.742';
|
||||
|
||||
// Do not overwrite default timezone set if defined.
|
||||
|
@ -3070,21 +3070,20 @@ function api_get_policy_modules($thrash1, $thrash2, $other, $thrash3)
|
||||
|
||||
|
||||
/**
|
||||
* Create a network module in agent. And return the id_agent_module of new module.
|
||||
* Create a network module in agent.
|
||||
* And return the id_agent_module of new module.
|
||||
*
|
||||
* @param string $id Name of agent to add the module.
|
||||
* @param $thrash1 Don't use.
|
||||
* @param array $other it's array, $other as param is <name_module>;<disabled>;<id_module_type>;
|
||||
* <id_module_group>;<min_warning>;<max_warning>;<str_warning>;<min_critical>;<max_critical>;<str_critical>;<ff_threshold>;
|
||||
* <history_data>;<ip_target>;<module_port>;<snmp_community>;<snmp_oid>;<module_interval>;<post_process>;
|
||||
* <min>;<max>;<custom_id>;<description>;<disabled_types_event>;<module_macros>;
|
||||
* <each_ff>;<ff_threshold_normal>;<ff_threshold_warning>;<ff_threshold_critical>; in this order
|
||||
* and separator char (after text ; ) and separator (pass in param othermode as othermode=url_encode_separator_<separator>)
|
||||
* example:
|
||||
*
|
||||
* api.php?op=set&op2=create_network_module&id=pepito&other=prueba|0|7|1|10|15|0|16|18|0|15|0|www.google.es|0||0|180|0|0|0|0|latency%20ping&other_mode=url_encode_separator_|
|
||||
*
|
||||
* @param $thrash3 Don't use
|
||||
* @param string $id Name of agent to add the module.
|
||||
* @param string $thrash1 Don't use.
|
||||
* @param array $other It's array, $other as param is <name_module>;<disabled>;<id_module_type>;
|
||||
* <id_module_group>;<min_warning>;<max_warning>;<str_warning>;<min_critical>;<max_critical>;<str_critical>;<ff_threshold>;
|
||||
* <history_data>;<ip_target>;<module_port>;<snmp_community>;<snmp_oid>;<module_interval>;<post_process>;
|
||||
* <min>;<max>;<custom_id>;<description>;<disabled_types_event>;<module_macros>;
|
||||
* <each_ff>;<ff_threshold_normal>;<ff_threshold_warning>;<ff_threshold_critical>; in this order
|
||||
* and separator char (after text ; ) and separator (pass in param othermode as othermode=url_encode_separator_<separator>).
|
||||
* @param string $thrash3 Don't use.
|
||||
* @example: api.php?op=set&op2=create_network_module&id=pepito&other=prueba|0|7|1|10|15|0|16|18|0|15|0|www.google.es|0||0|180|0|0|0|0|latency%20ping&other_mode=url_encode_separator_|*
|
||||
* @return mixed Return.
|
||||
*/
|
||||
function api_set_create_network_module($id, $thrash1, $other, $thrash3)
|
||||
{
|
||||
@ -3155,16 +3154,17 @@ function api_set_create_network_module($id, $thrash1, $other, $thrash3)
|
||||
'min_ff_event_critical' => $other['data'][27],
|
||||
'critical_inverse' => $other['data'][28],
|
||||
'warning_inverse' => $other['data'][29],
|
||||
'ff_type' => $other['data'][30],
|
||||
];
|
||||
|
||||
if (! $values['descripcion']) {
|
||||
$values['descripcion'] = '';
|
||||
// Column 'descripcion' cannot be null
|
||||
// Column 'descripcion' cannot be null.
|
||||
}
|
||||
|
||||
if (! $values['module_macros']) {
|
||||
$values['module_macros'] = '';
|
||||
// Column 'module_macros' cannot be null
|
||||
// Column 'module_macros' cannot be null.
|
||||
}
|
||||
|
||||
if ($agent_by_alias) {
|
||||
@ -3190,7 +3190,7 @@ function api_set_create_network_module($id, $thrash1, $other, $thrash3)
|
||||
}
|
||||
|
||||
if (is_error($idModule)) {
|
||||
// TODO: Improve the error returning more info
|
||||
// TODO: Improve the error returning more info.
|
||||
returnError('error_create_network_module', __('Error in creation network module.'));
|
||||
} else {
|
||||
returnData('string', ['type' => 'string', 'data' => $idModule]);
|
||||
@ -3307,6 +3307,7 @@ function api_set_update_network_module($id_module, $thrash1, $other, $thrash3)
|
||||
'critical_inverse',
|
||||
'warning_inverse',
|
||||
'policy_linked',
|
||||
'ff_type',
|
||||
];
|
||||
|
||||
$values = [];
|
||||
@ -3420,16 +3421,17 @@ function api_set_create_plugin_module($id, $thrash1, $other, $thrash3)
|
||||
'min_ff_event_critical' => $other['data'][32],
|
||||
'critical_inverse' => $other['data'][33],
|
||||
'warning_inverse' => $other['data'][34],
|
||||
'ff_type' => $other['data'][35],
|
||||
];
|
||||
|
||||
if (! $values['descripcion']) {
|
||||
$values['descripcion'] = '';
|
||||
// Column 'descripcion' cannot be null
|
||||
// Column 'descripcion' cannot be null.
|
||||
}
|
||||
|
||||
if (! $values['module_macros']) {
|
||||
$values['module_macros'] = '';
|
||||
// Column 'module_macros' cannot be null
|
||||
// Column 'module_macros' cannot be null.
|
||||
}
|
||||
|
||||
if ($agent_by_alias) {
|
||||
@ -3455,7 +3457,7 @@ function api_set_create_plugin_module($id, $thrash1, $other, $thrash3)
|
||||
}
|
||||
|
||||
if (is_error($idModule)) {
|
||||
// TODO: Improve the error returning more info
|
||||
// TODO: Improve the error returning more info.
|
||||
returnError('error_create_plugin_module', __('Error in creation plugin module.'));
|
||||
} else {
|
||||
returnData('string', ['type' => 'string', 'data' => $idModule]);
|
||||
@ -3562,6 +3564,7 @@ function api_set_update_plugin_module($id_module, $thrash1, $other, $thrash3)
|
||||
'critical_inverse',
|
||||
'warning_inverse',
|
||||
'policy_linked',
|
||||
'ff_type',
|
||||
];
|
||||
|
||||
$values = [];
|
||||
@ -3669,16 +3672,17 @@ function api_set_create_data_module($id, $thrash1, $other, $thrash3)
|
||||
'ff_timeout' => $other['data'][23],
|
||||
'critical_inverse' => $other['data'][24],
|
||||
'warning_inverse' => $other['data'][25],
|
||||
'ff_type' => $other['data'][26],
|
||||
];
|
||||
|
||||
if (! $values['descripcion']) {
|
||||
$values['descripcion'] = '';
|
||||
// Column 'descripcion' cannot be null
|
||||
// Column 'descripcion' cannot be null.
|
||||
}
|
||||
|
||||
if (! $values['module_macros']) {
|
||||
$values['module_macros'] = '';
|
||||
// Column 'module_macros' cannot be null
|
||||
// Column 'module_macros' cannot be null.
|
||||
}
|
||||
|
||||
if ($agent_by_alias) {
|
||||
@ -3704,7 +3708,7 @@ function api_set_create_data_module($id, $thrash1, $other, $thrash3)
|
||||
}
|
||||
|
||||
if (is_error($idModule)) {
|
||||
// TODO: Improve the error returning more info
|
||||
// TODO: Improve the error returning more info.
|
||||
returnError('error_create_data_module', __('Error in creation data module.'));
|
||||
} else {
|
||||
returnData('string', ['type' => 'string', 'data' => $idModule]);
|
||||
@ -3785,7 +3789,7 @@ function api_set_create_synthetic_module($id, $agent_by_alias, $other, $thrash3)
|
||||
|
||||
if (! $values['descripcion']) {
|
||||
$values['descripcion'] = '';
|
||||
// Column 'descripcion' cannot be null
|
||||
// Column 'descripcion' cannot be null.
|
||||
}
|
||||
|
||||
if ($agent_by_alias) {
|
||||
@ -3795,7 +3799,7 @@ function api_set_create_synthetic_module($id, $agent_by_alias, $other, $thrash3)
|
||||
$idModule = modules_create_agent_module($idAgent, $name, $values, true);
|
||||
|
||||
if (is_error($idModule)) {
|
||||
// TODO: Improve the error returning more info
|
||||
// TODO: Improve the error returning more info.
|
||||
returnError('error_create_data_module', __('Error in creation data module.'));
|
||||
} else {
|
||||
$synthetic_type = $other['data'][1];
|
||||
@ -4190,6 +4194,7 @@ function api_set_update_data_module($id_module, $thrash1, $other, $thrash3)
|
||||
'critical_inverse',
|
||||
'warning_inverse',
|
||||
'policy_linked',
|
||||
'ff_type',
|
||||
];
|
||||
|
||||
$values = [];
|
||||
@ -4277,7 +4282,7 @@ function api_set_create_snmp_module($id, $thrash1, $other, $thrash3)
|
||||
$disabled_types_event[EVENTS_GOING_UNKNOWN] = (int) !$other['data'][27];
|
||||
$disabled_types_event = json_encode($disabled_types_event);
|
||||
|
||||
// SNMP version 3
|
||||
// SNMP version 3.
|
||||
if ($other['data'][14] == '3') {
|
||||
if ($other['data'][23] != 'AES' and $other['data'][23] != 'DES') {
|
||||
returnError('error_create_snmp_module', __('Error in creation SNMP module. snmp3_priv_method doesn\'t exist. Set it to \'AES\' or \'DES\'. '));
|
||||
@ -4329,6 +4334,7 @@ function api_set_create_snmp_module($id, $thrash1, $other, $thrash3)
|
||||
'min_ff_event_normal' => $other['data'][31],
|
||||
'min_ff_event_warning' => $other['data'][32],
|
||||
'min_ff_event_critical' => $other['data'][33],
|
||||
'ff_type' => $other['data'][34],
|
||||
];
|
||||
} else {
|
||||
$values = [
|
||||
@ -4360,12 +4366,13 @@ function api_set_create_snmp_module($id, $thrash1, $other, $thrash3)
|
||||
'min_ff_event_normal' => $other['data'][25],
|
||||
'min_ff_event_warning' => $other['data'][26],
|
||||
'min_ff_event_critical' => $other['data'][27],
|
||||
'ff_type' => $other['data'][28],
|
||||
];
|
||||
}
|
||||
|
||||
if (! $values['descripcion']) {
|
||||
$values['descripcion'] = '';
|
||||
// Column 'descripcion' cannot be null
|
||||
// Column 'descripcion' cannot be null.
|
||||
}
|
||||
|
||||
if ($agent_by_alias) {
|
||||
@ -4528,6 +4535,7 @@ function api_set_update_snmp_module($id_module, $thrash1, $other, $thrash3)
|
||||
'min_ff_event_warning',
|
||||
'min_ff_event_critical',
|
||||
'policy_linked',
|
||||
'ff_type',
|
||||
];
|
||||
} else {
|
||||
$snmp_module_fields = [
|
||||
@ -4559,6 +4567,7 @@ function api_set_update_snmp_module($id_module, $thrash1, $other, $thrash3)
|
||||
'min_ff_event_warning',
|
||||
'min_ff_event_critical',
|
||||
'policy_linked',
|
||||
'ff_type',
|
||||
];
|
||||
}
|
||||
|
||||
@ -4656,6 +4665,7 @@ function api_set_new_network_component($id, $thrash1, $other, $thrash2)
|
||||
'min_ff_event_normal' => $other['data'][20],
|
||||
'min_ff_event_warning' => $other['data'][21],
|
||||
'min_ff_event_critical' => $other['data'][22],
|
||||
'ff_type' => $other['data'][23],
|
||||
];
|
||||
|
||||
$name_check = db_get_value('name', 'tnetwork_component', 'name', $id);
|
||||
@ -4756,6 +4766,7 @@ function api_set_new_plugin_component($id, $thrash1, $other, $thrash2)
|
||||
'min_ff_event_normal' => $other['data'][24],
|
||||
'min_ff_event_warning' => $other['data'][25],
|
||||
'min_ff_event_critical' => $other['data'][26],
|
||||
'ff_type' => $other['data'][27],
|
||||
];
|
||||
|
||||
$name_check = db_get_value('name', 'tnetwork_component', 'name', $id);
|
||||
@ -4891,6 +4902,7 @@ function api_set_new_snmp_component($id, $thrash1, $other, $thrash2)
|
||||
'min_ff_event_normal' => $other['data'][29],
|
||||
'min_ff_event_warning' => $other['data'][30],
|
||||
'min_ff_event_critical' => $other['data'][31],
|
||||
'ff_type' => $other['data'][32],
|
||||
];
|
||||
} else {
|
||||
$values = [
|
||||
@ -4922,6 +4934,7 @@ function api_set_new_snmp_component($id, $thrash1, $other, $thrash2)
|
||||
'min_ff_event_normal' => $other['data'][25],
|
||||
'min_ff_event_warning' => $other['data'][26],
|
||||
'min_ff_event_critical' => $other['data'][27],
|
||||
'ff_type' => $other['data'][28],
|
||||
];
|
||||
}
|
||||
|
||||
@ -5002,6 +5015,7 @@ function api_set_new_local_component($id, $thrash1, $other, $thrash2)
|
||||
'min_ff_event_warning' => $other['data'][8],
|
||||
'min_ff_event_critical' => $other['data'][9],
|
||||
'ff_timeout' => $other['data'][10],
|
||||
'ff_type' => $other['data'][11],
|
||||
];
|
||||
|
||||
$name_check = enterprise_hook(
|
||||
@ -6835,6 +6849,7 @@ function api_set_add_data_module_policy($id, $thrash1, $other, $thrash3)
|
||||
$values['min_ff_event_warning'] = $other['data'][21];
|
||||
$values['min_ff_event_critical'] = $other['data'][22];
|
||||
$values['ff_timeout'] = $other['data'][23];
|
||||
$values['ff_type'] = $other['data'][24];
|
||||
|
||||
if ($name_module_policy !== false) {
|
||||
if ($name_module_policy[0]['name'] == $other['data'][0]) {
|
||||
@ -7076,6 +7091,7 @@ function api_set_add_network_module_policy($id, $thrash1, $other, $thrash3)
|
||||
$values['min_ff_event_normal'] = $other['data'][24];
|
||||
$values['min_ff_event_warning'] = $other['data'][25];
|
||||
$values['min_ff_event_critical'] = $other['data'][26];
|
||||
$values['ff_type'] = $other['data'][27];
|
||||
|
||||
if ($name_module_policy !== false) {
|
||||
if ($name_module_policy[0]['name'] == $other['data'][0]) {
|
||||
@ -7134,7 +7150,7 @@ function api_set_update_network_module_policy($id, $thrash1, $other, $thrash3)
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if the module exists
|
||||
// Check if the module exists.
|
||||
$module_policy = enterprise_hook('policies_get_modules', [$id, ['id' => $other['data'][0]], 'id_module']);
|
||||
|
||||
if ($module_policy === false) {
|
||||
@ -7241,7 +7257,7 @@ function api_set_add_plugin_module_policy($id, $thrash1, $other, $thrash3)
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if the module is already in the policy
|
||||
// Check if the module is already in the policy.
|
||||
$name_module_policy = enterprise_hook('policies_get_modules', [$id, ['name' => $other['data'][0]], 'name']);
|
||||
|
||||
if ($name_module_policy === ENTERPRISE_NOT_HOOK) {
|
||||
@ -7285,6 +7301,7 @@ function api_set_add_plugin_module_policy($id, $thrash1, $other, $thrash3)
|
||||
$values['min_ff_event_normal'] = $other['data'][29];
|
||||
$values['min_ff_event_warning'] = $other['data'][30];
|
||||
$values['min_ff_event_critical'] = $other['data'][31];
|
||||
$values['ff_type'] = $other['data'][32];
|
||||
|
||||
if ($name_module_policy !== false) {
|
||||
if ($name_module_policy[0]['name'] == $other['data'][0]) {
|
||||
@ -7344,7 +7361,7 @@ function api_set_update_plugin_module_policy($id, $thrash1, $other, $thrash3)
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if the module exists
|
||||
// Check if the module exists.
|
||||
$module_policy = enterprise_hook('policies_get_modules', [$id, ['id' => $other['data'][0]], 'id_module']);
|
||||
|
||||
if ($module_policy === false) {
|
||||
@ -7449,10 +7466,10 @@ function api_set_add_module_in_conf($id_agent, $module_name, $configuration_data
|
||||
|
||||
$new_configuration_data = io_safe_output(urldecode($configuration_data['data']));
|
||||
|
||||
// Check if exist a current module with the same name in the conf file
|
||||
// Check if exist a current module with the same name in the conf file.
|
||||
$old_configuration_data = config_agents_get_module_from_conf($id_agent, io_safe_output($module_name));
|
||||
|
||||
// If exists a module with same name, abort
|
||||
// If exists a module with same name, abort.
|
||||
if (!empty($old_configuration_data)) {
|
||||
returnError('error_adding_module_conf', '-2');
|
||||
exit;
|
||||
@ -7571,7 +7588,7 @@ function api_set_update_module_in_conf($id_agent, $module_name, $configuration_d
|
||||
|
||||
$new_configuration_data = io_safe_output(urldecode($configuration_data_serialized['data']));
|
||||
|
||||
// Get current configuration
|
||||
// Get current configuration.
|
||||
$old_configuration_data = config_agents_get_module_from_conf($id_agent, io_safe_output($module_name));
|
||||
|
||||
// If not exists
|
||||
@ -7580,7 +7597,7 @@ function api_set_update_module_in_conf($id_agent, $module_name, $configuration_d
|
||||
exit;
|
||||
}
|
||||
|
||||
// If current configuration and new configuration are equal, abort
|
||||
// If current configuration and new configuration are equal, abort.
|
||||
if ($new_configuration_data == $old_configuration_data) {
|
||||
returnData('string', ['type' => 'string', 'data' => '1']);
|
||||
exit;
|
||||
@ -7702,6 +7719,7 @@ function api_set_add_snmp_module_policy($id, $thrash1, $other, $thrash3)
|
||||
'min_ff_event_normal' => $other['data'][30],
|
||||
'min_ff_event_warning' => $other['data'][31],
|
||||
'min_ff_event_critical' => $other['data'][32],
|
||||
'ff_type' => $other['data'][33],
|
||||
];
|
||||
} else {
|
||||
$values = [
|
||||
@ -7731,6 +7749,7 @@ function api_set_add_snmp_module_policy($id, $thrash1, $other, $thrash3)
|
||||
'min_ff_event_normal' => $other['data'][24],
|
||||
'min_ff_event_warning' => $other['data'][25],
|
||||
'min_ff_event_critical' => $other['data'][26],
|
||||
'ff_type' => $other['data'][27],
|
||||
];
|
||||
}
|
||||
|
||||
@ -13508,7 +13527,7 @@ function api_get_module_graph($id_module, $thrash2, $other, $thrash4)
|
||||
}
|
||||
|
||||
$graph_seconds = (!empty($other) && isset($other['data'][0])) ? $other['data'][0] : SECONDS_1HOUR;
|
||||
// 1 hour by default
|
||||
// 1 hour by default.
|
||||
$graph_threshold = (!empty($other) && isset($other['data'][2]) && $other['data'][2]) ? $other['data'][2] : 0;
|
||||
|
||||
if (is_nan($graph_seconds) || $graph_seconds <= 0) {
|
||||
@ -13624,7 +13643,7 @@ function api_set_new_cluster($thrash1, $thrash2, $other, $thrash3)
|
||||
];
|
||||
|
||||
if (!isset($name)) {
|
||||
// avoid warnings
|
||||
// avoid warnings.
|
||||
$name = '';
|
||||
}
|
||||
|
||||
@ -13632,7 +13651,7 @@ function api_set_new_cluster($thrash1, $thrash2, $other, $thrash3)
|
||||
$id_agent = agents_create_agent($values_agent['nombre'], $values_agent['id_grupo'], 300, '', $values_agent);
|
||||
|
||||
if ($id_agent !== false) {
|
||||
// Create cluster
|
||||
// Create cluster.
|
||||
$values_cluster = [
|
||||
'name' => $name,
|
||||
'cluster_type' => $cluster_type,
|
||||
@ -13644,7 +13663,7 @@ function api_set_new_cluster($thrash1, $thrash2, $other, $thrash3)
|
||||
$id_cluster = db_process_sql_insert('tcluster', $values_cluster);
|
||||
|
||||
if ($id_cluster === false) {
|
||||
// failed to create cluster, rollback previously created agent
|
||||
// failed to create cluster, rollback previously created agent.
|
||||
agents_delete_agent($id_agent, true);
|
||||
}
|
||||
|
||||
@ -13989,7 +14008,7 @@ function api_set_apply_module_template($id_template, $id_agent, $thrash3, $thras
|
||||
return;
|
||||
}
|
||||
|
||||
// Take agent data
|
||||
// Take agent data.
|
||||
$row = db_get_row('tagente', 'id_agente', $id_agent);
|
||||
|
||||
$intervalo = $row['intervalo'];
|
||||
@ -14023,7 +14042,7 @@ function api_set_apply_module_template($id_template, $id_agent, $thrash3, $thras
|
||||
}
|
||||
|
||||
foreach ($nc as $row2) {
|
||||
// Insert each module from tnetwork_component into agent
|
||||
// Insert each module from tnetwork_component into agent.
|
||||
$values = [
|
||||
'id_agente' => $id_agent,
|
||||
'id_tipo_modulo' => $row2['type'],
|
||||
@ -14069,18 +14088,19 @@ function api_set_apply_module_template($id_template, $id_agent, $thrash3, $thras
|
||||
'min_ff_event_normal' => $row2['min_ff_event_normal'],
|
||||
'min_ff_event_warning' => $row2['min_ff_event_warning'],
|
||||
'min_ff_event_critical' => $row2['min_ff_event_critical'],
|
||||
'ff_type' => $row2['ff_type'],
|
||||
];
|
||||
|
||||
$name = $row2['name'];
|
||||
|
||||
// Put tags in array if the component has to add them later
|
||||
// Put tags in array if the component has to add them later.
|
||||
if (!empty($row2['tags'])) {
|
||||
$tags = explode(',', $row2['tags']);
|
||||
} else {
|
||||
$tags = [];
|
||||
}
|
||||
|
||||
// Check if this module exists in the agent
|
||||
// Check if this module exists in the agent.
|
||||
$module_name_check = db_get_value_filter('id_agente_modulo', 'tagente_modulo', ['delete_pending' => 0, 'nombre' => $name, 'id_agente' => $id_agent]);
|
||||
|
||||
if ($module_name_check !== false) {
|
||||
|
@ -1286,7 +1286,11 @@ function config_update_config()
|
||||
|
||||
// Juanma (06/05/2014) New feature: Custom front page for reports.
|
||||
if (!config_update_value('font_size_item_report', get_parameter('font_size_item_report', 2))) {
|
||||
$error_update[] = __('Font size for items reports');
|
||||
$error_update[] = __('HTML font size for SLA (em)');
|
||||
}
|
||||
|
||||
if (!config_update_value('global_font_size_report', get_parameter('global_font_size_report', 14))) {
|
||||
$error_update[] = __('PDF font size (px)');
|
||||
}
|
||||
|
||||
if (!config_update_value('interval_description', (string) get_parameter('interval_description', 'large'))) {
|
||||
@ -1407,19 +1411,35 @@ function config_update_config()
|
||||
$error_update[] = __('Database password');
|
||||
}
|
||||
|
||||
if (!config_update_value('history_db_days', get_parameter('history_db_days'))) {
|
||||
$history_db_days = get_parameter('history_db_days');
|
||||
if (!is_numeric($history_db_days)
|
||||
|| $history_db_days <= 0
|
||||
|| !config_update_value('history_db_days', $history_db_days)
|
||||
) {
|
||||
$error_update[] = __('Days');
|
||||
}
|
||||
|
||||
if (!config_update_value('history_event_days', get_parameter('history_event_days'))) {
|
||||
$history_event_days = get_parameter('history_event_days');
|
||||
if (!is_numeric($history_event_days)
|
||||
|| $history_event_days <= 0
|
||||
|| !config_update_value('history_event_days', $history_event_days)
|
||||
) {
|
||||
$error_update[] = __('Event Days');
|
||||
}
|
||||
|
||||
if (!config_update_value('history_db_step', get_parameter('history_db_step'))) {
|
||||
$history_db_step = get_parameter('history_db_step');
|
||||
if (!is_numeric($history_db_step)
|
||||
|| $history_db_step <= 0
|
||||
|| !config_update_value('history_db_step', $history_db_step)
|
||||
) {
|
||||
$error_update[] = __('Step');
|
||||
}
|
||||
|
||||
if (!config_update_value('history_db_delay', get_parameter('history_db_delay'))) {
|
||||
$history_db_delay = get_parameter('history_db_delay');
|
||||
if (!is_numeric($history_db_delay)
|
||||
|| $history_db_delay <= 0
|
||||
|| !config_update_value('history_db_delay', $history_db_delay)
|
||||
) {
|
||||
$error_update[] = __('Delay');
|
||||
}
|
||||
break;
|
||||
@ -2817,6 +2837,10 @@ function config_process_config()
|
||||
config_update_value('font_size_item_report', 2);
|
||||
}
|
||||
|
||||
if (!isset($config['global_font_size_report'])) {
|
||||
config_update_value('global_font_size_report', 14);
|
||||
}
|
||||
|
||||
if (!isset($config['interval_description'])) {
|
||||
config_update_value('interval_description', 'large');
|
||||
}
|
||||
|
@ -4009,7 +4009,7 @@ function events_page_details($event, $server='')
|
||||
|
||||
$data = [];
|
||||
$data[0] = '<div style="font-weight:normal; margin-left: 20px;">'.__('Last contact').'</div>';
|
||||
$data[1] = ($agent['ultimo_contacto'] == '1970-01-01 00:00:00') ? '<i>'.__('N/A').'</i>' : date_w_fixed_tz($agent['ultimo_contacto']);
|
||||
$data[1] = ($agent['ultimo_contacto'] == '1970-01-01 00:00:00') ? '<i>'.__('N/A').'</i>' : ui_print_timestamp($agent['ultimo_contacto'], true);
|
||||
$table_details->data[] = $data;
|
||||
|
||||
$data = [];
|
||||
|
@ -1446,9 +1446,20 @@ function graphic_combined_module(
|
||||
$data_module_graph['agent_name'] = modules_get_agentmodule_agent_name(
|
||||
$agent_module_id
|
||||
);
|
||||
$data_module_graph['agent_alias'] = modules_get_agentmodule_agent_alias(
|
||||
$agent_module_id
|
||||
);
|
||||
|
||||
if (is_metaconsole()) {
|
||||
$data_module_graph['agent_alias'] = db_get_value(
|
||||
'alias',
|
||||
'tagente',
|
||||
'id_agente',
|
||||
(int) $module_data['id_agente']
|
||||
);
|
||||
} else {
|
||||
$data_module_graph['agent_alias'] = modules_get_agentmodule_agent_alias(
|
||||
$agent_module_id
|
||||
);
|
||||
}
|
||||
|
||||
$data_module_graph['agent_id'] = $module_data['id_agente'];
|
||||
$data_module_graph['module_name'] = $module_data['nombre'];
|
||||
$data_module_graph['id_module_type'] = $module_data['id_tipo_modulo'];
|
||||
|
@ -1183,7 +1183,7 @@ function html_print_extended_select_for_cron($hour='*', $minute='*', $mday='*',
|
||||
}
|
||||
|
||||
// Month days
|
||||
for ($i = 0; $i < 31; $i++) {
|
||||
for ($i = 1; $i <= 31; $i++) {
|
||||
$mdays[$i] = $i;
|
||||
}
|
||||
|
||||
@ -3071,9 +3071,12 @@ function html_print_autocomplete_modules(
|
||||
['style' => 'background: url(images/search_module.png) no-repeat right;']
|
||||
);
|
||||
html_print_input_hidden($name.'_hidden', $id_agent_module);
|
||||
ui_print_help_tip(__('Type at least two characters to search the module.'), false);
|
||||
|
||||
$javascript_ajax_page = ui_get_full_url('ajax.php', false, false, false, false);
|
||||
if (!is_metaconsole()) {
|
||||
ui_print_help_tip(__('Type at least two characters to search the module.'), false);
|
||||
}
|
||||
|
||||
$javascript_ajax_page = ui_get_full_url('ajax.php', false, false, false);
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
function escapeHTML (str)
|
||||
|
@ -314,7 +314,7 @@ function profile_print_profile_table($id)
|
||||
$tags = tags_get_all_tags();
|
||||
$data['tags'] = html_print_select($tags, 'assign_tags[]', '', '', __('Any'), '', true, true);
|
||||
|
||||
$data['hierarchy'] = html_print_checkbox('no_hierarchy', 1, false, true).ui_print_help_icon('no_hierarchy', true);
|
||||
$data['hierarchy'] = html_print_checkbox('no_hierarchy', 1, false, true);
|
||||
|
||||
$data['actions'] = html_print_input_image('add', 'images/add.png', 1, '', true);
|
||||
$data['actions'] .= html_print_input_hidden('id', $id, true);
|
||||
|
@ -325,6 +325,17 @@ function reporting_make_reporting_data(
|
||||
$content['id_agent']
|
||||
);
|
||||
|
||||
// This is for metaconsole. It is an array with modules and server (id node).
|
||||
if (is_array($content['id_agent_module'])) {
|
||||
$modules_server_array = $content['id_agent_module'];
|
||||
$modules_array = [];
|
||||
foreach ($modules_server_array as $value) {
|
||||
$modules_array[] = $value['module'];
|
||||
}
|
||||
|
||||
$content['id_agent_module'] = $modules_array;
|
||||
}
|
||||
|
||||
$modules = agents_get_modules(
|
||||
$agent_value,
|
||||
[
|
||||
@ -760,7 +771,7 @@ function reporting_make_reporting_data(
|
||||
continue;
|
||||
}
|
||||
|
||||
$report['contents'][] = $report_control;
|
||||
$report['contents'][] = $report_control;
|
||||
break;
|
||||
|
||||
case 'top_n':
|
||||
@ -1775,6 +1786,27 @@ function reporting_event_report_group(
|
||||
$event_graph_by_criticity = $event_filter['event_graph_by_criticity'];
|
||||
$event_graph_validated_vs_unvalidated = $event_filter['event_graph_validated_vs_unvalidated'];
|
||||
|
||||
if (isset($content['recursion']) && $content['recursion'] == 1 && $content['id_group'] != 0) {
|
||||
$propagate = db_get_value(
|
||||
'propagate',
|
||||
'tgrupo',
|
||||
'id_grupo',
|
||||
$content['id_group']
|
||||
);
|
||||
|
||||
if ($propagate) {
|
||||
$children = groups_get_children($content['id_group']);
|
||||
$_groups = [ $content['id_group'] ];
|
||||
if (!empty($children)) {
|
||||
foreach ($children as $child) {
|
||||
$_groups[] = (int) $child['id_grupo'];
|
||||
}
|
||||
}
|
||||
|
||||
$content['id_group'] = $_groups;
|
||||
}
|
||||
}
|
||||
|
||||
$data = events_get_agent(
|
||||
false,
|
||||
$content['period'],
|
||||
@ -7578,16 +7610,18 @@ function reporting_custom_graph(
|
||||
$content['name'] = __('Simple graph');
|
||||
}
|
||||
|
||||
$module_source = db_get_all_rows_sql(
|
||||
'SELECT id_agent_module
|
||||
FROM tgraph_source
|
||||
WHERE id_graph = '.$content['id_gs']
|
||||
);
|
||||
if ($type_report != 'automatic_graph') {
|
||||
$module_source = db_get_all_rows_sql(
|
||||
'SELECT id_agent_module
|
||||
FROM tgraph_source
|
||||
WHERE id_graph = '.$content['id_gs']
|
||||
);
|
||||
|
||||
if (isset($module_source) && is_array($module_source)) {
|
||||
$modules = [];
|
||||
foreach ($module_source as $key => $value) {
|
||||
$modules[$key] = $value['id_agent_module'];
|
||||
if (isset($module_source) && is_array($module_source)) {
|
||||
$modules = [];
|
||||
foreach ($module_source as $key => $value) {
|
||||
$modules[$key] = $value['id_agent_module'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -447,9 +447,9 @@ function reporting_html_SLA($table, $item, $mini, $pdf=0)
|
||||
$interval_description = $config['interval_description'];
|
||||
|
||||
if ($mini) {
|
||||
$font_size = '1.5';
|
||||
$font_size = '1.5em';
|
||||
} else {
|
||||
$font_size = $config['font_size_item_report'];
|
||||
$font_size = $config['font_size_item_report'].'em';
|
||||
}
|
||||
|
||||
$metaconsole_on = is_metaconsole();
|
||||
@ -588,18 +588,18 @@ function reporting_html_SLA($table, $item, $mini, $pdf=0)
|
||||
$row[] = round($sla['sla_limit'], 2).'%';
|
||||
|
||||
if (reporting_sla_is_not_init_from_array($sla)) {
|
||||
$row[] = '<span style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_NOTINIT.';">'.__('N/A').'</span>';
|
||||
$row[] = '<span style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_NOTINIT.';">'.__('Not init').'</span>';
|
||||
$row[] = '<span style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_NOTINIT.';">'.__('N/A').'</span>';
|
||||
$row[] = '<span style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_NOTINIT.';">'.__('Not init').'</span>';
|
||||
} else if (reporting_sla_is_ignored_from_array($sla)) {
|
||||
$row[] = '<span style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_IGNORED.';">'.__('N/A').'</span>';
|
||||
$row[] = '<span style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_IGNORED.';">'.__('No data').'</span>';
|
||||
$row[] = '<span style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_IGNORED.';">'.__('N/A').'</span>';
|
||||
$row[] = '<span style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_IGNORED.';">'.__('No data').'</span>';
|
||||
// Normal calculation.
|
||||
} else if ($sla['sla_status']) {
|
||||
$row[] = '<span style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_NORMAL.';">'.sla_truncate($sla['sla_value'], $config['graph_precision']).'%</span>';
|
||||
$row[] = '<span style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_NORMAL.';">'.__('OK').'</span>';
|
||||
$row[] = '<span style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_NORMAL.';">'.sla_truncate($sla['sla_value'], $config['graph_precision']).'%</span>';
|
||||
$row[] = '<span style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_NORMAL.';">'.__('OK').'</span>';
|
||||
} else {
|
||||
$row[] = '<span style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_CRITICAL.';">'.sla_truncate($sla['sla_value'], $config['graph_precision']).'%</span>';
|
||||
$row[] = '<span style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_CRITICAL.';">'.__('Fail').'</span>';
|
||||
$row[] = '<span style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_CRITICAL.';">'.sla_truncate($sla['sla_value'], $config['graph_precision']).'%</span>';
|
||||
$row[] = '<span style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_CRITICAL.';">'.__('Fail').'</span>';
|
||||
}
|
||||
|
||||
// Second table for time globals.
|
||||
@ -2310,7 +2310,6 @@ function reporting_html_network_interfaces_report($table, $item, $pdf=0)
|
||||
$table_agent->head = [];
|
||||
$table_agent->head[0] = __('Agent').' '.$agent['agent'];
|
||||
$table_agent->headstyle = [];
|
||||
$table_agent->headstyle[0] = 'font-size: 16px;';
|
||||
$table_agent->style[0] = 'text-align: center';
|
||||
|
||||
$table_agent->data['interfaces'] = '';
|
||||
@ -2399,7 +2398,6 @@ function reporting_html_alert_report($table, $item, $pdf=0)
|
||||
'',
|
||||
true
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
$table1->head['agent'] = __('Agent');
|
||||
@ -2503,9 +2501,9 @@ function reporting_html_monitor_report($table, $item, $mini, $pdf=0)
|
||||
global $config;
|
||||
|
||||
if ($mini) {
|
||||
$font_size = '1.5';
|
||||
$font_size = '1.5em';
|
||||
} else {
|
||||
$font_size = $config['font_size_item_report'];
|
||||
$font_size = $config['font_size_item_report'].'em';
|
||||
}
|
||||
|
||||
$table->colspan['module']['cell'] = 3;
|
||||
@ -2516,10 +2514,10 @@ function reporting_html_monitor_report($table, $item, $mini, $pdf=0)
|
||||
$table1->head = [];
|
||||
$table1->data = [];
|
||||
if ($item['data']['unknown'] == 1) {
|
||||
$table1->data['data']['unknown'] = '<p style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_UNKNOWN.';">';
|
||||
$table1->data['data']['unknown'] = '<p style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_UNKNOWN.';">';
|
||||
$table1->data['data']['unknown'] .= __('Unknown').'</p>';
|
||||
} else {
|
||||
$table1->data['data']['ok'] = '<p style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_NORMAL.';">';
|
||||
$table1->data['data']['ok'] = '<p style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_NORMAL.';">';
|
||||
$table1->data['data']['ok'] .= html_print_image(
|
||||
'images/module_ok.png',
|
||||
true
|
||||
@ -2530,7 +2528,7 @@ function reporting_html_monitor_report($table, $item, $mini, $pdf=0)
|
||||
)
|
||||
).' %</p>';
|
||||
|
||||
$table1->data['data']['fail'] = '<p style="font: bold '.$font_size.'em Arial, Sans-serif; color: '.COL_CRITICAL.';">';
|
||||
$table1->data['data']['fail'] = '<p style="font-weight: bold; font-size: '.$font_size.' !important; color: '.COL_CRITICAL.';">';
|
||||
$table1->data['data']['fail'] .= html_print_image(
|
||||
'images/module_critical.png',
|
||||
true
|
||||
@ -2750,9 +2748,9 @@ function reporting_html_value(&$table, $item, $mini, $only_value=false, $check_e
|
||||
global $config;
|
||||
|
||||
if ($mini) {
|
||||
$font_size = '1.5';
|
||||
$font_size = '1.5em';
|
||||
} else {
|
||||
$font_size = $config['font_size_item_report'];
|
||||
$font_size = $config['font_size_item_report'].'em';
|
||||
}
|
||||
|
||||
if (isset($item['visual_format']) && $item['visual_format'] != 0
|
||||
@ -2867,7 +2865,7 @@ function reporting_html_value(&$table, $item, $mini, $only_value=false, $check_e
|
||||
$table->colspan['data']['cell'] = 3;
|
||||
$table->cellstyle['data']['cell'] = 'text-align: left;';
|
||||
|
||||
$table->data['data']['cell'] = '<p style="font: bold '.$font_size.'em Arial, Sans-serif; color: #000000;">';
|
||||
$table->data['data']['cell'] = '<p style="font-weight: bold; font-size: '.$font_size.'; color: #000000;">';
|
||||
|
||||
if ($check_empty && empty($item['data']['value'])) {
|
||||
$table->data['data']['cell'] .= __('Unknown');
|
||||
@ -3021,6 +3019,7 @@ function reporting_html_availability($table, $item, $pdf=0)
|
||||
|
||||
global $config;
|
||||
|
||||
$font_size = $config['font_size_item_report'].'em';
|
||||
$interval_description = $config['interval_description'];
|
||||
|
||||
if (!empty($item['data'])) {
|
||||
@ -3227,7 +3226,7 @@ function reporting_html_availability($table, $item, $pdf=0)
|
||||
$table_row[] = '';
|
||||
};
|
||||
|
||||
$table_row[] = '<span style="font-size: 1.2em; font-weight:bold;">'.sla_truncate($row['SLA'], $config['graph_precision']).'%</span>';
|
||||
$table_row[] = '<span style="font-size: '.$font_size.'; font-weight:bold;">'.sla_truncate($row['SLA'], $config['graph_precision']).'%</span>';
|
||||
|
||||
$table_row2 = [];
|
||||
$table_row2[] = $row['agent'];
|
||||
@ -3323,7 +3322,7 @@ function reporting_html_availability($table, $item, $pdf=0)
|
||||
$item['resume']['min'],
|
||||
$config['graph_precision']
|
||||
).'%',
|
||||
'avg' => '<span style="font-size: 1.2em; font-weight:bold;">'.sla_truncate($item['resume']['avg'], $config['graph_precision']).'%</span>',
|
||||
'avg' => '<span style="font-size: '.$font_size.'; font-weight:bold;">'.sla_truncate($item['resume']['avg'], $config['graph_precision']).'%</span>',
|
||||
];
|
||||
if ($item['fields']['agent_max_value'] == false) {
|
||||
$table1->head['max_text'] = '';
|
||||
@ -3380,6 +3379,14 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
|
||||
global $config;
|
||||
$metaconsole_on = is_metaconsole();
|
||||
|
||||
$font_size = $config['font_size_item_report'].'em';
|
||||
|
||||
if ($pdf) {
|
||||
$font_mini = '9px';
|
||||
} else {
|
||||
$font_mini = 'inherit';
|
||||
}
|
||||
|
||||
if ($metaconsole_on !== false) {
|
||||
$hack_metaconsole = '../../';
|
||||
} else {
|
||||
@ -3443,8 +3450,9 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
|
||||
|
||||
$table1->data[0][0] = $chart['agent'].'<br />'.$chart['module'];
|
||||
$table1->data[0][1] = $chart['chart'];
|
||||
$table1->data[0][2] = "<span style = 'font: bold 2em Arial, Sans-serif; color: ".$color."'>".$sla_value.'</span>';
|
||||
$table1->data[0][3] = $checks_resume;
|
||||
$table1->data[0][2] = "<span style = 'font-weight: bold; font-size: ".$font_size.'; color: '.$color."'>".$sla_value.'</span>';
|
||||
$table1->data[0][3] = "<span style = 'font-size: ".$font_mini.";'>".$checks_resume.'</span>';
|
||||
|
||||
$tables_chart .= html_print_table(
|
||||
$table1,
|
||||
true
|
||||
@ -3464,8 +3472,10 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
|
||||
}
|
||||
|
||||
$title = '';
|
||||
$checks_resume_text = $checks_resume;
|
||||
$sla_value_text = "<span style = 'font: bold 2em Arial, Sans-serif; color: ".$color."'>".$sla_value.'</span>';
|
||||
$checks_resume_text = '<span style = "font-size: '.$font_mini.';">';
|
||||
$checks_resume_text .= $checks_resume;
|
||||
$checks_resume_text .= '</span>';
|
||||
$sla_value_text = "<span style = 'font-weight: bold; font-size: ".$font_size.' !important; color: '.$color."'>".$sla_value.'</span>';
|
||||
switch ($item['data'][$k_chart]['failover']) {
|
||||
case 'primary':
|
||||
$title = '<b>'.__('Primary').'</b>';
|
||||
@ -3482,8 +3492,8 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
|
||||
case 'result':
|
||||
default:
|
||||
$title = '<b>'.__('Result').'</b>';
|
||||
$sla_value_text = "<span style = 'font: bold 3em Arial, Sans-serif; color: ".$color."'>".$sla_value.'</span>';
|
||||
$checks_resume_text = '<span style = "font-size: 12pt;">';
|
||||
$sla_value_text = "<span style = 'font-weight: bold; font-size: ".$font_size.' !important; color: '.$color."'>".$sla_value.'</span>';
|
||||
$checks_resume_text = '<span style = "font-size: '.$font_mini.';">';
|
||||
$checks_resume_text .= $checks_resume;
|
||||
$checks_resume_text .= '</span>';
|
||||
break;
|
||||
@ -5123,19 +5133,6 @@ function reporting_html_planned_downtimes_table($planned_downtimes)
|
||||
$table->style = [];
|
||||
$table->data = [];
|
||||
|
||||
if ($for_pdf) {
|
||||
$table->titlestyle = 'background: #373737; color: #FFF; display: table-cell; font-size: 12px; border: 1px solid grey';
|
||||
$table->class = 'table_sla';
|
||||
|
||||
for ($i = 0; $i < count($table->head); $i++) {
|
||||
$table->headstyle[$i] = 'background: #666; color: #FFF; display: table-cell; font-size: 11px; border: 1px solid grey';
|
||||
}
|
||||
|
||||
for ($i = 0; $i < count($table->head); $i++) {
|
||||
$table->style[$i] = 'display: table-cell; font-size: 10px;';
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($planned_downtimes as $planned_downtime) {
|
||||
$data = [];
|
||||
$data[0] = $planned_downtime['name'];
|
||||
|
@ -39,6 +39,9 @@ function reporting_xml_get_report($report, $filename, $return=false)
|
||||
}
|
||||
}
|
||||
|
||||
// Remove entities.
|
||||
$report = io_safe_output($report);
|
||||
|
||||
$xml = null;
|
||||
$xml = array2XML($report, 'report', $xml);
|
||||
$xml = preg_replace('/(<[^>]+>)(<[^>]+>)(<[^>]+>)/', "$1\n$2\n$3", $xml);
|
||||
|
@ -47,37 +47,13 @@ function tactical_get_data($id_user=false, $user_strict=false, $acltags, $return
|
||||
}
|
||||
|
||||
if (!empty($user_groups_ids)) {
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$list_groups = db_get_all_rows_sql(
|
||||
'
|
||||
SELECT *
|
||||
FROM tgrupo
|
||||
WHERE id_grupo IN ('.$user_groups_ids.')
|
||||
ORDER BY nombre COLLATE utf8_general_ci ASC'
|
||||
);
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
$list_groups = db_get_all_rows_sql(
|
||||
'
|
||||
SELECT *
|
||||
FROM tgrupo
|
||||
WHERE id_grupo IN ('.$user_groups_ids.')
|
||||
ORDER BY nombre ASC'
|
||||
);
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
$list_groups = db_get_all_rows_sql(
|
||||
'
|
||||
SELECT *
|
||||
FROM tgrupo
|
||||
WHERE id_grupo IN ('.$user_groups_ids.')
|
||||
ORDER BY nombre ASC'
|
||||
);
|
||||
break;
|
||||
}
|
||||
$list_groups = db_get_all_rows_sql(
|
||||
'
|
||||
SELECT *
|
||||
FROM tgrupo
|
||||
WHERE id_grupo IN ('.$user_groups_ids.')
|
||||
ORDER BY nombre COLLATE utf8_general_ci ASC'
|
||||
);
|
||||
}
|
||||
|
||||
$list = [];
|
||||
@ -242,14 +218,36 @@ function tactical_get_data($id_user=false, $user_strict=false, $acltags, $return
|
||||
|
||||
$list['_server_sanity_'] = format_numeric((100 - $list['_module_sanity_']), 1);
|
||||
} else if (($config['realtimestats'] == 0)) {
|
||||
$group_stat = db_get_all_rows_sql(
|
||||
"SELECT
|
||||
SUM(ta.normal_count) as normal, SUM(ta.critical_count) as critical,
|
||||
SUM(ta.warning_count) as warning,SUM(ta.unknown_count) as unknown,
|
||||
SUM(ta.notinit_count) as not_init, SUM(fired_count) as alerts_fired
|
||||
FROM tagente ta
|
||||
WHERE disabled = 0 AND id_grupo IN ($user_groups_ids)"
|
||||
);
|
||||
if (users_is_admin()) {
|
||||
$group_stat = db_get_all_rows_sql(
|
||||
sprintf(
|
||||
'SELECT
|
||||
SUM(ta.normal_count) as normal, SUM(ta.critical_count) as critical,
|
||||
SUM(ta.warning_count) as warning,SUM(ta.unknown_count) as unknown,
|
||||
SUM(ta.notinit_count) as not_init, SUM(ta.fired_count) as alerts_fired
|
||||
FROM tagente ta
|
||||
WHERE ta.disabled = 0 AND ta.id_grupo IN (%s)
|
||||
',
|
||||
$user_groups_ids
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$group_stat = db_get_all_rows_sql(
|
||||
sprintf(
|
||||
'SELECT
|
||||
SUM(ta.normal_count) as normal, SUM(ta.critical_count) as critical,
|
||||
SUM(ta.warning_count) as warning,SUM(ta.unknown_count) as unknown,
|
||||
SUM(ta.notinit_count) as not_init, SUM(ta.fired_count) as alerts_fired
|
||||
FROM tagente ta
|
||||
LEFT JOIN tagent_secondary_group tasg
|
||||
ON ta.id_agente = tasg.id_agent
|
||||
WHERE ta.disabled = 0 AND
|
||||
(ta.id_grupo IN ( %s ) OR tasg.id_group IN ( %s ))',
|
||||
$user_groups_ids,
|
||||
$user_groups_ids
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$list['_agents_unknown_'] = $group_stat[0]['unknown'];
|
||||
$list['_monitors_alerts_fired_'] = $group_stat[0]['alerts_fired'];
|
||||
@ -303,19 +301,41 @@ function tactical_get_data($id_user=false, $user_strict=false, $acltags, $return
|
||||
|
||||
$list['_server_sanity_'] = format_numeric((100 - $list['_module_sanity_']), 1);
|
||||
} else {
|
||||
$_tag_condition = '';
|
||||
$result_list = db_get_all_rows_sql(
|
||||
"SELECT COUNT(*) as contado, estado
|
||||
FROM tagente_estado tae INNER JOIN tagente ta
|
||||
ON tae.id_agente = ta.id_agente
|
||||
AND ta.disabled = 0
|
||||
AND ta.id_grupo IN ( $user_groups_ids )
|
||||
INNER JOIN tagente_modulo tam
|
||||
ON tae.id_agente_modulo = tam.id_agente_modulo
|
||||
AND tam.disabled = 0
|
||||
$_tag_condition
|
||||
GROUP BY estado"
|
||||
);
|
||||
if (users_is_admin()) {
|
||||
$result_list = db_get_all_rows_sql(
|
||||
sprintf(
|
||||
'SELECT COUNT(*) as contado, estado FROM tagente_estado tae
|
||||
INNER JOIN tagente ta
|
||||
ON tae.id_agente = ta.id_agente
|
||||
AND ta.disabled = 0
|
||||
AND ta.id_grupo IN ( %s )
|
||||
INNER JOIN tagente_modulo tam
|
||||
ON tae.id_agente_modulo = tam.id_agente_modulo
|
||||
AND tam.disabled = 0
|
||||
GROUP BY estado',
|
||||
$user_groups_ids
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$result_list = db_get_all_rows_sql(
|
||||
sprintf(
|
||||
'SELECT COUNT(*) as contado, estado
|
||||
FROM tagente_estado tae
|
||||
INNER JOIN tagente ta
|
||||
ON tae.id_agente = ta.id_agente
|
||||
AND ta.disabled = 0
|
||||
INNER JOIN tagente_modulo tam
|
||||
ON tae.id_agente_modulo = tam.id_agente_modulo
|
||||
AND tam.disabled = 0
|
||||
LEFT JOIN tagent_secondary_group tasg
|
||||
ON ta.id_agente = tasg.id_agent
|
||||
WHERE (ta.id_grupo IN ( %s ) OR tasg.id_group IN ( %s ))
|
||||
GROUP BY estado',
|
||||
$user_groups_ids,
|
||||
$user_groups_ids
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if (empty($result_list)) {
|
||||
$result_list = [];
|
||||
|
@ -624,7 +624,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
|
||||
if ($agent['ultimo_contacto_remoto'] == '01-01-1970 00:00:00') {
|
||||
$last_remote_contact = __('Never');
|
||||
} else {
|
||||
$last_remote_contact = ui_print_timestamp($agent['ultimo_contacto_remoto'], true);
|
||||
$last_remote_contact = date_w_fixed_tz($agent['ultimo_contacto_remoto']);
|
||||
}
|
||||
|
||||
$row = [];
|
||||
|
@ -776,9 +776,9 @@ function ui_print_os_icon(
|
||||
}
|
||||
|
||||
if (is_metaconsole()) {
|
||||
$no_in_meta = true;
|
||||
} else {
|
||||
$no_in_meta = false;
|
||||
} else {
|
||||
$no_in_meta = true;
|
||||
}
|
||||
|
||||
$icon = (string) db_get_value('icon_name', 'tconfig_os', 'id_os', (int) $id_os);
|
||||
@ -1144,7 +1144,7 @@ function ui_format_alert_row(
|
||||
|
||||
$data[$index['agent_name']] = $disabledHtmlStart;
|
||||
if ($agent == 0) {
|
||||
$data[$index['module_name']] .= ui_print_truncate_text(isset($alert['agent_module_name']) ? $alert['agent_module_name'] : modules_get_agentmodule_name($alert['id_agent_module']), 'module_small', false, true, true, '[…]', 'font-size: 7.2pt');
|
||||
$data[$index['module_name']] .= ui_print_truncate_text(isset($alert['agent_module_name']) ? $alert['agent_module_name'] : modules_get_agentmodule_name($alert['id_agent_module']), 'module_small', false, true, true, '[…]', '');
|
||||
} else {
|
||||
if (defined('METACONSOLE')) {
|
||||
$agent_name = $alert['agent_name'];
|
||||
@ -1155,16 +1155,16 @@ function ui_format_alert_row(
|
||||
}
|
||||
|
||||
if (defined('METACONSOLE') || !can_user_access_node()) {
|
||||
$data[$index['agent_name']] = ui_print_truncate_text($agent_name, 'agent_small', false, true, false, '[…]', 'font-size:7.5pt;');
|
||||
$data[$index['agent_name']] = ui_print_truncate_text($agent_name, 'agent_small', false, true, true, '[…]', '');
|
||||
} else {
|
||||
if ($agent_style !== false) {
|
||||
$data[$index['agent_name']] .= '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agent.'"> <span style="font-size: 7pt;font-weight:bold" title ="'.$agente['nombre'].'">'.$agente['alias'].'</span></a>';
|
||||
$data[$index['agent_name']] .= '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agent.'"> <span style="font-weight:bold" title ="'.$agente['nombre'].'">'.$agente['alias'].'</span></a>';
|
||||
} else {
|
||||
$data[$index['agent_name']] .= '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agent.'"> <span style="font-size: 7pt;font-weight:bold" title ="'.$agente['nombre'].'">'.$agente['alias'].'</span></a>';
|
||||
$data[$index['agent_name']] .= '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agent.'"> <span style="font-weight:bold" title ="'.$agente['nombre'].'">'.$agente['alias'].'</span></a>';
|
||||
}
|
||||
}
|
||||
|
||||
$data[$index['module_name']] = ui_print_truncate_text(isset($alert['agent_module_name']) ? $alert['agent_module_name'] : modules_get_agentmodule_name($alert['id_agent_module']), 'module_small', false, true, true, '[…]', 'font-size: 7.2pt');
|
||||
$data[$index['module_name']] = ui_print_truncate_text(isset($alert['agent_module_name']) ? $alert['agent_module_name'] : modules_get_agentmodule_name($alert['id_agent_module']), 'module_small', false, true, true, '[…]', '');
|
||||
}
|
||||
|
||||
$data[$index['agent_name']] .= $disabledHtmlEnd;
|
||||
@ -1184,7 +1184,7 @@ function ui_format_alert_row(
|
||||
FROM talert_templates WHERE id = '.$alert['id_alert_template']
|
||||
);
|
||||
|
||||
$data[$index['description']] .= $disabledHtmlStart.ui_print_truncate_text(io_safe_output($description), 'description', false, true, true, '[…]', 'font-size: 7.1pt').$disabledHtmlEnd;
|
||||
$data[$index['description']] .= $disabledHtmlStart.ui_print_truncate_text(io_safe_output($description), 'description', false, true, true, '[…]', '').$disabledHtmlEnd;
|
||||
|
||||
$actions = alerts_get_alert_agent_module_actions($alert['id'], false, $alert['server_data']['id']);
|
||||
|
||||
@ -3333,6 +3333,7 @@ function ui_print_datatable(array $parameters)
|
||||
{
|
||||
extend: "csv",
|
||||
text : "'.__('Export current page to CSV').'",
|
||||
titleAttr: "'.__('Export current page to CSV').'",
|
||||
title: "export_'.$parameters['id'].'_current_page_'.date('Y-m-d').'",
|
||||
fieldSeparator: "'.$config['csv_divider'].'",
|
||||
exportOptions : {
|
||||
|
@ -762,7 +762,7 @@ function newsletter_wiz_modal(
|
||||
__('Cancel'),
|
||||
'cancel_newsletter',
|
||||
false,
|
||||
'class="ui-widget ui-state-default ui-corner-all ui-button-text-only sub upd submit-cancel" style="color: red; width:100px;"',
|
||||
'class="ui-widget ui-state-default ui-corner-all ui-button-text-only sub upd submit-cancel" style="width:100px;"',
|
||||
true
|
||||
);
|
||||
$output .= '</div>';
|
||||
@ -1166,7 +1166,7 @@ function update_manager_install_package_step2()
|
||||
}
|
||||
|
||||
update_manager_enterprise_set_version($version);
|
||||
$product_name = get_product_name();
|
||||
$product_name = io_safe_output(get_product_name());
|
||||
|
||||
// Generate audit entry.
|
||||
db_pandora_audit(
|
||||
|
@ -1900,6 +1900,8 @@ function visual_map_print_item(
|
||||
echo '<img id="image_'.$id.'" src="images/console/signes/group_status.png" style="width:'.$width.'px;height:'.$height.'px;'.$imgpos.'">';
|
||||
}
|
||||
} else {
|
||||
$is_meta = is_metaconsole();
|
||||
|
||||
$agents_critical = agents_get_agents(
|
||||
[
|
||||
'disabled' => 0,
|
||||
@ -1908,7 +1910,10 @@ function visual_map_print_item(
|
||||
],
|
||||
['COUNT(*) as total'],
|
||||
'AR',
|
||||
false
|
||||
false,
|
||||
false,
|
||||
0,
|
||||
$is_meta
|
||||
);
|
||||
$agents_warning = agents_get_agents(
|
||||
[
|
||||
@ -1918,7 +1923,10 @@ function visual_map_print_item(
|
||||
],
|
||||
['COUNT(*) as total'],
|
||||
'AR',
|
||||
false
|
||||
false,
|
||||
false,
|
||||
0,
|
||||
$is_meta
|
||||
);
|
||||
$agents_unknown = agents_get_agents(
|
||||
[
|
||||
@ -1928,7 +1936,10 @@ function visual_map_print_item(
|
||||
],
|
||||
['COUNT(*) as total'],
|
||||
'AR',
|
||||
false
|
||||
false,
|
||||
false,
|
||||
0,
|
||||
$is_meta
|
||||
);
|
||||
$agents_ok = agents_get_agents(
|
||||
[
|
||||
@ -1938,7 +1949,10 @@ function visual_map_print_item(
|
||||
],
|
||||
['COUNT(*) as total'],
|
||||
'AR',
|
||||
false
|
||||
false,
|
||||
false,
|
||||
0,
|
||||
$is_meta
|
||||
);
|
||||
$total_agents = ($agents_critical[0]['total'] + $agents_warning[0]['total'] + $agents_unknown[0]['total'] + $agents_ok[0]['total']);
|
||||
$stat_agent_ok = ($agents_ok[0]['total'] / $total_agents * 100);
|
||||
|
@ -1447,9 +1447,6 @@ function visual_map_editor_print_hack_translate_strings()
|
||||
<script type="text/javascript">
|
||||
$(document).ready (function () {
|
||||
$("#map_linked").change(function () {
|
||||
$("option[value=" + this.value + "]", this)
|
||||
.attr("selected", true).siblings()
|
||||
.removeAttr("selected")
|
||||
$("#text-agent").val("");
|
||||
$("input[name=id_agent]").val(0);
|
||||
$("#module").empty();
|
||||
|
@ -86,6 +86,7 @@
|
||||
}
|
||||
.defaultSkin table.mceLayout tr.mceLast td {
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.defaultSkin table.mceToolbar,
|
||||
.defaultSkin tr.mceFirst .mceToolbar tr td,
|
||||
|
@ -737,7 +737,7 @@ var TreeController = {
|
||||
}
|
||||
|
||||
$graphImage.addClass("module-graph").click(function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
if (element.statusImageHTML.indexOf("data:image") != -1) {
|
||||
try {
|
||||
winopeng_var(
|
||||
@ -776,7 +776,7 @@ var TreeController = {
|
||||
'images/binary.png" /> '
|
||||
);
|
||||
$dataImage.addClass("module-data").click(function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
try {
|
||||
var serverName =
|
||||
|
103
pandora_console/include/styles/demos.css
Normal file
@ -0,0 +1,103 @@
|
||||
/*
|
||||
* ---------------------------------------------------------------------
|
||||
* - INSTALLING DB FOR DEMOS -
|
||||
* ---------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
.textBanner,
|
||||
h1,
|
||||
p {
|
||||
font-family: "Open Sans", "lato-bolder", sans-serif;
|
||||
font-size: 1vw;
|
||||
color: #3f3f3f;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2vw;
|
||||
margin-bottom: 40px;
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 1vw;
|
||||
}
|
||||
|
||||
#demo_side_left {
|
||||
position: absolute;
|
||||
width: 342px;
|
||||
height: 1000px;
|
||||
background-image: url(/pandora_console/images/demo_background_left.png);
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
#demo_side_right {
|
||||
position: absolute;
|
||||
width: 640px;
|
||||
height: 1000px;
|
||||
right: 0;
|
||||
background-image: url(/pandora_console/images/demo_background_right.png);
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
#demo_side_center {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#spinner_logo_demo {
|
||||
background: url(/pandora_console/images/demo_logo_spinner.gif) no-repeat;
|
||||
margin: 0 auto;
|
||||
width: 350px;
|
||||
height: 350px;
|
||||
}
|
||||
|
||||
#text_message_demo {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div#header_demo {
|
||||
width: 100%;
|
||||
height: 65px;
|
||||
}
|
||||
|
||||
div.text_banner_demo {
|
||||
width: 100%;
|
||||
margin: 20px 0 60px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.textBanner {
|
||||
font-size: 3vw;
|
||||
}
|
||||
|
||||
.textProduct {
|
||||
color: #82b92e;
|
||||
}
|
||||
|
||||
div#container_demo {
|
||||
width: 100%;
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
div#list_icon_docs_support {
|
||||
float: left;
|
||||
margin-top: 25px;
|
||||
margin-left: 5%;
|
||||
}
|
||||
|
||||
div#list_icon_docs_support ul {
|
||||
margin-top: 5px;
|
||||
line-height: 36px;
|
||||
}
|
||||
|
||||
div#list_icon_docs_support ul li {
|
||||
display: inline-block;
|
||||
color: #979797;
|
||||
vertical-align: middle;
|
||||
margin-right: 5px;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
div#list_icon_docs_support ul li a {
|
||||
color: #979797;
|
||||
font-size: 10pt;
|
||||
}
|
@ -289,7 +289,7 @@ li.ui-tabs-tab.ui-corner-top.ui-state-default.ui-tab {
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
li.ui-tabs-tab.ui-corner-top.ui-state-default.ui-tab.ui-tabs-active.ui-state-active {
|
||||
border-bottom: 1px solid #fff;
|
||||
border-bottom: 2px solid #fff;
|
||||
}
|
||||
|
||||
tr.group {
|
||||
|
@ -33,6 +33,10 @@ div#error_buttons a {
|
||||
background-repeat: repeat;
|
||||
}
|
||||
|
||||
.login_body_trident {
|
||||
background: url("../../images/backgrounds/background_pandora_console_keys.jpg") !important;
|
||||
}
|
||||
|
||||
p.log_in {
|
||||
color: #fff;
|
||||
padding: 0px 10px;
|
||||
|
54
pandora_console/include/styles/order_interpreter.css
Normal file
@ -0,0 +1,54 @@
|
||||
div.show_result_interpreter {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
border: 1px solid #e2e2e2;
|
||||
border-bottom-left-radius: 10px;
|
||||
border-bottom-right-radius: 10px;
|
||||
padding-left: 10px;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
box-shadow: 0px 0px 15px -4px #dadada;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.more_results {
|
||||
text-align: right;
|
||||
margin-right: 20px;
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.results-found {
|
||||
background-image: url("../../images/input_zoom_gray.png");
|
||||
background-position: center right 10px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 17px;
|
||||
background-color: #f2f6f7;
|
||||
padding: 0px;
|
||||
margin: 0;
|
||||
width: 300px;
|
||||
height: 30px;
|
||||
margin-left: 2px;
|
||||
padding-left: 15px;
|
||||
padding-right: 40px;
|
||||
color: #777;
|
||||
font-family: "Open Sans", sans-serif;
|
||||
font-size: 8.5pt;
|
||||
border-top-left-radius: 10px;
|
||||
border-top-right-radius: 10px;
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.list_found {
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.active {
|
||||
background: #f2f6f7;
|
||||
}
|
||||
|
||||
.result_order {
|
||||
margin-left: 2px;
|
||||
display: grid;
|
||||
}
|
@ -27,6 +27,7 @@ div#page,
|
||||
#menu_tab_frame,
|
||||
#menu_tab_frame_view,
|
||||
#menu_tab_frame_view_bc,
|
||||
ul.subsubmenu li,
|
||||
input.search_input,
|
||||
.filters input,
|
||||
input#text-id_parent.ac_input,
|
||||
@ -100,6 +101,18 @@ table.widget_list td.datos2 {
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
/* Change inputs with autocomplete */
|
||||
input:-webkit-autofill,
|
||||
input:-webkit-autofill:hover,
|
||||
input:-webkit-autofill:focus,
|
||||
input:-webkit-autofill:active {
|
||||
-webkit-box-shadow: 0 0 0 30px #111 inset !important;
|
||||
}
|
||||
|
||||
input:-webkit-autofill {
|
||||
-webkit-text-fill-color: #fff !important;
|
||||
}
|
||||
|
||||
/* messages */
|
||||
.container {
|
||||
background-color: #222;
|
||||
@ -251,6 +264,10 @@ table.table_modal_alternate tr:nth-child(even) td {
|
||||
filter: brightness(2.5) contrast(50%);
|
||||
}
|
||||
|
||||
a.pandora_pagination {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* firts_task.css */
|
||||
.new_task,
|
||||
div.new_task_cluster,
|
||||
@ -337,11 +354,16 @@ table#diagnostic_info tbody td div {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.ui-widget-content.ui-autocomplete,
|
||||
.ui-widget-content.ui-autocomplete a {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.ui-state-default,
|
||||
.ui-widget-content .ui-state-default,
|
||||
.ui-widget-header .ui-state-default {
|
||||
background-color: #222;
|
||||
color: #fff;
|
||||
background-color: #222 !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.ui-state-active,
|
||||
@ -366,6 +388,11 @@ ul.ui-tabs-nav.ui-corner-all.ui-helper-reset.ui-helper-clearfix.ui-widget-header
|
||||
filter: brightness(2);
|
||||
}
|
||||
|
||||
.ui-dialog .ui-dialog-buttonpane button {
|
||||
background-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* notifications */
|
||||
#notification-wrapper::before {
|
||||
border-bottom-color: #111;
|
||||
@ -393,6 +420,17 @@ div#box_online * {
|
||||
color: #555;
|
||||
}
|
||||
|
||||
/* news dialog */
|
||||
#news_dialog #new_text {
|
||||
background: #222 !important;
|
||||
}
|
||||
|
||||
/* ipam */
|
||||
.tooltipster-content {
|
||||
background: #222 !important;
|
||||
}
|
||||
|
||||
/* licence */
|
||||
div#code_license_dialog div#code,
|
||||
div#form_activate_licence #code {
|
||||
margin-top: 20px;
|
||||
|
@ -129,7 +129,7 @@
|
||||
<div style='height: 10px'>
|
||||
<?php
|
||||
$version = '7.0NG.742';
|
||||
$build = '191218';
|
||||
$build = '200109';
|
||||
$banner = "v$version Build $build";
|
||||
|
||||
error_reporting(0);
|
||||
|
@ -1485,7 +1485,8 @@ if (!empty($result)) {
|
||||
|
||||
// Avoid the check on the metaconsole. Too slow to show/hide an icon depending on the permissions
|
||||
if (!is_metaconsole()) {
|
||||
$acl_graphs = check_acl($config['id_user'], $row['id_group'], 'RR');
|
||||
$agent_groups = agents_get_all_groups_agent($row['id_agent'], $row['id_group']);
|
||||
$acl_graphs = check_acl_one_of_groups($config['id_user'], $agent_groups, 'RR');
|
||||
} else {
|
||||
$acl_graphs = true;
|
||||
}
|
||||
@ -1709,7 +1710,9 @@ if (!empty($result)) {
|
||||
|
||||
html_print_table($table);
|
||||
|
||||
ui_pagination($count, false, $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||
if ($count_modules > $config['block_size']) {
|
||||
ui_pagination($count_modules, false, $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||
}
|
||||
} else {
|
||||
if ($first_interaction) {
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('This group doesn\'t have any monitor')]);
|
||||
|
@ -302,7 +302,11 @@ switch ($opt) {
|
||||
$osversion_offset = 0;
|
||||
}
|
||||
|
||||
$row[] = ui_print_os_icon($agent['id_os'], true, true).' (<i><span title="'.$agent['os_version'].'">'.substr($agent['os_version'], $osversion_offset, 15).'</span></i>)';
|
||||
if ($agent['os_version'] != '') {
|
||||
$agent_os_version = ' (<i><span title="'.$agent['os_version'].'">'.substr($agent['os_version'], $osversion_offset, 15).'</span></i>)';
|
||||
}
|
||||
|
||||
$row[] = ui_print_os_icon($agent['id_os'], true, true).$agent_os_version;
|
||||
$table->data[] = $row;
|
||||
|
||||
// URL
|
||||
@ -331,7 +335,12 @@ switch ($opt) {
|
||||
|
||||
// Agent version
|
||||
$row = [];
|
||||
$row[] = __('Agent Version');
|
||||
if (strtolower(get_os_name($agent['id_os'])) == 'satellite') {
|
||||
$row[] = __('Satellite Version');
|
||||
} else {
|
||||
$row[] = __('Agent Version');
|
||||
}
|
||||
|
||||
$row[] = $agent['agent_version'];
|
||||
$table->data[] = $row;
|
||||
|
||||
|
@ -165,9 +165,13 @@ echo "<div style='width:100%'>".html_print_button(
|
||||
check_users();
|
||||
|
||||
if (first_time) {
|
||||
var date_first_message = unix_timestamp(data['log'][0]['timestamp']);
|
||||
if(!date_first_message){
|
||||
date_first_message = unix_timestamp(new Date()/1000);
|
||||
}
|
||||
print_messages({
|
||||
0: {'type' : 'notification',
|
||||
'text': '<?php echo __('Connection established...get last 24h messages...'); ?>'}
|
||||
'text': '<?php echo __('Connection established - Retrieving messages since '); ?>'+date_first_message}
|
||||
}, true);
|
||||
first_time = false;
|
||||
}
|
||||
@ -308,4 +312,24 @@ echo "<div style='width:100%'>".html_print_button(
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Function to convert a timestamp to human date.
|
||||
function unix_timestamp(timestamp){
|
||||
var date = new Date(timestamp*1000);
|
||||
|
||||
const monthNames = [
|
||||
"January", "February", "March", "April",
|
||||
"May", "June", "July", "August",
|
||||
"September", "October", "November", "December"
|
||||
];
|
||||
var month = monthNames[date.getMonth()];
|
||||
|
||||
var day = date.getDate();
|
||||
var year = date.getFullYear();
|
||||
|
||||
var hour = date.getHours();
|
||||
var min = date.getMinutes();
|
||||
|
||||
return month + ' ' + day + ', '+ year + ', ' + hour+ ':' + min;
|
||||
}
|
||||
</script>
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.742
|
||||
%define release 191218
|
||||
%define release 200109
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.742
|
||||
%define release 191218
|
||||
%define release 200109
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.742
|
||||
%define release 191218
|
||||
%define release 200109
|
||||
%define httpd_name httpd
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name apache2
|
||||
|
@ -1,5 +1,5 @@
|
||||
package: pandorafms-server
|
||||
Version: 7.0NG.742-191218
|
||||
Version: 7.0NG.742-200109
|
||||
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.742-191218"
|
||||
pandora_version="7.0NG.742-200109"
|
||||
|
||||
package_cpan=0
|
||||
package_pandora=1
|
||||
|
@ -163,9 +163,11 @@ wmiserver 1
|
||||
network_timeout 4
|
||||
|
||||
# Network timeout (in seconds) for timeout in remote execution commands (PANDORA FMS ENTERPRISE ONLY).
|
||||
|
||||
rcmd_timeout 30
|
||||
|
||||
# Remote execution modules, ssh_launcher extra option (PANDORA FMS ENTERPRISE ONLY).
|
||||
ssh_launcher /usr/share/pandora_server/util/ssh_launcher.sh
|
||||
|
||||
# Server keepalive (in seconds)
|
||||
|
||||
server_keepalive 45
|
||||
|
@ -45,7 +45,7 @@ our @EXPORT = qw(
|
||||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.742";
|
||||
my $pandora_build = "191218";
|
||||
my $pandora_build = "200109";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
# Setup hash
|
||||
@ -360,6 +360,9 @@ sub pandora_load_config {
|
||||
# Discovery SAP Artica environment
|
||||
$pa_config->{"sap_artica_test"} = 0;
|
||||
|
||||
# Remote execution modules, option ssh_launcher
|
||||
$pa_config->{"ssh_launcher"} = "/usr/bin/ssh_launcher";
|
||||
|
||||
# braa for enterprise snmp server
|
||||
$pa_config->{"braa"} = "/usr/bin/braa";
|
||||
|
||||
@ -861,6 +864,9 @@ sub pandora_load_config {
|
||||
elsif ($parametro =~ m/^sap_artica_test\s(.*)/i) {
|
||||
$pa_config->{'sap_artica_test'}= clean_blank($1);
|
||||
}
|
||||
elsif ($parametro =~ m/^ssh_launcher\s(.*)/i) {
|
||||
$pa_config->{'ssh_launcher'}= clean_blank($1);
|
||||
}
|
||||
elsif ($parametro =~ m/^nmap_timing_template\s+([0-9]*)/i) {
|
||||
$pa_config->{'nmap_timing_template'}= clean_blank($1);
|
||||
}
|
||||
|
@ -1660,7 +1660,9 @@ sub pandora_process_module ($$$$$$$$$;$) {
|
||||
pandora_update_module_on_error ($pa_config, $module, $dbh);
|
||||
return;
|
||||
}
|
||||
my $last_try = ($1 == 0) ? 0 : timelocal($6, $5, $4, $3, $2 - 1, $1 - 1900);
|
||||
|
||||
my $last_try = ($1 == 0) ? 0 : strftime("%s", $6, $5, $4, $3, $2 - 1, $1 - 1900);
|
||||
|
||||
my $save = ($module->{'history_data'} == 1 && ($agent_status->{'datos'} ne $processed_data || $last_try < ($utimestamp - 86400))) ? 1 : 0;
|
||||
|
||||
# Received stale data. Save module data if needed and return.
|
||||
@ -3823,7 +3825,7 @@ sub pandora_evaluate_snmp_alerts ($$$$$$$$$) {
|
||||
# Check time threshold
|
||||
$alert->{'last_fired'} = '1970-01-01 00:00:00' unless defined ($alert->{'last_fired'});
|
||||
return unless ($alert->{'last_fired'} =~ /(\d+)\-(\d+)\-(\d+) +(\d+):(\d+):(\d+)/);
|
||||
my $last_fired = ($1 > 0) ? timelocal($6, $5, $4, $3, $2 - 1, $1 - 1900) : 0;
|
||||
my $last_fired = ($1 > 0) ? strftime("%s", $6, $5, $4, $3, $2 - 1, $1 - 1900) : 0;
|
||||
|
||||
my $utimestamp = time ();
|
||||
my $timestamp = strftime ("%Y-%m-%d %H:%M:%S", localtime($utimestamp));
|
||||
|
@ -309,7 +309,7 @@ sub process_xml_data ($$$$$) {
|
||||
my $utimestamp = 0;
|
||||
eval {
|
||||
if ($timestamp =~ /(\d+)[\/|\-](\d+)[\/|\-](\d+) +(\d+):(\d+):(\d+)/) {
|
||||
$utimestamp = timelocal($6, $5, $4, $3, $2 -1 , $1 - 1900);
|
||||
$utimestamp = strftime("%s", $6, $5, $4, $3, $2 -1 , $1 - 1900);
|
||||
}
|
||||
};
|
||||
|
||||
@ -837,7 +837,7 @@ sub process_module_data ($$$$$$$$$$) {
|
||||
}
|
||||
my $utimestamp;
|
||||
eval {
|
||||
$utimestamp = timelocal($6, $5, $4, $3, $2 - 1, $1 - 1900);
|
||||
$utimestamp = strftime("%s", $6, $5, $4, $3, $2 - 1, $1 - 1900);
|
||||
};
|
||||
if ($@) {
|
||||
logger($pa_config, "Invalid timestamp '$timestamp' from module '$module_name' agent '$agent_name'.", 3);
|
||||
|
@ -32,7 +32,7 @@ our @ISA = qw(Exporter);
|
||||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.742";
|
||||
my $pandora_build = "191218";
|
||||
my $pandora_build = "200109";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||
@ -2382,7 +2382,7 @@ sub get_unix_time {
|
||||
eval {
|
||||
use Time::Local;
|
||||
my ($mday,$mon,$year,$hour,$min,$sec) = split(/[\s$separator_dates$separator_hours]+/, $str_time);
|
||||
$time = timelocal($sec,$min,$hour,$mday,$mon-1,$year);
|
||||
$time = strftime("%s", $sec,$min,$hour,$mday,$mon-1,$year);
|
||||
};
|
||||
if ($@) {
|
||||
return 0;
|
||||
|
@ -1734,7 +1734,7 @@ sub cron_valid_date {
|
||||
my $utime;
|
||||
eval {
|
||||
local $SIG{__DIE__} = sub {};
|
||||
$utime = timelocal(0, $min, $hour, $mday, $month, $year);
|
||||
$utime = strftime("%s", 0, $min, $hour, $mday, $month, $year);
|
||||
};
|
||||
if ($@) {
|
||||
return 0;
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.742
|
||||
%define release 191218
|
||||
%define release 200109
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.742
|
||||
%define release 191218
|
||||
%define release 200109
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
@ -9,7 +9,7 @@
|
||||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.742"
|
||||
PI_BUILD="191218"
|
||||
PI_BUILD="200109"
|
||||
|
||||
MODE=$1
|
||||
if [ $# -gt 1 ]; then
|
||||
|
@ -216,7 +216,7 @@ sub process_module_data ($$$$$$$$$) {
|
||||
$timestamp !~ /(\d+)\-(\d+)\-(\d+) +(\d+):(\d+):(\d+)/) {
|
||||
}
|
||||
my $utimestamp;
|
||||
$utimestamp = timelocal($6, $5, $4, $3, $2 - 1, $1 - 1900);
|
||||
$utimestamp = strftime("%s", $6, $5, $4, $3, $2 - 1, $1 - 1900);
|
||||
|
||||
my %data_object;
|
||||
|
||||
|
@ -34,7 +34,7 @@ use PandoraFMS::Config;
|
||||
use PandoraFMS::DB;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.742 PS191218";
|
||||
my $version = "7.0NG.742 PS200109";
|
||||
|
||||
# Pandora server configuration
|
||||
my %conf;
|
||||
|
@ -36,7 +36,7 @@ use Encode::Locale;
|
||||
Encode::Locale::decode_argv;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.742 PS191218";
|
||||
my $version = "7.0NG.742 PS200109";
|
||||
|
||||
# save program name for logging
|
||||
my $progname = basename($0);
|
||||
@ -640,9 +640,9 @@ sub pandora_delete_module_data ($$) {
|
||||
my $buffer = 1000;
|
||||
|
||||
while(1) {
|
||||
my $nd = get_db_value ($dbh, 'SELECT count(id_agente_modulo) FROM tagente_datos_string WHERE id_agente_modulo=?', $id_module);
|
||||
my $ndinc = get_db_value ($dbh, 'SELECT count(id_agente_modulo) FROM tagente_datos_string WHERE id_agente_modulo=?', $id_module);
|
||||
my $ndlog4x = get_db_value ($dbh, 'SELECT count(id_agente_modulo) FROM tagente_datos_string WHERE id_agente_modulo=?', $id_module);
|
||||
my $nd = get_db_value ($dbh, 'SELECT count(id_agente_modulo) FROM tagente_datos WHERE id_agente_modulo=?', $id_module);
|
||||
my $ndinc = get_db_value ($dbh, 'SELECT count(id_agente_modulo) FROM tagente_datos_inc WHERE id_agente_modulo=?', $id_module);
|
||||
my $ndlog4x = get_db_value ($dbh, 'SELECT count(id_agente_modulo) FROM tagente_datos_log4x WHERE id_agente_modulo=?', $id_module);
|
||||
my $ndstring = get_db_value ($dbh, 'SELECT count(id_agente_modulo) FROM tagente_datos_string WHERE id_agente_modulo=?', $id_module);
|
||||
|
||||
my $ntot = $nd + $ndinc + $ndlog4x + $ndstring;
|
||||
@ -652,19 +652,19 @@ sub pandora_delete_module_data ($$) {
|
||||
}
|
||||
|
||||
if($nd > 0) {
|
||||
db_do ($dbh, 'DELETE FROM tagente_datos WHERE id_agente_modulo=? LIMIT ?', $id_module, $buffer);
|
||||
db_delete_limit($dbh, 'tagente_datos', 'id_agente_modulo='.$id_module, $buffer);
|
||||
}
|
||||
|
||||
if($ndinc > 0) {
|
||||
db_do ($dbh, 'DELETE FROM tagente_datos_inc WHERE id_agente_modulo=? LIMIT ?', $id_module, $buffer);
|
||||
db_delete_limit($dbh, 'tagente_datos_inc', 'id_agente_modulo='.$id_module, $buffer);
|
||||
}
|
||||
|
||||
if($ndlog4x > 0) {
|
||||
db_do ($dbh, 'DELETE FROM tagente_datos_log4x WHERE id_agente_modulo=? LIMIT ?', $id_module, $buffer);
|
||||
db_delete_limit($dbh, 'tagente_datos_log4x', 'id_agente_modulo='.$id_module, $buffer);
|
||||
}
|
||||
|
||||
if($ndstring > 0) {
|
||||
db_do ($dbh, 'DELETE FROM tagente_datos_string WHERE id_agente_modulo=? LIMIT ?', $id_module, $buffer);
|
||||
db_delete_limit($dbh, 'tagente_datos_string', 'id_agente_modulo='.$id_module, $buffer);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4416,7 +4416,7 @@ sub cli_delete_data($) {
|
||||
|
||||
print_log "DELETING THE DATA OF THE AGENT $name\n\n";
|
||||
|
||||
pandora_delete_data($dbh, 'module', $id_agent);
|
||||
pandora_delete_data($dbh, 'agent', $id_agent);
|
||||
}
|
||||
} else {
|
||||
my $id_agent = get_agent_id($dbh,$name);
|
||||
@ -4424,7 +4424,7 @@ sub cli_delete_data($) {
|
||||
|
||||
print_log "DELETING THE DATA OF THE AGENT $name\n\n";
|
||||
|
||||
pandora_delete_data($dbh, 'module', $id_agent);
|
||||
pandora_delete_data($dbh, 'agent', $id_agent);
|
||||
}
|
||||
}
|
||||
elsif($opt eq '-g' || $opt eq '--g') {
|
||||
|
@ -112,13 +112,13 @@ sub generate_xml_files ($$$$$$) {
|
||||
my $time_from = get_conf_token ($conf, 'time_from', $time_now);
|
||||
die ("[error] Invalid time_from: $time_from\n\n")
|
||||
unless ($time_from =~ /(\d+)\-(\d+)\-(\d+) +(\d+):(\d+):(\d+)/);
|
||||
my $utimestamp_from = timelocal($6, $5, $4, $3, $2 - 1, $1 - 1900);
|
||||
my $utimestamp_from = strftime("%s", $6, $5, $4, $3, $2 - 1, $1 - 1900);
|
||||
|
||||
# Get time_to
|
||||
my $time_to = get_conf_token ($conf, 'time_to', $time_now);
|
||||
die ("[error] Invalid time_to: $time_to\n\n")
|
||||
unless ($time_to =~ /(\d+)\-(\d+)\-(\d+) +(\d+):(\d+):(\d+)/);
|
||||
my $utimestamp_to = timelocal($6, $5, $4, $3, $2 - 1, $1 - 1900);
|
||||
my $utimestamp_to = strftime("%s", $6, $5, $4, $3, $2 - 1, $1 - 1900);
|
||||
|
||||
my %modules_src_pointers = init_src_pointers($modules);
|
||||
|
||||
|