helpers
Former-commit-id: 56c67397cb17ca0ebc28e2903c378fcda10a6536
This commit is contained in:
parent
ad4fc07492
commit
ac41e9255f
pandora_console
extensions
godmode
agentes
alerts
gis_maps
massive
reporting
snmpconsole
include
operation
|
@ -138,8 +138,15 @@ function mainAgentsAlerts()
|
||||||
$onheader['combo_refr'] = $comborefr;
|
$onheader['combo_refr'] = $comborefr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header
|
// Header.
|
||||||
ui_print_page_header(__('Agents/Alerts'), 'images/op_alerts.png', false, '', false, $updated_time);
|
ui_print_page_header(
|
||||||
|
__('Agents/Alerts'),
|
||||||
|
'images/op_alerts.png',
|
||||||
|
false,
|
||||||
|
'agents_alerts_view',
|
||||||
|
false,
|
||||||
|
$updated_time
|
||||||
|
);
|
||||||
|
|
||||||
// Old style table, we need a lot of special formatting,don't use table function
|
// Old style table, we need a lot of special formatting,don't use table function
|
||||||
// Prepare old-style table
|
// Prepare old-style table
|
||||||
|
|
|
@ -181,8 +181,15 @@ function mainAgentsModules()
|
||||||
// Old style table, we need a lot of special formatting,don't use table function
|
// Old style table, we need a lot of special formatting,don't use table function
|
||||||
// Prepare old-style table
|
// Prepare old-style table
|
||||||
if ($config['pure'] == 0) {
|
if ($config['pure'] == 0) {
|
||||||
// Header
|
// Header.
|
||||||
ui_print_page_header(__('Agents/Modules'), 'images/module_mc.png', false, '', false, $updated_time);
|
ui_print_page_header(
|
||||||
|
__('Agents/Modules'),
|
||||||
|
'images/module_mc.png',
|
||||||
|
false,
|
||||||
|
'agents_module_view',
|
||||||
|
false,
|
||||||
|
$updated_time
|
||||||
|
);
|
||||||
echo '<table style="width:100%;">';
|
echo '<table style="width:100%;">';
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
echo "<td> <span style='float: right;'>".$fullscreen['text'].'</span> </td>';
|
echo "<td> <span style='float: right;'>".$fullscreen['text'].'</span> </td>';
|
||||||
|
@ -826,4 +833,4 @@ $ignored_params['refresh'] = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -192,7 +192,14 @@ function mainModuleGroups()
|
||||||
$array_data[$value['id_grupo']][$value['id_mg']] = $value;
|
$array_data[$value['id_grupo']][$value['id_mg']] = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
ui_print_page_header(__('Combined table of agent group and module group'), 'images/module_group.png', false, '', false, '');
|
ui_print_page_header(
|
||||||
|
__('Combined table of agent group and module group'),
|
||||||
|
'images/module_group.png',
|
||||||
|
false,
|
||||||
|
'module_groups_view',
|
||||||
|
false,
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
echo "<table cellpadding='4' cellspacing='4' class='databox filters' width='100%' style='font-weight: bold; margin-bottom: 10px;'>
|
echo "<table cellpadding='4' cellspacing='4' class='databox filters' width='100%' style='font-weight: bold; margin-bottom: 10px;'>
|
||||||
<tr>";
|
<tr>";
|
||||||
|
|
|
@ -29,7 +29,14 @@ function pandora_realtime_graphs()
|
||||||
|
|
||||||
$hide_header = get_parameter('hide_header', 0);
|
$hide_header = get_parameter('hide_header', 0);
|
||||||
if (!$hide_header) {
|
if (!$hide_header) {
|
||||||
ui_print_page_header(__('Realtime graphs'), 'images/extensions.png', false, '', false, $onheader);
|
ui_print_page_header(
|
||||||
|
__('Realtime graphs'),
|
||||||
|
'images/extensions.png',
|
||||||
|
false,
|
||||||
|
'real_time_view',
|
||||||
|
false,
|
||||||
|
$onheader
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$chart[time()]['graph'] = '0';
|
$chart[time()]['graph'] = '0';
|
||||||
|
|
|
@ -334,9 +334,9 @@ $table->data[7][1] = html_print_select(
|
||||||
__('None'),
|
__('None'),
|
||||||
0,
|
0,
|
||||||
true
|
true
|
||||||
).' '.ui_print_help_icon('agent_server', true);
|
);
|
||||||
|
|
||||||
// Description
|
// Description.
|
||||||
$table->data[8][0] = __('Description');
|
$table->data[8][0] = __('Description');
|
||||||
$table->data[8][1] = html_print_input_text(
|
$table->data[8][1] = html_print_input_text(
|
||||||
'comentarios',
|
'comentarios',
|
||||||
|
@ -362,7 +362,7 @@ $table->data = [];
|
||||||
|
|
||||||
if (enterprise_installed()) {
|
if (enterprise_installed()) {
|
||||||
$secondary_groups_selected = enterprise_hook('agents_get_secondary_groups', [$id_agente]);
|
$secondary_groups_selected = enterprise_hook('agents_get_secondary_groups', [$id_agente]);
|
||||||
$table->data['secondary_groups'][0] = __('Secondary groups').ui_print_help_icon('secondary_groups', true);
|
$table->data['secondary_groups'][0] = __('Secondary groups');
|
||||||
$table->data['secondary_groups'][1] = html_print_select_groups(
|
$table->data['secondary_groups'][1] = html_print_select_groups(
|
||||||
false,
|
false,
|
||||||
// Use the current user to select the groups
|
// Use the current user to select the groups
|
||||||
|
@ -535,12 +535,12 @@ $params['cascade_protection'] = true;
|
||||||
|
|
||||||
$table->data[1][1] = ui_print_agent_autocomplete_input($params);
|
$table->data[1][1] = ui_print_agent_autocomplete_input($params);
|
||||||
if (enterprise_installed()) {
|
if (enterprise_installed()) {
|
||||||
$table->data[1][1] .= html_print_checkbox('cascade_protection', 1, $cascade_protection, true).__('Cascade protection').' '.ui_print_help_icon('cascade_protection', true);
|
$table->data[1][1] .= html_print_checkbox('cascade_protection', 1, $cascade_protection, true).__('Cascade protection');
|
||||||
}
|
}
|
||||||
|
|
||||||
$table->data[1][1] .= ' '.__('Module').' '.html_print_select($modules_values, 'cascade_protection_module', $cascade_protection_module, '', '', 0, true);
|
$table->data[1][1] .= ' '.__('Module').' '.html_print_select($modules_values, 'cascade_protection_module', $cascade_protection_module, '', '', 0, true);
|
||||||
// Learn mode / Normal mode
|
// Learn mode / Normal mode
|
||||||
$table->data[3][0] = __('Module definition').ui_print_help_icon('module_definition', true);
|
$table->data[3][0] = __('Module definition');
|
||||||
$table->data[3][1] = __('Learning mode').' '.html_print_radio_button_extended(
|
$table->data[3][1] = __('Learning mode').' '.html_print_radio_button_extended(
|
||||||
'modo',
|
'modo',
|
||||||
1,
|
1,
|
||||||
|
|
|
@ -574,10 +574,11 @@ if ($id_agente) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$help_header = '';
|
$help_header = '';
|
||||||
// This add information to the header
|
// This add information to the header.
|
||||||
switch ($tab) {
|
switch ($tab) {
|
||||||
case 'main':
|
case 'main':
|
||||||
$tab_description = '- '.__('Setup');
|
$tab_description = '- '.__('Setup');
|
||||||
|
$help_header = 'main_tab';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'collection':
|
case 'collection':
|
||||||
|
|
|
@ -1,16 +1,32 @@
|
||||||
<?php
|
<?php
|
||||||
// Pandora FMS - http://pandorafms.com
|
/**
|
||||||
// ==================================================
|
* Extension to manage a list of gateways and the node address where they should
|
||||||
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
* point to.
|
||||||
// Please see http://pandorafms.org for full contribution list
|
*
|
||||||
// This program is free software; you can redistribute it and/or
|
* @category Planned Donwtimes
|
||||||
// modify it under the terms of the GNU General Public License
|
* @package Pandora FMS
|
||||||
// as published by the Free Software Foundation for version 2.
|
* @subpackage Community
|
||||||
// This program is distributed in the hope that it will be useful,
|
* @version 1.0.0
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* @license See below
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
*
|
||||||
// GNU General Public License for more details.
|
* ______ ___ _______ _______ ________
|
||||||
// Load global vars
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* 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.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
check_login();
|
check_login();
|
||||||
|
@ -27,82 +43,119 @@ if (!$agent_d && !$agent_w) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default
|
// Default.
|
||||||
set_unless_defined($config['past_planned_downtimes'], 1);
|
set_unless_defined($config['past_planned_downtimes'], 1);
|
||||||
|
|
||||||
require_once 'include/functions_users.php';
|
require_once 'include/functions_users.php';
|
||||||
|
|
||||||
// Buttons
|
// Buttons.
|
||||||
$buttons = [
|
$buttons = [
|
||||||
'text' => "<a href='index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list'>".html_print_image('images/list.png', true, ['title' => __('List')]).'</a>',
|
'text' => "<a href='index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list'>".html_print_image(
|
||||||
|
'images/list.png',
|
||||||
|
true,
|
||||||
|
['title' => __('List')]
|
||||||
|
).'</a>',
|
||||||
];
|
];
|
||||||
|
|
||||||
// Header
|
// Header.
|
||||||
ui_print_page_header(
|
ui_print_page_header(
|
||||||
__('Planned Downtime'),
|
__('Planned Downtime'),
|
||||||
'images/gm_monitoring.png',
|
'images/gm_monitoring.png',
|
||||||
false,
|
false,
|
||||||
'planned_downtime',
|
'planned_downtime_editor',
|
||||||
true,
|
true,
|
||||||
$buttons
|
$buttons
|
||||||
);
|
);
|
||||||
|
|
||||||
// recursion group filter
|
// Recursion group filter.
|
||||||
$recursion = get_parameter('recursion', $_POST['recursion']);
|
$recursion = get_parameter('recursion', $_POST['recursion']);
|
||||||
|
|
||||||
|
|
||||||
// Initialize data
|
// Initialize data.
|
||||||
$id_group = (int) get_parameter('id_group');
|
$id_group = (int) get_parameter('id_group');
|
||||||
$name = (string) get_parameter('name');
|
$name = (string) get_parameter('name');
|
||||||
$description = (string) get_parameter('description');
|
$description = (string) get_parameter('description');
|
||||||
|
|
||||||
$type_downtime = (string) get_parameter('type_downtime', 'quiet');
|
$type_downtime = (string) get_parameter('type_downtime', 'quiet');
|
||||||
$type_execution = (string) get_parameter('type_execution', 'once');
|
$type_execution = (string) get_parameter('type_execution', 'once');
|
||||||
$type_periodicity = (string) get_parameter('type_periodicity', 'weekly');
|
$type_periodicity = (string) get_parameter('type_periodicity', 'weekly');
|
||||||
|
|
||||||
$utimestamp = get_system_time();
|
$utimestamp = get_system_time();
|
||||||
// Fake utimestamp to retrieve the string date of the system
|
// Fake utimestamp to retrieve the string date of the system.
|
||||||
$system_time = ($utimestamp - get_fixed_offset());
|
$system_time = ($utimestamp - get_fixed_offset());
|
||||||
|
|
||||||
$once_date_from = (string) get_parameter('once_date_from', date(DATE_FORMAT, $utimestamp));
|
$once_date_from = (string) get_parameter(
|
||||||
$once_time_from = (string) get_parameter('once_time_from', date(TIME_FORMAT, $utimestamp));
|
'once_date_from',
|
||||||
$once_date_to = (string) get_parameter('once_date_to', date(DATE_FORMAT, $utimestamp));
|
date(DATE_FORMAT, $utimestamp)
|
||||||
$once_time_to = (string) get_parameter('once_time_to', date(TIME_FORMAT, ($utimestamp + SECONDS_1HOUR)));
|
);
|
||||||
|
$once_time_from = (string) get_parameter(
|
||||||
|
'once_time_from',
|
||||||
|
date(TIME_FORMAT, $utimestamp)
|
||||||
|
);
|
||||||
|
$once_date_to = (string) get_parameter(
|
||||||
|
'once_date_to',
|
||||||
|
date(DATE_FORMAT, $utimestamp)
|
||||||
|
);
|
||||||
|
$once_time_to = (string) get_parameter(
|
||||||
|
'once_time_to',
|
||||||
|
date(TIME_FORMAT, ($utimestamp + SECONDS_1HOUR))
|
||||||
|
);
|
||||||
|
|
||||||
$periodically_day_from = (int) get_parameter('periodically_day_from', 1);
|
$periodically_day_from = (int) get_parameter(
|
||||||
$periodically_day_to = (int) get_parameter('periodically_day_to', 31);
|
'periodically_day_from',
|
||||||
$periodically_time_from = (string) get_parameter('periodically_time_from', date(TIME_FORMAT, $system_time));
|
1
|
||||||
$periodically_time_to = (string) get_parameter('periodically_time_to', date(TIME_FORMAT, ($system_time + SECONDS_1HOUR)));
|
);
|
||||||
|
$periodically_day_to = (int) get_parameter(
|
||||||
|
'periodically_day_to',
|
||||||
|
31
|
||||||
|
);
|
||||||
|
$periodically_time_from = (string) get_parameter(
|
||||||
|
'periodically_time_from',
|
||||||
|
date(TIME_FORMAT, $system_time)
|
||||||
|
);
|
||||||
|
$periodically_time_to = (string) get_parameter(
|
||||||
|
'periodically_time_to',
|
||||||
|
date(TIME_FORMAT, ($system_time + SECONDS_1HOUR))
|
||||||
|
);
|
||||||
|
|
||||||
$monday = (bool) get_parameter('monday');
|
$monday = (bool) get_parameter('monday');
|
||||||
$tuesday = (bool) get_parameter('tuesday');
|
$tuesday = (bool) get_parameter('tuesday');
|
||||||
$wednesday = (bool) get_parameter('wednesday');
|
$wednesday = (bool) get_parameter('wednesday');
|
||||||
$thursday = (bool) get_parameter('thursday');
|
$thursday = (bool) get_parameter('thursday');
|
||||||
$friday = (bool) get_parameter('friday');
|
$friday = (bool) get_parameter('friday');
|
||||||
$saturday = (bool) get_parameter('saturday');
|
$saturday = (bool) get_parameter('saturday');
|
||||||
$sunday = (bool) get_parameter('sunday');
|
$sunday = (bool) get_parameter('sunday');
|
||||||
|
|
||||||
$first_create = (int) get_parameter('first_create');
|
$first_create = (int) get_parameter('first_create');
|
||||||
$create_downtime = (int) get_parameter('create_downtime');
|
$create_downtime = (int) get_parameter('create_downtime');
|
||||||
$update_downtime = (int) get_parameter('update_downtime');
|
$update_downtime = (int) get_parameter('update_downtime');
|
||||||
$edit_downtime = (int) get_parameter('edit_downtime');
|
$edit_downtime = (int) get_parameter('edit_downtime');
|
||||||
$id_downtime = (int) get_parameter('id_downtime');
|
$id_downtime = (int) get_parameter('id_downtime');
|
||||||
|
|
||||||
$id_agent = (int) get_parameter('id_agent');
|
$id_agent = (int) get_parameter('id_agent');
|
||||||
$insert_downtime_agent = (int) get_parameter('insert_downtime_agent');
|
$insert_downtime_agent = (int) get_parameter('insert_downtime_agent');
|
||||||
$delete_downtime_agent = (int) get_parameter('delete_downtime_agent');
|
$delete_downtime_agent = (int) get_parameter('delete_downtime_agent');
|
||||||
|
|
||||||
$modules_selection_mode = (string) get_parameter('modules_selection_mode');
|
$modules_selection_mode = (string) get_parameter('modules_selection_mode');
|
||||||
|
|
||||||
// User groups with AD or AW permission for ACL checks
|
// User groups with AD or AW permission for ACL checks.
|
||||||
$user_groups_ad = array_keys(users_get_groups($config['id_user'], $access));
|
$user_groups_ad = array_keys(
|
||||||
|
users_get_groups($config['id_user'], $access)
|
||||||
|
);
|
||||||
|
|
||||||
// INSERT A NEW DOWNTIME_AGENT ASSOCIATION
|
// INSERT A NEW DOWNTIME_AGENT ASSOCIATION.
|
||||||
if ($insert_downtime_agent === 1) {
|
if ($insert_downtime_agent === 1) {
|
||||||
// Check AD permission on downtime
|
// Check AD permission on downtime.
|
||||||
$downtime_group = db_get_value('id_group', 'tplanned_downtime', 'id', $id_downtime);
|
$downtime_group = db_get_value(
|
||||||
|
'id_group',
|
||||||
|
'tplanned_downtime',
|
||||||
|
'id',
|
||||||
|
$id_downtime
|
||||||
|
);
|
||||||
|
|
||||||
if ($downtime_group === false || !in_array($downtime_group, $user_groups_ad)) {
|
if ($downtime_group === false
|
||||||
|
|| !in_array($downtime_group, $user_groups_ad)
|
||||||
|
) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
'ACL Violation',
|
'ACL Violation',
|
||||||
'Trying to access downtime scheduler'
|
'Trying to access downtime scheduler'
|
||||||
|
@ -116,17 +169,27 @@ if ($insert_downtime_agent === 1) {
|
||||||
|
|
||||||
$all_modules = (empty($module_names) || ($module_names[0] === '0'));
|
$all_modules = (empty($module_names) || ($module_names[0] === '0'));
|
||||||
|
|
||||||
// 'Is running' check
|
// 'Is running' check.
|
||||||
$is_running = (bool) db_get_value('executed', 'tplanned_downtime', 'id', $id_downtime);
|
$is_running = (bool) db_get_value(
|
||||||
|
'executed',
|
||||||
|
'tplanned_downtime',
|
||||||
|
'id',
|
||||||
|
$id_downtime
|
||||||
|
);
|
||||||
if ($is_running) {
|
if ($is_running) {
|
||||||
ui_print_error_message(__('This elements cannot be modified while the downtime is being executed'));
|
ui_print_error_message(
|
||||||
|
__('This elements cannot be modified while the downtime is being executed')
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
foreach ($agents as $agent_id) {
|
foreach ($agents as $agent_id) {
|
||||||
// check module belongs to the agent
|
// Check module belongs to the agent.
|
||||||
if ($modules_selection_mode == 'all') {
|
if ($modules_selection_mode == 'all') {
|
||||||
$check = false;
|
$check = false;
|
||||||
foreach ($module_names as $module_name) {
|
foreach ($module_names as $module_name) {
|
||||||
$check_module = modules_get_agentmodule_id($module_name, $agent_id);
|
$check_module = modules_get_agentmodule_id(
|
||||||
|
$module_name,
|
||||||
|
$agent_id
|
||||||
|
);
|
||||||
if (!empty($check_module)) {
|
if (!empty($check_module)) {
|
||||||
$check = true;
|
$check = true;
|
||||||
}
|
}
|
||||||
|
@ -137,10 +200,17 @@ if ($insert_downtime_agent === 1) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check AD permission on agent
|
// Check AD permission on agent.
|
||||||
$agent_group = db_get_value('id_grupo', 'tagente', 'id_agente', $agent_id);
|
$agent_group = db_get_value(
|
||||||
|
'id_grupo',
|
||||||
|
'tagente',
|
||||||
|
'id_agente',
|
||||||
|
$agent_id
|
||||||
|
);
|
||||||
|
|
||||||
if ($agent_group === false || !in_array($agent_group, $user_groups_ad)) {
|
if ($agent_group === false
|
||||||
|
|| !in_array($agent_group, $user_groups_ad)
|
||||||
|
) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,11 +219,17 @@ if ($insert_downtime_agent === 1) {
|
||||||
'id_agent' => $agent_id,
|
'id_agent' => $agent_id,
|
||||||
'all_modules' => $all_modules,
|
'all_modules' => $all_modules,
|
||||||
];
|
];
|
||||||
$result = db_process_sql_insert('tplanned_downtime_agents', $values);
|
$result = db_process_sql_insert(
|
||||||
|
'tplanned_downtime_agents',
|
||||||
|
$values
|
||||||
|
);
|
||||||
|
|
||||||
if ($result && !$all_modules) {
|
if ($result && !$all_modules) {
|
||||||
foreach ($module_names as $module_name) {
|
foreach ($module_names as $module_name) {
|
||||||
$module = modules_get_agentmodule_id($module_name, $agent_id);
|
$module = modules_get_agentmodule_id(
|
||||||
|
$module_name,
|
||||||
|
$agent_id
|
||||||
|
);
|
||||||
|
|
||||||
if (empty($module)) {
|
if (empty($module)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -164,7 +240,10 @@ if ($insert_downtime_agent === 1) {
|
||||||
'id_agent' => $agent_id,
|
'id_agent' => $agent_id,
|
||||||
'id_agent_module' => $module['id_agente_modulo'],
|
'id_agent_module' => $module['id_agente_modulo'],
|
||||||
];
|
];
|
||||||
$result = db_process_sql_insert('tplanned_downtime_modules', $values);
|
$result = db_process_sql_insert(
|
||||||
|
'tplanned_downtime_modules',
|
||||||
|
$values
|
||||||
|
);
|
||||||
|
|
||||||
if ($result) {
|
if ($result) {
|
||||||
$values = ['id_user' => $config['id_user']];
|
$values = ['id_user' => $config['id_user']];
|
||||||
|
@ -180,14 +259,21 @@ if ($insert_downtime_agent === 1) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// DELETE A DOWNTIME_AGENT ASSOCIATION
|
// DELETE A DOWNTIME_AGENT ASSOCIATION.
|
||||||
if ($delete_downtime_agent === 1) {
|
if ($delete_downtime_agent === 1) {
|
||||||
$id_da = (int) get_parameter('id_downtime_agent');
|
$id_da = (int) get_parameter('id_downtime_agent');
|
||||||
|
|
||||||
// Check AD permission on downtime
|
// Check AD permission on downtime.
|
||||||
$downtime_group = db_get_value('id_group', 'tplanned_downtime', 'id', $id_downtime);
|
$downtime_group = db_get_value(
|
||||||
|
'id_group',
|
||||||
|
'tplanned_downtime',
|
||||||
|
'id',
|
||||||
|
$id_downtime
|
||||||
|
);
|
||||||
|
|
||||||
if ($downtime_group === false || !in_array($downtime_group, $user_groups_ad)) {
|
if ($downtime_group === false
|
||||||
|
|| !in_array($downtime_group, $user_groups_ad)
|
||||||
|
) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
'ACL Violation',
|
'ACL Violation',
|
||||||
'Trying to access downtime scheduler'
|
'Trying to access downtime scheduler'
|
||||||
|
@ -196,10 +282,17 @@ if ($delete_downtime_agent === 1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check AD permission on agent
|
// Check AD permission on agent.
|
||||||
$agent_group = db_get_value('id_grupo', 'tagente', 'id_agente', $id_agent);
|
$agent_group = db_get_value(
|
||||||
|
'id_grupo',
|
||||||
|
'tagente',
|
||||||
|
'id_agente',
|
||||||
|
$id_agent
|
||||||
|
);
|
||||||
|
|
||||||
if ($agent_group === false || !in_array($agent_group, $user_groups_ad)) {
|
if ($agent_group === false
|
||||||
|
|| !in_array($agent_group, $user_groups_ad)
|
||||||
|
) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
'ACL Violation',
|
'ACL Violation',
|
||||||
'Trying to access downtime scheduler'
|
'Trying to access downtime scheduler'
|
||||||
|
@ -208,17 +301,27 @@ if ($delete_downtime_agent === 1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 'Is running' check
|
// 'Is running' check.
|
||||||
$is_running = (bool) db_get_value('executed', 'tplanned_downtime', 'id', $id_downtime);
|
$is_running = (bool) db_get_value(
|
||||||
|
'executed',
|
||||||
|
'tplanned_downtime',
|
||||||
|
'id',
|
||||||
|
$id_downtime
|
||||||
|
);
|
||||||
if ($is_running) {
|
if ($is_running) {
|
||||||
ui_print_error_message(__('This elements cannot be modified while the downtime is being executed'));
|
ui_print_error_message(
|
||||||
|
__('This elements cannot be modified while the downtime is being executed')
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
$row_to_delete = db_get_row('tplanned_downtime_agents', 'id', $id_da);
|
$row_to_delete = db_get_row('tplanned_downtime_agents', 'id', $id_da);
|
||||||
|
|
||||||
$result = db_process_sql_delete('tplanned_downtime_agents', ['id' => $id_da]);
|
$result = db_process_sql_delete(
|
||||||
|
'tplanned_downtime_agents',
|
||||||
|
['id' => $id_da]
|
||||||
|
);
|
||||||
|
|
||||||
if ($result) {
|
if ($result) {
|
||||||
// Delete modules in downtime
|
// Delete modules in downtime.
|
||||||
db_process_sql_delete(
|
db_process_sql_delete(
|
||||||
'tplanned_downtime_modules',
|
'tplanned_downtime_modules',
|
||||||
[
|
[
|
||||||
|
@ -230,7 +333,7 @@ if ($delete_downtime_agent === 1) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// UPDATE OR CREATE A DOWNTIME (MAIN DATA, NOT AGENT ASSOCIATION)
|
// UPDATE OR CREATE A DOWNTIME (MAIN DATA, NOT AGENT ASSOCIATION).
|
||||||
if ($create_downtime || $update_downtime) {
|
if ($create_downtime || $update_downtime) {
|
||||||
$check = (bool) db_get_value('name', 'tplanned_downtime', 'name', $name);
|
$check = (bool) db_get_value('name', 'tplanned_downtime', 'name', $name);
|
||||||
|
|
||||||
|
@ -239,22 +342,32 @@ if ($create_downtime || $update_downtime) {
|
||||||
$now = time();
|
$now = time();
|
||||||
|
|
||||||
if ($type_execution == 'once' && !$config['past_planned_downtimes'] && $datetime_from < $now) {
|
if ($type_execution == 'once' && !$config['past_planned_downtimes'] && $datetime_from < $now) {
|
||||||
ui_print_error_message(__('Not created. Error inserting data. Start time must be higher than the current time'));
|
ui_print_error_message(
|
||||||
|
__('Not created. Error inserting data. Start time must be higher than the current time')
|
||||||
|
);
|
||||||
} else if ($type_execution == 'once' && $datetime_from >= $datetime_to) {
|
} else if ($type_execution == 'once' && $datetime_from >= $datetime_to) {
|
||||||
ui_print_error_message(__('Not created. Error inserting data').'. '.__('The end date must be higher than the start date'));
|
ui_print_error_message(
|
||||||
|
__('Not created. Error inserting data').'. '.__('The end date must be higher than the start date')
|
||||||
|
);
|
||||||
} else if ($type_execution == 'once' && $datetime_to <= $now && !$config['past_planned_downtimes']) {
|
} else if ($type_execution == 'once' && $datetime_to <= $now && !$config['past_planned_downtimes']) {
|
||||||
ui_print_error_message(__('Not created. Error inserting data').'. '.__('The end date must be higher than the current time'));
|
ui_print_error_message(
|
||||||
|
__('Not created. Error inserting data').'. '.__('The end date must be higher than the current time')
|
||||||
|
);
|
||||||
} else if ($type_execution == 'periodically'
|
} else if ($type_execution == 'periodically'
|
||||||
&& (($type_periodicity == 'weekly' && $periodically_time_from >= $periodically_time_to)
|
&& (($type_periodicity == 'weekly' && $periodically_time_from >= $periodically_time_to)
|
||||||
|| ($type_periodicity == 'monthly' && $periodically_day_from == $periodically_day_to && $periodically_time_from >= $periodically_time_to))
|
|| ($type_periodicity == 'monthly' && $periodically_day_from == $periodically_day_to && $periodically_time_from >= $periodically_time_to))
|
||||||
) {
|
) {
|
||||||
ui_print_error_message(__('Not created. Error inserting data').'. '.__('The end time must be higher than the start time'));
|
ui_print_error_message(
|
||||||
|
__('Not created. Error inserting data').'. '.__('The end time must be higher than the start time')
|
||||||
|
);
|
||||||
} else if ($type_execution == 'periodically' && $type_periodicity == 'monthly' && $periodically_day_from > $periodically_day_to) {
|
} else if ($type_execution == 'periodically' && $type_periodicity == 'monthly' && $periodically_day_from > $periodically_day_to) {
|
||||||
ui_print_error_message(__('Not created. Error inserting data').'. '.__('The end day must be higher than the start day'));
|
ui_print_error_message(
|
||||||
|
__('Not created. Error inserting data').'. '.__('The end day must be higher than the start day')
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
$sql = '';
|
$sql = '';
|
||||||
if ($create_downtime) {
|
if ($create_downtime) {
|
||||||
// Check AD permission on new downtime
|
// Check AD permission on new downtime.
|
||||||
if (!in_array($id_group, $user_groups_ad)) {
|
if (!in_array($id_group, $user_groups_ad)) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
'ACL Violation',
|
'ACL Violation',
|
||||||
|
@ -295,7 +408,10 @@ if ($create_downtime || $update_downtime) {
|
||||||
$values['periodically_time_to'] = '1970/01/01 '.$values['periodically_time_to'];
|
$values['periodically_time_to'] = '1970/01/01 '.$values['periodically_time_to'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = db_process_sql_insert('tplanned_downtime', $values);
|
$result = db_process_sql_insert(
|
||||||
|
'tplanned_downtime',
|
||||||
|
$values
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
ui_print_error_message(
|
ui_print_error_message(
|
||||||
__('Each planned downtime must have a different name')
|
__('Each planned downtime must have a different name')
|
||||||
|
@ -309,7 +425,7 @@ if ($create_downtime || $update_downtime) {
|
||||||
} else if ($update_downtime) {
|
} else if ($update_downtime) {
|
||||||
$old_downtime = db_get_row('tplanned_downtime', 'id', $id_downtime);
|
$old_downtime = db_get_row('tplanned_downtime', 'id', $id_downtime);
|
||||||
|
|
||||||
// Check AD permission on OLD downtime
|
// Check AD permission on OLD downtime.
|
||||||
if (empty($old_downtime) || !in_array($old_downtime['id_group'], $user_groups_ad)) {
|
if (empty($old_downtime) || !in_array($old_downtime['id_group'], $user_groups_ad)) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
'ACL Violation',
|
'ACL Violation',
|
||||||
|
@ -319,7 +435,7 @@ if ($create_downtime || $update_downtime) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check AD permission on NEW downtime group
|
// Check AD permission on NEW downtime group.
|
||||||
if (!in_array($id_group, $user_groups_ad)) {
|
if (!in_array($id_group, $user_groups_ad)) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
'ACL Violation',
|
'ACL Violation',
|
||||||
|
@ -329,14 +445,17 @@ if ($create_downtime || $update_downtime) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 'Is running' check
|
// 'Is running' check.
|
||||||
$is_running = (bool) $old_downtime['executed'];
|
$is_running = (bool) $old_downtime['executed'];
|
||||||
|
|
||||||
$values = [];
|
$values = [];
|
||||||
if (trim(io_safe_output($name)) == '') {
|
if (trim(io_safe_output($name)) == '') {
|
||||||
ui_print_error_message(__('Planned downtime must have a name'));
|
ui_print_error_message(
|
||||||
|
__('Planned downtime must have a name')
|
||||||
|
);
|
||||||
}
|
}
|
||||||
// When running only certain items can be modified for the 'once' type
|
|
||||||
|
// When running only certain items can be modified for the 'once' type.
|
||||||
else if ($is_running && $type_execution == 'once') {
|
else if ($is_running && $type_execution == 'once') {
|
||||||
$values = [
|
$values = [
|
||||||
'description' => $description,
|
'description' => $description,
|
||||||
|
@ -344,7 +463,9 @@ if ($create_downtime || $update_downtime) {
|
||||||
'id_user' => $config['id_user'],
|
'id_user' => $config['id_user'],
|
||||||
];
|
];
|
||||||
} else if ($is_running) {
|
} else if ($is_running) {
|
||||||
ui_print_error_message(__('Cannot be modified while the downtime is being executed'));
|
ui_print_error_message(
|
||||||
|
__('Cannot be modified while the downtime is being executed')
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
$values = [
|
$values = [
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
|
@ -376,7 +497,11 @@ if ($create_downtime || $update_downtime) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($values)) {
|
if (!empty($values)) {
|
||||||
$result = db_process_sql_update('tplanned_downtime', $values, ['id' => $id_downtime]);
|
$result = db_process_sql_update(
|
||||||
|
'tplanned_downtime',
|
||||||
|
$values,
|
||||||
|
['id' => $id_downtime]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -399,7 +524,7 @@ if ($create_downtime || $update_downtime) {
|
||||||
|
|
||||||
// Have any data to show ?
|
// Have any data to show ?
|
||||||
if ($id_downtime > 0) {
|
if ($id_downtime > 0) {
|
||||||
// Columns of the table tplanned_downtime
|
// Columns of the table tplanned_downtime.
|
||||||
$columns = [
|
$columns = [
|
||||||
'id',
|
'id',
|
||||||
'name',
|
'name',
|
||||||
|
@ -436,7 +561,8 @@ if ($id_downtime > 0) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'oracle':
|
case 'oracle':
|
||||||
// Oracle doesn't have TIME type, so we should transform the DATE value
|
// Oracle doesn't have TIME type,
|
||||||
|
// so we should transform the DATE value.
|
||||||
$new_time_from = "TO_CHAR(periodically_time_from, 'HH24:MI:SS') AS periodically_time_from";
|
$new_time_from = "TO_CHAR(periodically_time_from, 'HH24:MI:SS') AS periodically_time_from";
|
||||||
$new_time_to = "TO_CHAR(periodically_time_to, 'HH24:MI:SS') AS periodically_time_to";
|
$new_time_to = "TO_CHAR(periodically_time_to, 'HH24:MI:SS') AS periodically_time_to";
|
||||||
|
|
||||||
|
@ -500,7 +626,8 @@ if ($id_downtime > 0) {
|
||||||
$running = (bool) $result['executed'];
|
$running = (bool) $result['executed'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// when the planned downtime is in execution, only action to postpone on once type is enabled and the other are disabled.
|
// When the planned downtime is in execution,
|
||||||
|
// only action to postpone on once type is enabled and the other are disabled.
|
||||||
$disabled_in_execution = (int) $running;
|
$disabled_in_execution = (int) $running;
|
||||||
|
|
||||||
$table = new StdClass();
|
$table = new StdClass();
|
||||||
|
@ -508,11 +635,40 @@ $table->class = 'databox filters';
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
$table->data = [];
|
$table->data = [];
|
||||||
$table->data[0][0] = __('Name');
|
$table->data[0][0] = __('Name');
|
||||||
$table->data[0][1] = html_print_input_text('name', $name, '', 25, 40, true, $disabled_in_execution);
|
$table->data[0][1] = html_print_input_text(
|
||||||
|
'name',
|
||||||
|
$name,
|
||||||
|
'',
|
||||||
|
25,
|
||||||
|
40,
|
||||||
|
true,
|
||||||
|
$disabled_in_execution
|
||||||
|
);
|
||||||
$table->data[1][0] = __('Group');
|
$table->data[1][0] = __('Group');
|
||||||
$table->data[1][1] = html_print_select_groups(false, $access, true, 'id_group', $id_group, '', '', 0, true, false, true, '', $disabled_in_execution);
|
$table->data[1][1] = html_print_select_groups(
|
||||||
|
false,
|
||||||
|
$access,
|
||||||
|
true,
|
||||||
|
'id_group',
|
||||||
|
$id_group,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
0,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
'',
|
||||||
|
$disabled_in_execution
|
||||||
|
);
|
||||||
$table->data[2][0] = __('Description');
|
$table->data[2][0] = __('Description');
|
||||||
$table->data[2][1] = html_print_textarea('description', 3, 35, $description, '', true);
|
$table->data[2][1] = html_print_textarea(
|
||||||
|
'description',
|
||||||
|
3,
|
||||||
|
35,
|
||||||
|
$description,
|
||||||
|
'',
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$table->data[3][0] = __('Type').ui_print_help_tip(
|
$table->data[3][0] = __('Type').ui_print_help_tip(
|
||||||
__('Quiet: Modules will not generate events or fire alerts.').'<br>'.__('Disable Agents: Disables the selected agents.').'<br>'.__('Disable Alerts: Disable alerts for the selected agents.'),
|
__('Quiet: Modules will not generate events or fire alerts.').'<br>'.__('Disable Agents: Disables the selected agents.').'<br>'.__('Disable Alerts: Disable alerts for the selected agents.'),
|
||||||
|
@ -554,7 +710,7 @@ $table->data[4][1] = html_print_select(
|
||||||
);
|
);
|
||||||
|
|
||||||
$days = array_combine(range(1, 31), range(1, 31));
|
$days = array_combine(range(1, 31), range(1, 31));
|
||||||
$table->data[5][0] = __('Configure the time').' '.ui_print_help_icon('planned_downtime_time', true);
|
$table->data[5][0] = __('Configure the time').' ';
|
||||||
;
|
;
|
||||||
$table->data[5][1] = "
|
$table->data[5][1] = "
|
||||||
<div id='once_time' style='display: none;'>
|
<div id='once_time' style='display: none;'>
|
||||||
|
@ -678,7 +834,7 @@ if ($id_downtime > 0) {
|
||||||
echo "<tr><td width=75% valign='top'>";
|
echo "<tr><td width=75% valign='top'>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Editor form
|
// Editor form.
|
||||||
html_print_table($table);
|
html_print_table($table);
|
||||||
|
|
||||||
html_print_input_hidden('id_agent', $id_agent);
|
html_print_input_hidden('id_agent', $id_agent);
|
||||||
|
@ -686,10 +842,20 @@ echo '<div class="action-buttons" style="width: 100%">';
|
||||||
if ($id_downtime > 0) {
|
if ($id_downtime > 0) {
|
||||||
html_print_input_hidden('update_downtime', 1);
|
html_print_input_hidden('update_downtime', 1);
|
||||||
html_print_input_hidden('id_downtime', $id_downtime);
|
html_print_input_hidden('id_downtime', $id_downtime);
|
||||||
html_print_submit_button(__('Update'), 'updbutton', false, 'class="sub upd"');
|
html_print_submit_button(
|
||||||
|
__('Update'),
|
||||||
|
'updbutton',
|
||||||
|
false,
|
||||||
|
'class="sub upd"'
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
html_print_input_hidden('create_downtime', 1);
|
html_print_input_hidden('create_downtime', 1);
|
||||||
html_print_submit_button(__('Add'), 'crtbutton', false, 'class="sub wand"');
|
html_print_submit_button(
|
||||||
|
__('Add'),
|
||||||
|
'crtbutton',
|
||||||
|
false,
|
||||||
|
'class="sub wand"'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
|
@ -700,11 +866,11 @@ if ($id_downtime > 0) {
|
||||||
|
|
||||||
$filter_group = (int) get_parameter('filter_group', 0);
|
$filter_group = (int) get_parameter('filter_group', 0);
|
||||||
|
|
||||||
// User AD groups to str for the filter
|
// User AD groups to str for the filter.
|
||||||
$id_groups_str = implode(',', $user_groups_ad);
|
$id_groups_str = implode(',', $user_groups_ad);
|
||||||
|
|
||||||
if (empty($id_groups_str)) {
|
if (empty($id_groups_str)) {
|
||||||
// Restrictive filter on error. This will filter all the downtimes
|
// Restrictive filter on error. This will filter all the downtimes.
|
||||||
$id_groups_str = '-1';
|
$id_groups_str = '-1';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -752,7 +918,7 @@ if ($id_downtime > 0) {
|
||||||
|
|
||||||
$agent_ids = extract_column($agents, 'id_agente');
|
$agent_ids = extract_column($agents, 'id_agente');
|
||||||
$agent_names = extract_column($agents, 'alias');
|
$agent_names = extract_column($agents, 'alias');
|
||||||
// item[<id>] = <name>;
|
|
||||||
$agents = array_combine($agent_ids, $agent_names);
|
$agents = array_combine($agent_ids, $agent_names);
|
||||||
if ($agents === false) {
|
if ($agents === false) {
|
||||||
$agents = [];
|
$agents = [];
|
||||||
|
@ -763,7 +929,6 @@ if ($id_downtime > 0) {
|
||||||
$disabled_add_button = true;
|
$disabled_add_button = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
echo "<form method=post action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&id_downtime=$id_downtime'>";
|
echo "<form method=post action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&id_downtime=$id_downtime'>";
|
||||||
html_print_select_groups(false, $access, true, 'filter_group', $filter_group, '', '', '', false, false, true, '', false, 'min-width:180px;margin-right:15px;');
|
html_print_select_groups(false, $access, true, 'filter_group', $filter_group, '', '', '', false, false, true, '', false, 'min-width:180px;margin-right:15px;');
|
||||||
|
|
||||||
|
@ -803,7 +968,10 @@ if ($id_downtime > 0) {
|
||||||
);
|
);
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
|
|
||||||
echo '<h4>'.__('Available modules:').ui_print_help_tip(__('Only for type Quiet for downtimes.'), true).'</h4>';
|
echo '<h4>'.__('Available modules:').ui_print_help_tip(
|
||||||
|
__('Only for type Quiet for downtimes.'),
|
||||||
|
true
|
||||||
|
).'</h4>';
|
||||||
|
|
||||||
if ($type_downtime != 'quiet') {
|
if ($type_downtime != 'quiet') {
|
||||||
echo '<div id="available_modules" style="display: none;">';
|
echo '<div id="available_modules" style="display: none;">';
|
||||||
|
@ -811,17 +979,36 @@ if ($id_downtime > 0) {
|
||||||
echo '<div id="available_modules" style="">';
|
echo '<div id="available_modules" style="">';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo html_print_select([], 'module[]', '', '', '', 0, false, true, true, '', false, 'width: 180px;');
|
echo html_print_select(
|
||||||
|
[],
|
||||||
|
'module[]',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
0,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
'',
|
||||||
|
false,
|
||||||
|
'width: 180px;'
|
||||||
|
);
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
echo '<br /><br /><br />';
|
echo '<br /><br /><br />';
|
||||||
html_print_submit_button(__('Add'), 'add_item', $disabled_add_button, 'class="sub next"', false);
|
html_print_submit_button(
|
||||||
|
__('Add'),
|
||||||
|
'add_item',
|
||||||
|
$disabled_add_button,
|
||||||
|
'class="sub next"',
|
||||||
|
false
|
||||||
|
);
|
||||||
echo '</form>';
|
echo '</form>';
|
||||||
echo '</table>';
|
echo '</table>';
|
||||||
|
|
||||||
// Start Overview of existing planned downtime
|
// Start Overview of existing planned downtime.
|
||||||
echo '<h4>'.__('Agents planned for this downtime').':</h4>';
|
echo '<h4>'.__('Agents planned for this downtime').':</h4>';
|
||||||
|
|
||||||
// User the $id_groups_str built before
|
// User the $id_groups_str built before.
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT ta.nombre, tpda.id,
|
'SELECT ta.nombre, tpda.id,
|
||||||
ta.id_os, ta.id_agente, ta.id_grupo,
|
ta.id_os, ta.id_agente, ta.id_grupo,
|
||||||
|
@ -860,13 +1047,18 @@ if ($id_downtime > 0) {
|
||||||
foreach ($downtimes_agents as $downtime_agent) {
|
foreach ($downtimes_agents as $downtime_agent) {
|
||||||
$data = [];
|
$data = [];
|
||||||
|
|
||||||
$alias = db_get_value('alias', 'tagente', 'id_agente', $downtime_agent['id_agente']);
|
$alias = db_get_value(
|
||||||
|
'alias',
|
||||||
|
'tagente',
|
||||||
|
'id_agente',
|
||||||
|
$downtime_agent['id_agente']
|
||||||
|
);
|
||||||
$data[0] = $alias;
|
$data[0] = $alias;
|
||||||
|
|
||||||
$data[1] = db_get_sql(
|
$data[1] = db_get_sql(
|
||||||
'SELECT nombre
|
'SELECT nombre
|
||||||
FROM tgrupo
|
FROM tgrupo
|
||||||
WHERE id_grupo = '.$downtime_agent['id_grupo']
|
WHERE id_grupo = '.$downtime_agent['id_grupo']
|
||||||
);
|
);
|
||||||
|
|
||||||
$data[2] = ui_print_os_icon($downtime_agent['id_os'], true, true);
|
$data[2] = ui_print_os_icon($downtime_agent['id_os'], true, true);
|
||||||
|
@ -887,7 +1079,9 @@ if ($id_downtime > 0) {
|
||||||
|
|
||||||
if (!$running) {
|
if (!$running) {
|
||||||
$data[5] = '';
|
$data[5] = '';
|
||||||
if ($type_downtime != 'disable_agents_alerts' && $type_downtime != 'disable_agents') {
|
if ($type_downtime != 'disable_agents_alerts'
|
||||||
|
&& $type_downtime != 'disable_agents'
|
||||||
|
) {
|
||||||
$data[5] = '<a href="javascript:show_editor_module('.$downtime_agent['id_agente'].');">'.html_print_image('images/config.png', true, ['border' => '0', 'alt' => __('Delete')]).'</a>';
|
$data[5] = '<a href="javascript:show_editor_module('.$downtime_agent['id_agente'].');">'.html_print_image('images/config.png', true, ['border' => '0', 'alt' => __('Delete')]).'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ if ($migrate_malformed) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header
|
// Header.
|
||||||
ui_print_page_header(
|
ui_print_page_header(
|
||||||
__('Planned Downtime'),
|
__('Planned Downtime'),
|
||||||
'images/gm_monitoring.png',
|
'images/gm_monitoring.png',
|
||||||
|
@ -115,7 +115,7 @@ if ($delete_downtime) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filter parameters
|
// Filter parameters.
|
||||||
$offset = (int) get_parameter('offset');
|
$offset = (int) get_parameter('offset');
|
||||||
$filter_params = [];
|
$filter_params = [];
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ $module_name = $filter_params['module_name'] = (string) (!empty($module_
|
||||||
|
|
||||||
$filter_params_str = http_build_query($filter_params);
|
$filter_params_str = http_build_query($filter_params);
|
||||||
|
|
||||||
// Table filter
|
// Table filter.
|
||||||
$table_form = new StdClass();
|
$table_form = new StdClass();
|
||||||
$table_form->class = 'databox filters';
|
$table_form->class = 'databox filters';
|
||||||
$table_form->width = '100%';
|
$table_form->width = '100%';
|
||||||
|
@ -143,9 +143,9 @@ $table_form->data = [];
|
||||||
|
|
||||||
$row = [];
|
$row = [];
|
||||||
|
|
||||||
// Search text
|
// Search text.
|
||||||
$row[] = __('Search').' '.html_print_input_text('search_text', $search_text, '', 50, 250, true);
|
$row[] = __('Search').' '.html_print_input_text('search_text', $search_text, '', 50, 250, true);
|
||||||
// Dates
|
// Dates.
|
||||||
$date_inputs = __('From').' '.html_print_input_text('date_from', $date_from, '', 10, 10, true);
|
$date_inputs = __('From').' '.html_print_input_text('date_from', $date_from, '', 10, 10, true);
|
||||||
$date_inputs .= ' ';
|
$date_inputs .= ' ';
|
||||||
$date_inputs .= __('To').' '.html_print_input_text('date_to', $date_to, '', 10, 10, true);
|
$date_inputs .= __('To').' '.html_print_input_text('date_to', $date_to, '', 10, 10, true);
|
||||||
|
@ -155,20 +155,20 @@ $table_form->data[] = $row;
|
||||||
|
|
||||||
$row = [];
|
$row = [];
|
||||||
|
|
||||||
// Execution type
|
// Execution type.
|
||||||
$execution_type_fields = [
|
$execution_type_fields = [
|
||||||
'once' => __('Once'),
|
'once' => __('Once'),
|
||||||
'periodically' => __('Periodically'),
|
'periodically' => __('Periodically'),
|
||||||
];
|
];
|
||||||
$row[] = __('Execution type').' '.html_print_select($execution_type_fields, 'execution_type', $execution_type, '', __('Any'), '', true, false, false);
|
$row[] = __('Execution type').' '.html_print_select($execution_type_fields, 'execution_type', $execution_type, '', __('Any'), '', true, false, false);
|
||||||
// Show past downtimes
|
// Show past downtimes.
|
||||||
$row[] = __('Show past downtimes').' '.html_print_checkbox('archived', 1, $show_archived, true);
|
$row[] = __('Show past downtimes').' '.html_print_checkbox('archived', 1, $show_archived, true);
|
||||||
|
|
||||||
$table_form->data[] = $row;
|
$table_form->data[] = $row;
|
||||||
|
|
||||||
$row = [];
|
$row = [];
|
||||||
|
|
||||||
// Agent
|
// Agent.
|
||||||
$params = [];
|
$params = [];
|
||||||
$params['show_helptip'] = true;
|
$params['show_helptip'] = true;
|
||||||
$params['input_name'] = 'agent_name';
|
$params['input_name'] = 'agent_name';
|
||||||
|
@ -180,14 +180,14 @@ $params['hidden_input_idagent_value'] = $agent_id;
|
||||||
$agent_input = __('Agent').' '.ui_print_agent_autocomplete_input($params);
|
$agent_input = __('Agent').' '.ui_print_agent_autocomplete_input($params);
|
||||||
$row[] = $agent_input;
|
$row[] = $agent_input;
|
||||||
|
|
||||||
// Module
|
// Module.
|
||||||
$row[] = __('Module').' '.html_print_autocomplete_modules('module_name', $module_name, false, true, '', [], true);
|
$row[] = __('Module').' '.html_print_autocomplete_modules('module_name', $module_name, false, true, '', [], true);
|
||||||
|
|
||||||
$row[] = html_print_submit_button(__('Search'), 'search', false, 'class="sub search"', true);
|
$row[] = html_print_submit_button(__('Search'), 'search', false, 'class="sub search"', true);
|
||||||
|
|
||||||
$table_form->data[] = $row;
|
$table_form->data[] = $row;
|
||||||
// End of table filter
|
// End of table filter.
|
||||||
// Useful to know if the user has done a form filtering
|
// Useful to know if the user has done a form filtering.
|
||||||
$filter_performed = false;
|
$filter_performed = false;
|
||||||
|
|
||||||
$groups = users_get_groups(false, $access);
|
$groups = users_get_groups(false, $access);
|
||||||
|
@ -197,7 +197,7 @@ if (!empty($groups)) {
|
||||||
$groups_string = implode(',', array_keys($groups));
|
$groups_string = implode(',', array_keys($groups));
|
||||||
$where_values .= " AND id_group IN ($groups_string)";
|
$where_values .= " AND id_group IN ($groups_string)";
|
||||||
|
|
||||||
// WARNING: add $filter_performed = true; to any future filter
|
// WARNING: add $filter_performed = true; to any future filter.
|
||||||
if (!empty($search_text)) {
|
if (!empty($search_text)) {
|
||||||
$filter_performed = true;
|
$filter_performed = true;
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@ if (!empty($groups)) {
|
||||||
AND tpda.all_modules = 1))";
|
AND tpda.all_modules = 1))";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Columns of the table tplanned_downtime
|
// Columns of the table tplanned_downtime.
|
||||||
$columns = [
|
$columns = [
|
||||||
'id',
|
'id',
|
||||||
'name',
|
'name',
|
||||||
|
@ -353,23 +353,23 @@ if (!empty($groups)) {
|
||||||
$downtimes = [];
|
$downtimes = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// No downtimes cause the user has not anyone
|
// No downtimes cause the user has not anyone.
|
||||||
if (!$downtimes && !$filter_performed) {
|
if (!$downtimes && !$filter_performed) {
|
||||||
include_once $config['homedir'].'/general/firts_task/planned_downtime.php';
|
include_once $config['homedir'].'/general/firts_task/planned_downtime.php';
|
||||||
}
|
}
|
||||||
// No downtimes cause the user performed a search
|
// No downtimes cause the user performed a search.
|
||||||
else if (!$downtimes) {
|
else if (!$downtimes) {
|
||||||
// Filter form
|
// Filter form.
|
||||||
echo "<form method='post' action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list'>";
|
echo "<form method='post' action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list'>";
|
||||||
html_print_table($table_form);
|
html_print_table($table_form);
|
||||||
echo '</form>';
|
echo '</form>';
|
||||||
|
|
||||||
// Info message
|
// Info message.
|
||||||
echo '<div class="nf">'.__('No planned downtime').'</div>';
|
echo '<div class="nf">'.__('No planned downtime').'</div>';
|
||||||
|
|
||||||
echo '<div class="action-buttons" style="width: 100%">';
|
echo '<div class="action-buttons" style="width: 100%">';
|
||||||
|
|
||||||
// Create button
|
// Create button.
|
||||||
if ($write_permisson) {
|
if ($write_permisson) {
|
||||||
echo ' ';
|
echo ' ';
|
||||||
echo '<form method="post" action="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor" style="display: inline;">';
|
echo '<form method="post" action="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor" style="display: inline;">';
|
||||||
|
@ -379,7 +379,7 @@ else if (!$downtimes) {
|
||||||
|
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
// Has downtimes
|
// Has downtimes.
|
||||||
else {
|
else {
|
||||||
echo "<form method='post' action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list'>";
|
echo "<form method='post' action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list'>";
|
||||||
html_print_table($table_form);
|
html_print_table($table_form);
|
||||||
|
@ -387,11 +387,11 @@ else {
|
||||||
|
|
||||||
ui_pagination($downtimes_number, "index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset);
|
ui_pagination($downtimes_number, "index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset);
|
||||||
|
|
||||||
// User groups with AR, AD or AW permission
|
// User groups with AR, AD or AW permission.
|
||||||
$groupsAD = users_get_groups($config['id_user'], $access);
|
$groupsAD = users_get_groups($config['id_user'], $access);
|
||||||
$groupsAD = array_keys($groupsAD);
|
$groupsAD = array_keys($groupsAD);
|
||||||
|
|
||||||
// View available downtimes present in database (if any of them)
|
// View available downtimes present in database (if any of them).
|
||||||
$table = new StdClass();
|
$table = new StdClass();
|
||||||
$table->class = 'info_table';
|
$table->class = 'info_table';
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
|
@ -475,7 +475,7 @@ else {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If user have writting permissions
|
// If user have writting permissions.
|
||||||
if (in_array($downtime['id_group'], $groupsAD)) {
|
if (in_array($downtime['id_group'], $groupsAD)) {
|
||||||
// Stop button
|
// Stop button
|
||||||
if ($downtime['type_execution'] == 'once' && $downtime['executed'] == 1) {
|
if ($downtime['type_execution'] == 'once' && $downtime['executed'] == 1) {
|
||||||
|
@ -484,16 +484,16 @@ else {
|
||||||
$data['stop'] = '';
|
$data['stop'] = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit & delete buttons
|
// Edit & delete buttons.
|
||||||
if ($downtime['executed'] == 0) {
|
if ($downtime['executed'] == 0) {
|
||||||
// Edit
|
// Edit.
|
||||||
$data['edit'] = '<a href="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/config.png', true, ['title' => __('Update')]).'</a>';
|
$data['edit'] = '<a href="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/config.png', true, ['title' => __('Update')]).'</a>';
|
||||||
// Delete
|
// Delete.
|
||||||
$data['delete'] = '<a id="delete_downtime" href="index.php?sec=gagente&sec2=godmode/agentes/planned_downtime.list'.'&delete_downtime=1&id_downtime='.$downtime['id'].'&'.$filter_params_str.'">'.html_print_image('images/cross.png', true, ['title' => __('Delete')]);
|
$data['delete'] = '<a id="delete_downtime" href="index.php?sec=gagente&sec2=godmode/agentes/planned_downtime.list'.'&delete_downtime=1&id_downtime='.$downtime['id'].'&'.$filter_params_str.'">'.html_print_image('images/cross.png', true, ['title' => __('Delete')]);
|
||||||
} else if ($downtime['executed'] == 1 && $downtime['type_execution'] == 'once') {
|
} else if ($downtime['executed'] == 1 && $downtime['type_execution'] == 'once') {
|
||||||
// Edit
|
// Edit.
|
||||||
$data['edit'] = '<a href="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/config.png', true, ['title' => __('Update')]).'</a>';
|
$data['edit'] = '<a href="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/config.png', true, ['title' => __('Update')]).'</a>';
|
||||||
// Delete
|
// Delete.
|
||||||
$data['delete'] = __('N/A');
|
$data['delete'] = __('N/A');
|
||||||
} else {
|
} else {
|
||||||
$data['edit'] = '';
|
$data['edit'] = '';
|
||||||
|
@ -521,7 +521,7 @@ else {
|
||||||
ui_pagination($downtimes_number, "index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset, 0, false, 'offset', true, 'pagination-bottom');
|
ui_pagination($downtimes_number, "index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||||
|
|
||||||
// CSV export button
|
// CSV export button.
|
||||||
echo '<div style="display: inline;">';
|
echo '<div style="display: inline;">';
|
||||||
html_print_button(
|
html_print_button(
|
||||||
__('Export to CSV'),
|
__('Export to CSV'),
|
||||||
|
@ -532,7 +532,7 @@ else {
|
||||||
);
|
);
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
|
|
||||||
// Create button
|
// Create button.
|
||||||
if ($write_permisson) {
|
if ($write_permisson) {
|
||||||
echo ' ';
|
echo ' ';
|
||||||
echo '<form method="post" action="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor" style="display: inline;">';
|
echo '<form method="post" action="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor" style="display: inline;">';
|
||||||
|
|
|
@ -124,11 +124,7 @@ $table->data[1][1] .= __('Number of alerts match from').' ';
|
||||||
$table->data[1][1] .= html_print_input_text('fires_min', '', '', 4, 10, true);
|
$table->data[1][1] .= html_print_input_text('fires_min', '', '', 4, 10, true);
|
||||||
$table->data[1][1] .= ' '.__('to').' ';
|
$table->data[1][1] .= ' '.__('to').' ';
|
||||||
$table->data[1][1] .= html_print_input_text('fires_max', '', '', 4, 10, true);
|
$table->data[1][1] .= html_print_input_text('fires_max', '', '', 4, 10, true);
|
||||||
$table->data[1][1] .= ui_print_help_icon(
|
|
||||||
'alert-matches',
|
|
||||||
true,
|
|
||||||
ui_get_full_url(false, false, false, false)
|
|
||||||
);
|
|
||||||
$table->data[1][1] .= '</span>';
|
$table->data[1][1] .= '</span>';
|
||||||
if (check_acl($config['id_user'], 0, 'LM')) {
|
if (check_acl($config['id_user'], 0, 'LM')) {
|
||||||
$table->data[1][1] .= '<a style="margin-left:5px;" href="index.php?sec=galertas&sec2=godmode/alerts/configure_alert_action&pure='.$pure.'">';
|
$table->data[1][1] .= '<a style="margin-left:5px;" href="index.php?sec=galertas&sec2=godmode/alerts/configure_alert_action&pure='.$pure.'">';
|
||||||
|
@ -172,8 +168,7 @@ if ($own_info['is_admin'] || check_acl($config['id_user'], 0, 'PM')) {
|
||||||
|
|
||||||
$table->data[3][0] = __('Threshold');
|
$table->data[3][0] = __('Threshold');
|
||||||
$table->data[3][1] = html_print_input_text('module_action_threshold', '0', '', 5, 7, true);
|
$table->data[3][1] = html_print_input_text('module_action_threshold', '0', '', 5, 7, true);
|
||||||
$table->data[3][1] .= ' '.__('seconds').ui_print_help_icon('action_threshold', true);
|
$table->data[3][1] .= ' '.__('seconds');
|
||||||
|
|
||||||
|
|
||||||
if (!isset($step)) {
|
if (!isset($step)) {
|
||||||
echo '<form class="add_alert_form" method="post">';
|
echo '<form class="add_alert_form" method="post">';
|
||||||
|
|
|
@ -700,20 +700,41 @@ foreach ($simple_alerts as $alert) {
|
||||||
$data[2] .= '</tr>';
|
$data[2] .= '</tr>';
|
||||||
$data[2] .= '<tr class="datos">';
|
$data[2] .= '<tr class="datos">';
|
||||||
$data[2] .= '<td class="datos" style="font-weight:bold;padding:6px;">';
|
$data[2] .= '<td class="datos" style="font-weight:bold;padding:6px;">';
|
||||||
$data[2] .= __('Number of alerts match from').' '.ui_print_help_icon('alert-matches', true, ui_get_full_url(false, false, false, false));
|
$data[2] .= __('Number of alerts match from');
|
||||||
$data[2] .= '</td>';
|
$data[2] .= '</td>';
|
||||||
$data[2] .= '<td class="datos">';
|
$data[2] .= '<td class="datos">';
|
||||||
$data[2] .= html_print_input_text('fires_min', 0, '', 4, 10, true);
|
$data[2] .= html_print_input_text(
|
||||||
|
'fires_min',
|
||||||
|
0,
|
||||||
|
'',
|
||||||
|
4,
|
||||||
|
10,
|
||||||
|
true
|
||||||
|
);
|
||||||
$data[2] .= ' '.__('to').' ';
|
$data[2] .= ' '.__('to').' ';
|
||||||
$data[2] .= html_print_input_text('fires_max', 0, '', 4, 10, true);
|
$data[2] .= html_print_input_text(
|
||||||
|
'fires_max',
|
||||||
|
0,
|
||||||
|
'',
|
||||||
|
4,
|
||||||
|
10,
|
||||||
|
true
|
||||||
|
);
|
||||||
$data[2] .= '</td>';
|
$data[2] .= '</td>';
|
||||||
$data[2] .= '</tr>';
|
$data[2] .= '</tr>';
|
||||||
$data[2] .= '<tr class="datos2">';
|
$data[2] .= '<tr class="datos2">';
|
||||||
$data[2] .= '<td class="datos2" style="font-weight:bold;padding:6px;">';
|
$data[2] .= '<td class="datos2" style="font-weight:bold;padding:6px;">';
|
||||||
$data[2] .= __('Threshold').' '.ui_print_help_icon('action_threshold', true, ui_get_full_url(false, false, false, false));
|
$data[2] .= __('Threshold');
|
||||||
$data[2] .= '</td>';
|
$data[2] .= '</td>';
|
||||||
$data[2] .= '<td class="datos2">';
|
$data[2] .= '<td class="datos2">';
|
||||||
$data[2] .= html_print_input_text('module_action_threshold', '', '', 4, 10, true);
|
$data[2] .= html_print_input_text(
|
||||||
|
'module_action_threshold',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
4,
|
||||||
|
10,
|
||||||
|
true
|
||||||
|
);
|
||||||
$data[2] .= '</td>';
|
$data[2] .= '</td>';
|
||||||
$data[2] .= '</tr>';
|
$data[2] .= '</tr>';
|
||||||
$data[2] .= '</table>';
|
$data[2] .= '</table>';
|
||||||
|
|
|
@ -277,7 +277,7 @@ ui_print_page_header(
|
||||||
__('GIS Maps builder'),
|
__('GIS Maps builder'),
|
||||||
'images/gm_gis.png',
|
'images/gm_gis.png',
|
||||||
false,
|
false,
|
||||||
'configure_gis_map',
|
'configure_gis_map_edit',
|
||||||
true,
|
true,
|
||||||
$buttons
|
$buttons
|
||||||
);
|
);
|
||||||
|
|
|
@ -489,7 +489,7 @@ $params['selectbox_id'] = 'cascade_protection_module';
|
||||||
$params['javascript_is_function_select'] = true;
|
$params['javascript_is_function_select'] = true;
|
||||||
$table->data[0][1] = ui_print_agent_autocomplete_input($params);
|
$table->data[0][1] = ui_print_agent_autocomplete_input($params);
|
||||||
|
|
||||||
$table->data[0][1] .= '<b>'.__('Cascade protection').'</b> '.ui_print_help_icon('cascade_protection', true).html_print_select(
|
$table->data[0][1] .= '<b>'.__('Cascade protection').'</b>'.html_print_select(
|
||||||
[
|
[
|
||||||
1 => __('Yes'),
|
1 => __('Yes'),
|
||||||
0 => __('No'),
|
0 => __('No'),
|
||||||
|
@ -587,7 +587,7 @@ $table->data[0][0] = __('Custom ID');
|
||||||
$table->data[0][1] = html_print_input_text('custom_id', $custom_id, '', 16, 255, true);
|
$table->data[0][1] = html_print_input_text('custom_id', $custom_id, '', 16, 255, true);
|
||||||
|
|
||||||
// Learn mode / Normal mode
|
// Learn mode / Normal mode
|
||||||
$table->data[1][0] = __('Module definition').ui_print_help_icon('module_definition', true);
|
$table->data[1][0] = __('Module definition');
|
||||||
$table->data[1][1] = __('No change').' '.html_print_radio_button_extended('mode', -1, '', $mode, false, '', 'style="margin-right: 40px;"', true);
|
$table->data[1][1] = __('No change').' '.html_print_radio_button_extended('mode', -1, '', $mode, false, '', 'style="margin-right: 40px;"', true);
|
||||||
$table->data[1][1] .= __('Learning mode').' '.html_print_radio_button_extended('mode', 1, '', $mode, false, '', 'style="margin-right: 40px;"', true);
|
$table->data[1][1] .= __('Learning mode').' '.html_print_radio_button_extended('mode', 1, '', $mode, false, '', 'style="margin-right: 40px;"', true);
|
||||||
$table->data[1][1] .= __('Normal mode').' '.html_print_radio_button_extended('mode', 0, '', $mode, false, '', 'style="margin-right: 40px;"', true);
|
$table->data[1][1] .= __('Normal mode').' '.html_print_radio_button_extended('mode', 0, '', $mode, false, '', 'style="margin-right: 40px;"', true);
|
||||||
|
|
|
@ -276,19 +276,30 @@ if (isset($name)) {
|
||||||
$head .= ' - '.$name;
|
$head .= ' - '.$name;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header
|
// Header.
|
||||||
$tab = get_parameter('tab', '');
|
$tab = get_parameter('tab', '');
|
||||||
switch ($tab) {
|
switch ($tab) {
|
||||||
|
default:
|
||||||
case 'main':
|
case 'main':
|
||||||
ui_print_page_header($head, 'images/chart.png', false, 'graph_builder', false, $buttons);
|
ui_print_page_header(
|
||||||
|
$head,
|
||||||
|
'images/chart.png',
|
||||||
|
false,
|
||||||
|
'graph_builder',
|
||||||
|
false,
|
||||||
|
$buttons
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'graph_editor':
|
case 'graph_editor':
|
||||||
ui_print_page_header($head, 'images/chart.png', false, 'graph_editor', false, $buttons);
|
ui_print_page_header(
|
||||||
break;
|
$head,
|
||||||
|
'images/chart.png',
|
||||||
default:
|
false,
|
||||||
ui_print_page_header($head, 'images/chart.png', false, 'graph_builder', false, $buttons);
|
'graph_editor',
|
||||||
|
false,
|
||||||
|
$buttons
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ global $config;
|
||||||
|
|
||||||
require_once $config['homedir'].'/include/functions_visual_map.php';
|
require_once $config['homedir'].'/include/functions_visual_map.php';
|
||||||
|
|
||||||
// ACL for the general permission
|
// ACL for the general permission.
|
||||||
$vconsoles_read = check_acl($config['id_user'], 0, 'VR');
|
$vconsoles_read = check_acl($config['id_user'], 0, 'VR');
|
||||||
$vconsoles_write = check_acl($config['id_user'], 0, 'VW');
|
$vconsoles_write = check_acl($config['id_user'], 0, 'VW');
|
||||||
$vconsoles_manage = check_acl($config['id_user'], 0, 'VM');
|
$vconsoles_manage = check_acl($config['id_user'], 0, 'VM');
|
||||||
|
@ -84,7 +84,7 @@ if (!$is_metaconsole) {
|
||||||
__('Reporting').' » '.__('Visual Console'),
|
__('Reporting').' » '.__('Visual Console'),
|
||||||
'images/op_reporting.png',
|
'images/op_reporting.png',
|
||||||
false,
|
false,
|
||||||
'map_builder',
|
'map_builder_intro',
|
||||||
false,
|
false,
|
||||||
$buttons
|
$buttons
|
||||||
);
|
);
|
||||||
|
|
|
@ -457,6 +457,7 @@ switch ($action) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$subsection = '';
|
$subsection = '';
|
||||||
|
$helpers = '';
|
||||||
switch ($activeTab) {
|
switch ($activeTab) {
|
||||||
case 'main':
|
case 'main':
|
||||||
$buttons['list_reports']['active'] = true;
|
$buttons['list_reports']['active'] = true;
|
||||||
|
@ -464,7 +465,14 @@ switch ($action) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$subsection = reporting_enterprise_add_subsection_main($activeTab, $buttons);
|
$data_tab = reporting_enterprise_add_subsection_main(
|
||||||
|
$activeTab,
|
||||||
|
$buttons
|
||||||
|
);
|
||||||
|
|
||||||
|
$subsection = $data_tab['subsection'];
|
||||||
|
$buttons = $data_tab['buttons'];
|
||||||
|
$helpers = $data_tab['helpers'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2401,6 +2409,7 @@ switch ($action) {
|
||||||
$buttons = reporting_enterprise_add_main_Tabs($buttons);
|
$buttons = reporting_enterprise_add_main_Tabs($buttons);
|
||||||
|
|
||||||
$subsection = '';
|
$subsection = '';
|
||||||
|
$helpers = '';
|
||||||
switch ($activeTab) {
|
switch ($activeTab) {
|
||||||
case 'main':
|
case 'main':
|
||||||
$buttons['list_reports']['active'] = true;
|
$buttons['list_reports']['active'] = true;
|
||||||
|
@ -2408,7 +2417,14 @@ switch ($action) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$subsection = reporting_enterprise_add_subsection_main($activeTab, $buttons);
|
$data_tab = reporting_enterprise_add_subsection_main(
|
||||||
|
$activeTab,
|
||||||
|
$buttons
|
||||||
|
);
|
||||||
|
|
||||||
|
$subsection = $data_tab['subsection'];
|
||||||
|
$buttons = $data_tab['buttons'];
|
||||||
|
$helpers = $data_tab['helper'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2429,7 +2445,7 @@ switch ($action) {
|
||||||
}
|
}
|
||||||
// Page header for normal console.
|
// Page header for normal console.
|
||||||
else {
|
else {
|
||||||
ui_print_page_header($subsection, 'images/op_reporting.png', false, '', false, $buttons, false, '', 60);
|
ui_print_page_header($subsection, 'images/op_reporting.png', false, $helpers, false, $buttons, false, '', 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2505,11 +2521,21 @@ if ($enterpriseEnable and defined('METACONSOLE')) {
|
||||||
// Print header.
|
// Print header.
|
||||||
ui_meta_print_header(__('Reporting').$textReportName, '', $buttons);
|
ui_meta_print_header(__('Reporting').$textReportName, '', $buttons);
|
||||||
} else {
|
} else {
|
||||||
|
switch ($activeTab) {
|
||||||
|
case 'main':
|
||||||
|
$helpers = '';
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
$helpers = 'reporting_'.$activeTab.'_tab';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
ui_print_page_header(
|
ui_print_page_header(
|
||||||
$textReportName,
|
$textReportName,
|
||||||
'images/op_reporting.png',
|
'images/op_reporting.png',
|
||||||
false,
|
false,
|
||||||
'reporting_'.$activeTab.'_tab',
|
$helpers,
|
||||||
false,
|
false,
|
||||||
$buttons,
|
$buttons,
|
||||||
false,
|
false,
|
||||||
|
|
|
@ -78,7 +78,7 @@ if (!$is_metaconsole) {
|
||||||
__('Reporting').' » '.__('Visual Favourite Console'),
|
__('Reporting').' » '.__('Visual Favourite Console'),
|
||||||
'images/op_reporting.png',
|
'images/op_reporting.png',
|
||||||
false,
|
false,
|
||||||
'map_builder',
|
'map_builder_favorite',
|
||||||
false,
|
false,
|
||||||
$buttons
|
$buttons
|
||||||
);
|
);
|
||||||
|
|
|
@ -33,7 +33,13 @@ $snmp_type = (int) get_parameter('snmp_type', 0);
|
||||||
$snmp_value = (string) get_parameter('snmp_value', '');
|
$snmp_value = (string) get_parameter('snmp_value', '');
|
||||||
$generate_trap = (bool) get_parameter('generate_trap', 0);
|
$generate_trap = (bool) get_parameter('generate_trap', 0);
|
||||||
|
|
||||||
ui_print_page_header(__('SNMP Trap generator'), 'images/op_snmp.png', false, '', false);
|
ui_print_page_header(
|
||||||
|
__('SNMP Trap generator'),
|
||||||
|
'images/op_snmp.png',
|
||||||
|
false,
|
||||||
|
'snmp_trap_generator_view',
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
if ($generate_trap) {
|
if ($generate_trap) {
|
||||||
$result = true;
|
$result = true;
|
||||||
|
@ -64,22 +70,64 @@ $table->size = [];
|
||||||
$table->data = [];
|
$table->data = [];
|
||||||
|
|
||||||
$table->data[0][0] = __('Host address');
|
$table->data[0][0] = __('Host address');
|
||||||
$table->data[0][1] = html_print_input_text('snmp_host_address', $snmp_host_address, '', 50, 255, true);
|
$table->data[0][1] = html_print_input_text(
|
||||||
|
'snmp_host_address',
|
||||||
|
$snmp_host_address,
|
||||||
|
'',
|
||||||
|
50,
|
||||||
|
255,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$table->data[0][2] = __('Community');
|
$table->data[0][2] = __('Community');
|
||||||
$table->data[0][3] = html_print_input_text('snmp_community', $snmp_community, '', 50, 255, true);
|
$table->data[0][3] = html_print_input_text(
|
||||||
|
'snmp_community',
|
||||||
|
$snmp_community,
|
||||||
|
'',
|
||||||
|
50,
|
||||||
|
255,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$table->data[2][0] = __('Enterprise String');
|
$table->data[2][0] = __('Enterprise String');
|
||||||
$table->data[2][1] = html_print_input_text('snmp_oid', $snmp_oid, '', 50, 255, true);
|
$table->data[2][1] = html_print_input_text(
|
||||||
|
'snmp_oid',
|
||||||
|
$snmp_oid,
|
||||||
|
'',
|
||||||
|
50,
|
||||||
|
255,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$table->data[2][2] = __('Value');
|
$table->data[2][2] = __('Value');
|
||||||
$table->data[2][3] = html_print_input_text('snmp_value', $snmp_value, '', 50, 255, true);
|
$table->data[2][3] = html_print_input_text(
|
||||||
|
'snmp_value',
|
||||||
|
$snmp_value,
|
||||||
|
'',
|
||||||
|
50,
|
||||||
|
255,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$table->data[3][0] = __('SNMP Agent');
|
$table->data[3][0] = __('SNMP Agent');
|
||||||
$table->data[3][1] = html_print_input_text('snmp_agent', $snmp_agent, '', 50, 255, true);
|
$table->data[3][1] = html_print_input_text(
|
||||||
|
'snmp_agent',
|
||||||
|
$snmp_agent,
|
||||||
|
'',
|
||||||
|
50,
|
||||||
|
255,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$table->data[3][2] = __('SNMP Type').' '.ui_print_help_icon('snmp_trap_types', true);
|
$table->data[3][2] = __('SNMP Type');
|
||||||
$table->data[3][3] = html_print_input_text('snmp_type', $snmp_type, '', 50, 255, true);
|
$table->data[3][3] = html_print_input_text(
|
||||||
|
'snmp_type',
|
||||||
|
$snmp_type,
|
||||||
|
'',
|
||||||
|
50,
|
||||||
|
255,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$types = [
|
$types = [
|
||||||
0 => 'Cold start (0)',
|
0 => 'Cold start (0)',
|
||||||
|
@ -90,7 +138,17 @@ $types = [
|
||||||
5 => 'EGP neighbor loss (5)',
|
5 => 'EGP neighbor loss (5)',
|
||||||
6 => 'Enterprise (6)',
|
6 => 'Enterprise (6)',
|
||||||
];
|
];
|
||||||
$table->data[3][3] = html_print_select($types, 'snmp_type', $snmp_type, '', __('Select'), -1, true, false, false);
|
$table->data[3][3] = html_print_select(
|
||||||
|
$types,
|
||||||
|
'snmp_type',
|
||||||
|
$snmp_type,
|
||||||
|
'',
|
||||||
|
__('Select'),
|
||||||
|
-1,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
$traps_generator .= html_print_table($table, true);
|
$traps_generator .= html_print_table($table, true);
|
||||||
|
|
|
@ -153,24 +153,48 @@ if ($show_update_action_menu) {
|
||||||
$id_alert = (int) get_parameter('id_alert');
|
$id_alert = (int) get_parameter('id_alert');
|
||||||
|
|
||||||
$module_name = modules_get_agentmodule_name($id_agent_module);
|
$module_name = modules_get_agentmodule_name($id_agent_module);
|
||||||
$agent_alias = modules_get_agentmodule_agent_alias($id_agent);
|
|
||||||
|
$agent_alias = modules_get_agentmodule_agent_alias($id_agent_module);
|
||||||
|
|
||||||
$id_action = (int) get_parameter('id_action');
|
$id_action = (int) get_parameter('id_action');
|
||||||
|
|
||||||
$actions = alerts_get_alert_agent_module_actions($id_alert);
|
$actions = alerts_get_alert_agent_module_actions($id_alert);
|
||||||
$action_opction = db_get_row('talert_template_module_actions', 'id_alert_template_module', $id_alert);
|
$action_opction = db_get_row(
|
||||||
|
'talert_template_module_actions',
|
||||||
|
'id_alert_template_module',
|
||||||
|
$id_alert
|
||||||
|
);
|
||||||
|
|
||||||
$data .= '<form id="update_action-'.$alert['id'].'" method="post">';
|
$data .= '<form id="update_action-'.$alert['id'].'" method="post">';
|
||||||
$data .= '<table class="databox_color" style="width:100%">';
|
$data .= '<table class="databox_color" style="width:100%">';
|
||||||
$data .= html_print_input_hidden('update_action', 1, true);
|
$data .= html_print_input_hidden(
|
||||||
$data .= html_print_input_hidden('id_module_action_ajax', $id_module_action, true);
|
'update_action',
|
||||||
|
1,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
$data .= html_print_input_hidden(
|
||||||
|
'id_module_action_ajax',
|
||||||
|
$id_module_action,
|
||||||
|
true
|
||||||
|
);
|
||||||
if (! $id_agente) {
|
if (! $id_agente) {
|
||||||
$data .= '<tr class="datos2">';
|
$data .= '<tr class="datos2">';
|
||||||
$data .= '<td class="datos2" style="font-weight:bold;padding:6px;">';
|
$data .= '<td class="datos2" style="font-weight:bold;padding:6px;">';
|
||||||
$data .= __('Agent');
|
$data .= __('Agent').' '.ui_print_help_icon(
|
||||||
|
'alert_scalate',
|
||||||
|
true,
|
||||||
|
ui_get_full_url(false, false, false, false)
|
||||||
|
);
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
$data .= '<td class="datos">';
|
$data .= '<td class="datos">';
|
||||||
$data .= ui_print_truncate_text($agent_alias, 'agent_small', false, true, true, '[…]');
|
$data .= ui_print_truncate_text(
|
||||||
|
$agent_alias,
|
||||||
|
'agent_small',
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
'[…]'
|
||||||
|
);
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
$data .= '</tr>';
|
$data .= '</tr>';
|
||||||
}
|
}
|
||||||
|
@ -180,7 +204,14 @@ if ($show_update_action_menu) {
|
||||||
$data .= __('Module');
|
$data .= __('Module');
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
$data .= '<td class="datos">';
|
$data .= '<td class="datos">';
|
||||||
$data .= ui_print_truncate_text($module_name, 'module_small', false, true, true, '[…]');
|
$data .= ui_print_truncate_text(
|
||||||
|
$module_name,
|
||||||
|
'module_small',
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
'[…]'
|
||||||
|
);
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
$data .= '</tr>';
|
$data .= '</tr>';
|
||||||
$data .= '<tr class="datos2">';
|
$data .= '<tr class="datos2">';
|
||||||
|
@ -188,29 +219,72 @@ if ($show_update_action_menu) {
|
||||||
$data .= __('Action');
|
$data .= __('Action');
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
$data .= '<td class="datos2">';
|
$data .= '<td class="datos2">';
|
||||||
$data .= html_print_select($actions, 'action_select_ajax', $id_action, '', __('None'), 0, true, false, true, '', false, 'width:150px');
|
$data .= html_print_select(
|
||||||
|
$actions,
|
||||||
|
'action_select_ajax',
|
||||||
|
$id_action,
|
||||||
|
'',
|
||||||
|
__('None'),
|
||||||
|
0,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
'',
|
||||||
|
false,
|
||||||
|
'width:150px'
|
||||||
|
);
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
$data .= '</tr>';
|
$data .= '</tr>';
|
||||||
$data .= '<tr class="datos">';
|
$data .= '<tr class="datos">';
|
||||||
$data .= '<td class="datos" style="font-weight:bold;padding:6px;">';
|
$data .= '<td class="datos" style="font-weight:bold;padding:6px;">';
|
||||||
$data .= __('Number of alerts match from').' '.ui_print_help_icon('alert-matches', true, ui_get_full_url(false, false, false, false));
|
$data .= __('Number of alerts match from');
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
$data .= '<td class="datos">';
|
$data .= '<td class="datos">';
|
||||||
$data .= html_print_input_text('fires_min_ajax', $action_opction['fires_min'], '', 4, 10, true);
|
$data .= html_print_input_text(
|
||||||
|
'fires_min_ajax',
|
||||||
|
$action_opction['fires_min'],
|
||||||
|
'',
|
||||||
|
4,
|
||||||
|
10,
|
||||||
|
true
|
||||||
|
);
|
||||||
$data .= ' '.__('to').' ';
|
$data .= ' '.__('to').' ';
|
||||||
$data .= html_print_input_text('fires_max_ajax', $action_opction['fires_max'], '', 4, 10, true);
|
$data .= html_print_input_text(
|
||||||
|
'fires_max_ajax',
|
||||||
|
$action_opction['fires_max'],
|
||||||
|
'',
|
||||||
|
4,
|
||||||
|
10,
|
||||||
|
true
|
||||||
|
);
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
$data .= '</tr>';
|
$data .= '</tr>';
|
||||||
$data .= '<tr class="datos2">';
|
$data .= '<tr class="datos2">';
|
||||||
$data .= '<td class="datos2" style="font-weight:bold;padding:6px;">';
|
$data .= '<td class="datos2" style="font-weight:bold;padding:6px;">';
|
||||||
$data .= __('Threshold').' '.ui_print_help_icon('action_threshold', true, ui_get_full_url(false, false, false, false));
|
$data .= __('Threshold');
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
$data .= '<td class="datos2">';
|
$data .= '<td class="datos2">';
|
||||||
$data .= html_print_input_text('module_action_threshold_ajax', $action_opction['module_action_threshold'], '', 4, 10, true);
|
$data .= html_print_input_text(
|
||||||
|
'module_action_threshold_ajax',
|
||||||
|
$action_opction['module_action_threshold'],
|
||||||
|
'',
|
||||||
|
4,
|
||||||
|
10,
|
||||||
|
true
|
||||||
|
);
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
$data .= '</tr>';
|
$data .= '</tr>';
|
||||||
$data .= '</table>';
|
$data .= '</table>';
|
||||||
$data .= html_print_submit_button(__('Update'), 'updbutton', false, ['class' => 'sub next', 'style' => 'float:right'], true);
|
$data .= html_print_submit_button(
|
||||||
|
__('Update'),
|
||||||
|
'updbutton',
|
||||||
|
false,
|
||||||
|
[
|
||||||
|
'class' => 'sub next',
|
||||||
|
'style' => 'float:right',
|
||||||
|
],
|
||||||
|
true
|
||||||
|
);
|
||||||
$data .= '</form>';
|
$data .= '</form>';
|
||||||
echo $data;
|
echo $data;
|
||||||
return;
|
return;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1270,7 +1270,7 @@ function ui_print_help_icon($help_id, $return=false, $home_url='', $image='image
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
// Do not display the help icon if help is disabled
|
// Do not display the help icon if help is disabled.
|
||||||
if ($config['disable_help']) {
|
if ($config['disable_help']) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
@ -1283,13 +1283,15 @@ function ui_print_help_icon($help_id, $return=false, $home_url='', $image='image
|
||||||
$home_url = '../../'.$home_url;
|
$home_url = '../../'.$home_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$url = get_help_info($help_id);
|
||||||
|
|
||||||
$output = html_print_image(
|
$output = html_print_image(
|
||||||
$image,
|
$image,
|
||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
'class' => 'img_help',
|
'class' => 'img_help',
|
||||||
'title' => __('Help'),
|
'title' => __('Help'),
|
||||||
'onclick' => "open_help ('".$help_id."','".$home_url."','".$config['id_user']."')",
|
'onclick' => "open_help ('".$url."')",
|
||||||
],
|
],
|
||||||
false,
|
false,
|
||||||
$is_relative && is_metaconsole()
|
$is_relative && is_metaconsole()
|
||||||
|
|
|
@ -1,20 +1,30 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
// Pandora FMS - http://pandorafms.com
|
|
||||||
// ==================================================
|
|
||||||
// Copyright (c) 2005-2011 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 Lesser General Public License
|
|
||||||
// as published by the Free Software Foundation; 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.
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package Include
|
* Extension to manage a list of gateways and the node address where they should
|
||||||
* @subpackage Clippy
|
* point to.
|
||||||
|
*
|
||||||
|
* @category Clippy
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Community
|
||||||
|
* @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.
|
||||||
|
* ============================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -33,7 +43,7 @@ function clippy_modules_not_learning_mode()
|
||||||
$return_tours['tours']['modules_not_learning_mode']['steps'][] = [
|
$return_tours['tours']['modules_not_learning_mode']['steps'][] = [
|
||||||
'init_step_context' => true,
|
'init_step_context' => true,
|
||||||
'position' => 'left',
|
'position' => 'left',
|
||||||
'intro' => '<table>'.'<tr>'.'<td class="context_help_body">'.__('Please note that you have your agent setup to do not add new modules coming from the data XML.').'<br />'.__('That means if you have a local plugin or add manually new modules to the configuration file, you won\'t have it in your agent, unless you first create manually in the interface (with the exact name and type as coming in the XML file).').'<br />'.__('You should use the "normal" mode (non learn) only when you don\'t intend to add more modules to the agent.').ui_print_help_icon('module_definition', true, '', 'images/help.png').'</td>'.'</tr>'.'</table>',
|
'intro' => '<table><tr><td class="context_help_body">'.__('Please note that you have your agent setup to do not add new modules coming from the data XML.').'<br />'.__('That means if you have a local plugin or add manually new modules to the configuration file, you won\'t have it in your agent, unless you first create manually in the interface (with the exact name and type as coming in the XML file).').'<br />'.__('You should use the "normal" mode (non learn) only when you don\'t intend to add more modules to the agent.').'</td></tr></table>',
|
||||||
];
|
];
|
||||||
$return_tours['tours']['modules_not_learning_mode']['conf'] = [];
|
$return_tours['tours']['modules_not_learning_mode']['conf'] = [];
|
||||||
$return_tours['tours']['modules_not_learning_mode']['conf']['autostart'] = false;
|
$return_tours['tours']['modules_not_learning_mode']['conf']['autostart'] = false;
|
||||||
|
|
|
@ -33,9 +33,9 @@ function winopeng_var(url, wid, width, height) {
|
||||||
status = wid;
|
status = wid;
|
||||||
}
|
}
|
||||||
|
|
||||||
function open_help(help_id, home_url, id_user) {
|
function open_help(url) {
|
||||||
open(
|
open(
|
||||||
home_url + "general/pandora_help.php?id=" + help_id + "&id_user=" + id_user,
|
url,
|
||||||
"pandorahelp",
|
"pandorahelp",
|
||||||
"width=650,height=500,status=0,toolbar=0,menubar=0,scrollbars=1,location=0"
|
"width=650,height=500,status=0,toolbar=0,menubar=0,scrollbars=1,location=0"
|
||||||
);
|
);
|
||||||
|
|
|
@ -65,8 +65,15 @@ if ($config['realtimestats'] == 0) {
|
||||||
$updated_info = '';
|
$updated_info = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header
|
// Header.
|
||||||
ui_print_page_header(__('Group view'), 'images/group.png', false, '', false, $updated_time);
|
ui_print_page_header(
|
||||||
|
__('Group view'),
|
||||||
|
'images/group.png',
|
||||||
|
false,
|
||||||
|
'group_view',
|
||||||
|
false,
|
||||||
|
$updated_time
|
||||||
|
);
|
||||||
|
|
||||||
$total_agentes = 0;
|
$total_agentes = 0;
|
||||||
$monitor_ok = 0;
|
$monitor_ok = 0;
|
||||||
|
|
|
@ -127,7 +127,7 @@ ui_print_page_header(
|
||||||
io_safe_output($networkmap['name']),
|
io_safe_output($networkmap['name']),
|
||||||
'images/bricks.png',
|
'images/bricks.png',
|
||||||
false,
|
false,
|
||||||
'network_map_enterprise',
|
'network_map_enterprise_list',
|
||||||
false,
|
false,
|
||||||
$buttons,
|
$buttons,
|
||||||
false,
|
false,
|
||||||
|
|
|
@ -198,7 +198,7 @@ ui_print_page_header(
|
||||||
__('Networkmap'),
|
__('Networkmap'),
|
||||||
'images/bricks.png',
|
'images/bricks.png',
|
||||||
false,
|
false,
|
||||||
'network_map_enterprise',
|
'network_map_enterprise_edit',
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -634,7 +634,7 @@ switch ($tab) {
|
||||||
__('Networkmap'),
|
__('Networkmap'),
|
||||||
'images/op_network.png',
|
'images/op_network.png',
|
||||||
false,
|
false,
|
||||||
'network_map_enterprise',
|
'network_map_enterprise_list',
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -800,7 +800,7 @@ if ($networkmap === false) {
|
||||||
__('Networkmap'),
|
__('Networkmap'),
|
||||||
'images/bricks.png',
|
'images/bricks.png',
|
||||||
false,
|
false,
|
||||||
'network_map_enterprise',
|
'network_map_enterprise_view',
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
ui_print_error_message(__('Not found networkmap.'));
|
ui_print_error_message(__('Not found networkmap.'));
|
||||||
|
@ -861,7 +861,7 @@ if ($networkmap === false) {
|
||||||
$networkmap['name'],
|
$networkmap['name'],
|
||||||
'images/bricks.png',
|
'images/bricks.png',
|
||||||
false,
|
false,
|
||||||
'network_map_enterprise',
|
'network_map_enterprise_view',
|
||||||
false,
|
false,
|
||||||
$buttons,
|
$buttons,
|
||||||
false,
|
false,
|
||||||
|
|
|
@ -62,7 +62,7 @@ if (! defined('METACONSOLE')) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ui_print_page_header(__('Monitor detail').$subpage, '', false, '', true, $buttons);
|
ui_print_page_header(__('Monitor detail').$subpage, '', false, 'monitor_detail_view', true, $buttons);
|
||||||
|
|
||||||
if ($section == 'fields') {
|
if ($section == 'fields') {
|
||||||
include_once $config['homedir'].'/godmode/agentes/status_monitor_custom_fields.php';
|
include_once $config['homedir'].'/godmode/agentes/status_monitor_custom_fields.php';
|
||||||
|
|
|
@ -49,8 +49,15 @@ if ($config['realtimestats'] == 0) {
|
||||||
$updated_info = '';
|
$updated_info = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header
|
// Header.
|
||||||
ui_print_page_header(__('Tactical view'), '', false, '', false, $updated_time);
|
ui_print_page_header(
|
||||||
|
__('Tactical view'),
|
||||||
|
'',
|
||||||
|
false,
|
||||||
|
'tactical_view',
|
||||||
|
false,
|
||||||
|
$updated_time
|
||||||
|
);
|
||||||
|
|
||||||
// Currently this function makes loading this page is impossible. Change
|
// Currently this function makes loading this page is impossible. Change
|
||||||
// and create new function.
|
// and create new function.
|
||||||
|
@ -226,4 +233,4 @@ echo '</tr></table>';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1394,10 +1394,18 @@ foreach ($config['extensions'] as $extension) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($tab == 'wux_console_tab') {
|
switch ($tab) {
|
||||||
$help_header = 'wux_console';
|
case 'wux_console_tab':
|
||||||
} else {
|
$help_header = 'wux_console_tab';
|
||||||
$help_header = '';
|
break;
|
||||||
|
|
||||||
|
case 'main':
|
||||||
|
$help_header = 'agent_'.$tab.'_tab';
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
$help_header = '';
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ui_print_page_header(
|
ui_print_page_header(
|
||||||
|
|
|
@ -172,7 +172,7 @@ ui_print_page_header(
|
||||||
__('SNMP Browser'),
|
__('SNMP Browser'),
|
||||||
'images/op_snmp.png',
|
'images/op_snmp.png',
|
||||||
false,
|
false,
|
||||||
'',
|
'snmp_browser_view',
|
||||||
false,
|
false,
|
||||||
[$link]
|
[$link]
|
||||||
);
|
);
|
||||||
|
|
|
@ -134,7 +134,7 @@ if (!is_metaconsole()) {
|
||||||
$header_title = $header_title.' - '.$header_sub_title;
|
$header_title = $header_title.' - '.$header_sub_title;
|
||||||
}
|
}
|
||||||
|
|
||||||
ui_print_page_header($header_title, 'images/extensions.png', false, '', false, $tabs);
|
ui_print_page_header($header_title, 'images/extensions.png', false, 'tree_view', false, $tabs);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------Tabs -------------------------------------------
|
// ---------------------Tabs -------------------------------------------
|
||||||
|
|
|
@ -1,17 +1,32 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
|
* Extension to manage a list of gateways and the node address where they should
|
||||||
|
* point to.
|
||||||
|
*
|
||||||
|
* @category Users
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Community
|
||||||
|
* @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.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
// Pandora FMS - http://pandorafms.com
|
|
||||||
// ==================================================
|
|
||||||
// Copyright (c) 2005-2010 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.
|
|
||||||
// Load global vars
|
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
check_login();
|
check_login();
|
||||||
|
@ -29,22 +44,31 @@ if (enterprise_installed() && defined('METACONSOLE')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$id = get_parameter_get('id', $config['id_user']);
|
$id = get_parameter_get('id', $config['id_user']);
|
||||||
// ID given as parameter
|
// ID given as parameter.
|
||||||
$status = get_parameter('status', -1);
|
$status = get_parameter('status', -1);
|
||||||
// Flag to print action status message
|
// Flag to print action status message.
|
||||||
$user_info = get_user_info($id);
|
$user_info = get_user_info($id);
|
||||||
$id = $user_info['id_user'];
|
$id = $user_info['id_user'];
|
||||||
// This is done in case there are problems with uppercase/lowercase (MySQL auth has that problem)
|
// This is done in case there are problems
|
||||||
|
// with uppercase/lowercase (MySQL auth has that problem).
|
||||||
if ((!check_acl($config['id_user'], users_get_groups($id), 'UM'))
|
if ((!check_acl($config['id_user'], users_get_groups($id), 'UM'))
|
||||||
and ($id != $config['id_user'])
|
&& ($id != $config['id_user'])
|
||||||
) {
|
) {
|
||||||
db_pandora_audit('ACL Violation', 'Trying to view a user without privileges');
|
db_pandora_audit(
|
||||||
|
'ACL Violation',
|
||||||
|
'Trying to view a user without privileges'
|
||||||
|
);
|
||||||
include 'general/noaccess.php';
|
include 'general/noaccess.php';
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If current user is editing himself or if the user has UM (User Management) rights on any groups the user is part of AND the authorization scheme allows for users/admins to update info
|
// If current user is editing himself or if the user has UM (User Management)
|
||||||
if (($config['id_user'] == $id || check_acl($config['id_user'], users_get_groups($id), 'UM')) && $config['user_can_update_info']) {
|
// rights on any groups the user is part of AND the authorization scheme
|
||||||
|
// allows for users/admins to update info.
|
||||||
|
if (($config['id_user'] == $id
|
||||||
|
|| check_acl($config['id_user'], users_get_groups($id), 'UM'))
|
||||||
|
&& $config['user_can_update_info']
|
||||||
|
) {
|
||||||
$view_mode = false;
|
$view_mode = false;
|
||||||
} else {
|
} else {
|
||||||
$view_mode = true;
|
$view_mode = true;
|
||||||
|
@ -76,11 +100,16 @@ if (is_metaconsole()) {
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$helpers = '';
|
||||||
|
if ($_GET['sec2'] === 'operation/users/user_edit_notifications') {
|
||||||
|
$helpers = 'user_edit_notifications';
|
||||||
|
}
|
||||||
|
|
||||||
ui_print_page_header(
|
ui_print_page_header(
|
||||||
__('User detail editor'),
|
__('User detail editor'),
|
||||||
'images/op_workspace.png',
|
'images/op_workspace.png',
|
||||||
false,
|
false,
|
||||||
'',
|
$helpers,
|
||||||
false,
|
false,
|
||||||
$buttons
|
$buttons
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,9 +1,21 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pandora FMS - http://pandorafms.com
|
* Extension to manage a list of gateways and the node address where they should
|
||||||
* ==================================================
|
* point to.
|
||||||
* Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
*
|
||||||
|
* @category Users
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Community
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
* Please see http://pandorafms.org for full contribution list
|
* Please see http://pandorafms.org for full contribution list
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -12,10 +24,7 @@
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
* Load global vars
|
* ============================================================================
|
||||||
|
|
||||||
* @package category
|
|
||||||
* @subpackage category
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
global $config;
|
global $config;
|
||||||
|
@ -76,7 +85,7 @@ html_print_input_hidden('id_user', $id);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<script>
|
<script>
|
||||||
// Encapsulate the code
|
// Encapsulate the code.
|
||||||
(function() {
|
(function() {
|
||||||
function notifications_change_label(event) {
|
function notifications_change_label(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
Loading…
Reference in New Issue