helpers
Former-commit-id: 56c67397cb17ca0ebc28e2903c378fcda10a6536
This commit is contained in:
parent
ad4fc07492
commit
ac41e9255f
|
@ -138,8 +138,15 @@ function mainAgentsAlerts()
|
|||
$onheader['combo_refr'] = $comborefr;
|
||||
}
|
||||
|
||||
// Header
|
||||
ui_print_page_header(__('Agents/Alerts'), 'images/op_alerts.png', false, '', false, $updated_time);
|
||||
// Header.
|
||||
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
|
||||
// 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
|
||||
// Prepare old-style table
|
||||
if ($config['pure'] == 0) {
|
||||
// Header
|
||||
ui_print_page_header(__('Agents/Modules'), 'images/module_mc.png', false, '', false, $updated_time);
|
||||
// Header.
|
||||
ui_print_page_header(
|
||||
__('Agents/Modules'),
|
||||
'images/module_mc.png',
|
||||
false,
|
||||
'agents_module_view',
|
||||
false,
|
||||
$updated_time
|
||||
);
|
||||
echo '<table style="width:100%;">';
|
||||
echo '<tr>';
|
||||
echo "<td> <span style='float: right;'>".$fullscreen['text'].'</span> </td>';
|
||||
|
|
|
@ -192,7 +192,14 @@ function mainModuleGroups()
|
|||
$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;'>
|
||||
<tr>";
|
||||
|
|
|
@ -29,7 +29,14 @@ function pandora_realtime_graphs()
|
|||
|
||||
$hide_header = get_parameter('hide_header', 0);
|
||||
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';
|
||||
|
|
|
@ -334,9 +334,9 @@ $table->data[7][1] = html_print_select(
|
|||
__('None'),
|
||||
0,
|
||||
true
|
||||
).' '.ui_print_help_icon('agent_server', true);
|
||||
);
|
||||
|
||||
// Description
|
||||
// Description.
|
||||
$table->data[8][0] = __('Description');
|
||||
$table->data[8][1] = html_print_input_text(
|
||||
'comentarios',
|
||||
|
@ -362,7 +362,7 @@ $table->data = [];
|
|||
|
||||
if (enterprise_installed()) {
|
||||
$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(
|
||||
false,
|
||||
// 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);
|
||||
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);
|
||||
// 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(
|
||||
'modo',
|
||||
1,
|
||||
|
|
|
@ -574,10 +574,11 @@ if ($id_agente) {
|
|||
}
|
||||
|
||||
$help_header = '';
|
||||
// This add information to the header
|
||||
// This add information to the header.
|
||||
switch ($tab) {
|
||||
case 'main':
|
||||
$tab_description = '- '.__('Setup');
|
||||
$help_header = 'main_tab';
|
||||
break;
|
||||
|
||||
case 'collection':
|
||||
|
|
|
@ -1,16 +1,32 @@
|
|||
<?php
|
||||
// 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
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
* @category Planned Donwtimes
|
||||
* @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.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
@ -27,31 +43,35 @@ if (!$agent_d && !$agent_w) {
|
|||
return;
|
||||
}
|
||||
|
||||
// Default
|
||||
// Default.
|
||||
set_unless_defined($config['past_planned_downtimes'], 1);
|
||||
|
||||
require_once 'include/functions_users.php';
|
||||
|
||||
// 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(
|
||||
__('Planned Downtime'),
|
||||
'images/gm_monitoring.png',
|
||||
false,
|
||||
'planned_downtime',
|
||||
'planned_downtime_editor',
|
||||
true,
|
||||
$buttons
|
||||
);
|
||||
|
||||
// recursion group filter
|
||||
// Recursion group filter.
|
||||
$recursion = get_parameter('recursion', $_POST['recursion']);
|
||||
|
||||
|
||||
// Initialize data
|
||||
// Initialize data.
|
||||
$id_group = (int) get_parameter('id_group');
|
||||
$name = (string) get_parameter('name');
|
||||
$description = (string) get_parameter('description');
|
||||
|
@ -61,18 +81,42 @@ $type_execution = (string) get_parameter('type_execution', 'once');
|
|||
$type_periodicity = (string) get_parameter('type_periodicity', 'weekly');
|
||||
|
||||
$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());
|
||||
|
||||
$once_date_from = (string) get_parameter('once_date_from', date(DATE_FORMAT, $utimestamp));
|
||||
$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)));
|
||||
$once_date_from = (string) get_parameter(
|
||||
'once_date_from',
|
||||
date(DATE_FORMAT, $utimestamp)
|
||||
);
|
||||
$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_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)));
|
||||
$periodically_day_from = (int) get_parameter(
|
||||
'periodically_day_from',
|
||||
1
|
||||
);
|
||||
$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');
|
||||
$tuesday = (bool) get_parameter('tuesday');
|
||||
|
@ -94,15 +138,24 @@ $delete_downtime_agent = (int) get_parameter('delete_downtime_agent');
|
|||
|
||||
$modules_selection_mode = (string) get_parameter('modules_selection_mode');
|
||||
|
||||
// User groups with AD or AW permission for ACL checks
|
||||
$user_groups_ad = array_keys(users_get_groups($config['id_user'], $access));
|
||||
// User groups with AD or AW permission for ACL checks.
|
||||
$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) {
|
||||
// Check AD permission on downtime
|
||||
$downtime_group = db_get_value('id_group', 'tplanned_downtime', 'id', $id_downtime);
|
||||
// Check AD permission on 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(
|
||||
'ACL Violation',
|
||||
'Trying to access downtime scheduler'
|
||||
|
@ -116,17 +169,27 @@ if ($insert_downtime_agent === 1) {
|
|||
|
||||
$all_modules = (empty($module_names) || ($module_names[0] === '0'));
|
||||
|
||||
// 'Is running' check
|
||||
$is_running = (bool) db_get_value('executed', 'tplanned_downtime', 'id', $id_downtime);
|
||||
// 'Is running' check.
|
||||
$is_running = (bool) db_get_value(
|
||||
'executed',
|
||||
'tplanned_downtime',
|
||||
'id',
|
||||
$id_downtime
|
||||
);
|
||||
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 {
|
||||
foreach ($agents as $agent_id) {
|
||||
// check module belongs to the agent
|
||||
// Check module belongs to the agent.
|
||||
if ($modules_selection_mode == 'all') {
|
||||
$check = false;
|
||||
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)) {
|
||||
$check = true;
|
||||
}
|
||||
|
@ -137,10 +200,17 @@ if ($insert_downtime_agent === 1) {
|
|||
}
|
||||
}
|
||||
|
||||
// Check AD permission on agent
|
||||
$agent_group = db_get_value('id_grupo', 'tagente', 'id_agente', $agent_id);
|
||||
// Check AD permission on agent.
|
||||
$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;
|
||||
}
|
||||
|
||||
|
@ -149,11 +219,17 @@ if ($insert_downtime_agent === 1) {
|
|||
'id_agent' => $agent_id,
|
||||
'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) {
|
||||
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)) {
|
||||
continue;
|
||||
|
@ -164,7 +240,10 @@ if ($insert_downtime_agent === 1) {
|
|||
'id_agent' => $agent_id,
|
||||
'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) {
|
||||
$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) {
|
||||
$id_da = (int) get_parameter('id_downtime_agent');
|
||||
|
||||
// Check AD permission on downtime
|
||||
$downtime_group = db_get_value('id_group', 'tplanned_downtime', 'id', $id_downtime);
|
||||
// Check AD permission on 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(
|
||||
'ACL Violation',
|
||||
'Trying to access downtime scheduler'
|
||||
|
@ -196,10 +282,17 @@ if ($delete_downtime_agent === 1) {
|
|||
return;
|
||||
}
|
||||
|
||||
// Check AD permission on agent
|
||||
$agent_group = db_get_value('id_grupo', 'tagente', 'id_agente', $id_agent);
|
||||
// Check AD permission on 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(
|
||||
'ACL Violation',
|
||||
'Trying to access downtime scheduler'
|
||||
|
@ -208,17 +301,27 @@ if ($delete_downtime_agent === 1) {
|
|||
return;
|
||||
}
|
||||
|
||||
// 'Is running' check
|
||||
$is_running = (bool) db_get_value('executed', 'tplanned_downtime', 'id', $id_downtime);
|
||||
// 'Is running' check.
|
||||
$is_running = (bool) db_get_value(
|
||||
'executed',
|
||||
'tplanned_downtime',
|
||||
'id',
|
||||
$id_downtime
|
||||
);
|
||||
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 {
|
||||
$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) {
|
||||
// Delete modules in downtime
|
||||
// Delete modules in downtime.
|
||||
db_process_sql_delete(
|
||||
'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) {
|
||||
$check = (bool) db_get_value('name', 'tplanned_downtime', 'name', $name);
|
||||
|
||||
|
@ -239,22 +342,32 @@ if ($create_downtime || $update_downtime) {
|
|||
$now = time();
|
||||
|
||||
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) {
|
||||
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']) {
|
||||
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'
|
||||
&& (($type_periodicity == 'weekly' && $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) {
|
||||
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 {
|
||||
$sql = '';
|
||||
if ($create_downtime) {
|
||||
// Check AD permission on new downtime
|
||||
// Check AD permission on new downtime.
|
||||
if (!in_array($id_group, $user_groups_ad)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
|
@ -295,7 +408,10 @@ if ($create_downtime || $update_downtime) {
|
|||
$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 {
|
||||
ui_print_error_message(
|
||||
__('Each planned downtime must have a different name')
|
||||
|
@ -309,7 +425,7 @@ if ($create_downtime || $update_downtime) {
|
|||
} else if ($update_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)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
|
@ -319,7 +435,7 @@ if ($create_downtime || $update_downtime) {
|
|||
return;
|
||||
}
|
||||
|
||||
// Check AD permission on NEW downtime group
|
||||
// Check AD permission on NEW downtime group.
|
||||
if (!in_array($id_group, $user_groups_ad)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
|
@ -329,14 +445,17 @@ if ($create_downtime || $update_downtime) {
|
|||
return;
|
||||
}
|
||||
|
||||
// 'Is running' check
|
||||
// 'Is running' check.
|
||||
$is_running = (bool) $old_downtime['executed'];
|
||||
|
||||
$values = [];
|
||||
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') {
|
||||
$values = [
|
||||
'description' => $description,
|
||||
|
@ -344,7 +463,9 @@ if ($create_downtime || $update_downtime) {
|
|||
'id_user' => $config['id_user'],
|
||||
];
|
||||
} 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 {
|
||||
$values = [
|
||||
'name' => $name,
|
||||
|
@ -376,7 +497,11 @@ if ($create_downtime || $update_downtime) {
|
|||
}
|
||||
|
||||
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 ?
|
||||
if ($id_downtime > 0) {
|
||||
// Columns of the table tplanned_downtime
|
||||
// Columns of the table tplanned_downtime.
|
||||
$columns = [
|
||||
'id',
|
||||
'name',
|
||||
|
@ -436,7 +561,8 @@ if ($id_downtime > 0) {
|
|||
break;
|
||||
|
||||
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_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'];
|
||||
}
|
||||
|
||||
// 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;
|
||||
|
||||
$table = new StdClass();
|
||||
|
@ -508,11 +635,40 @@ $table->class = 'databox filters';
|
|||
$table->width = '100%';
|
||||
$table->data = [];
|
||||
$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][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][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(
|
||||
__('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));
|
||||
$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] = "
|
||||
<div id='once_time' style='display: none;'>
|
||||
|
@ -678,7 +834,7 @@ if ($id_downtime > 0) {
|
|||
echo "<tr><td width=75% valign='top'>";
|
||||
}
|
||||
|
||||
// Editor form
|
||||
// Editor form.
|
||||
html_print_table($table);
|
||||
|
||||
html_print_input_hidden('id_agent', $id_agent);
|
||||
|
@ -686,10 +842,20 @@ echo '<div class="action-buttons" style="width: 100%">';
|
|||
if ($id_downtime > 0) {
|
||||
html_print_input_hidden('update_downtime', 1);
|
||||
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 {
|
||||
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>';
|
||||
|
@ -700,11 +866,11 @@ if ($id_downtime > 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);
|
||||
|
||||
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';
|
||||
}
|
||||
|
||||
|
@ -752,7 +918,7 @@ if ($id_downtime > 0) {
|
|||
|
||||
$agent_ids = extract_column($agents, 'id_agente');
|
||||
$agent_names = extract_column($agents, 'alias');
|
||||
// item[<id>] = <name>;
|
||||
|
||||
$agents = array_combine($agent_ids, $agent_names);
|
||||
if ($agents === false) {
|
||||
$agents = [];
|
||||
|
@ -763,7 +929,6 @@ if ($id_downtime > 0) {
|
|||
$disabled_add_button = true;
|
||||
}
|
||||
|
||||
|
||||
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;');
|
||||
|
||||
|
@ -803,7 +968,10 @@ if ($id_downtime > 0) {
|
|||
);
|
||||
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') {
|
||||
echo '<div id="available_modules" style="display: none;">';
|
||||
|
@ -811,17 +979,36 @@ if ($id_downtime > 0) {
|
|||
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 '<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 '</table>';
|
||||
|
||||
// Start Overview of existing planned downtime
|
||||
// Start Overview of existing planned downtime.
|
||||
echo '<h4>'.__('Agents planned for this downtime').':</h4>';
|
||||
|
||||
// User the $id_groups_str built before
|
||||
// User the $id_groups_str built before.
|
||||
$sql = sprintf(
|
||||
'SELECT ta.nombre, tpda.id,
|
||||
ta.id_os, ta.id_agente, ta.id_grupo,
|
||||
|
@ -860,7 +1047,12 @@ if ($id_downtime > 0) {
|
|||
foreach ($downtimes_agents as $downtime_agent) {
|
||||
$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[1] = db_get_sql(
|
||||
|
@ -887,7 +1079,9 @@ if ($id_downtime > 0) {
|
|||
|
||||
if (!$running) {
|
||||
$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>';
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ if ($migrate_malformed) {
|
|||
}
|
||||
}
|
||||
|
||||
// Header
|
||||
// Header.
|
||||
ui_print_page_header(
|
||||
__('Planned Downtime'),
|
||||
'images/gm_monitoring.png',
|
||||
|
@ -115,7 +115,7 @@ if ($delete_downtime) {
|
|||
}
|
||||
}
|
||||
|
||||
// Filter parameters
|
||||
// Filter parameters.
|
||||
$offset = (int) get_parameter('offset');
|
||||
$filter_params = [];
|
||||
|
||||
|
@ -131,7 +131,7 @@ $module_name = $filter_params['module_name'] = (string) (!empty($module_
|
|||
|
||||
$filter_params_str = http_build_query($filter_params);
|
||||
|
||||
// Table filter
|
||||
// Table filter.
|
||||
$table_form = new StdClass();
|
||||
$table_form->class = 'databox filters';
|
||||
$table_form->width = '100%';
|
||||
|
@ -143,9 +143,9 @@ $table_form->data = [];
|
|||
|
||||
$row = [];
|
||||
|
||||
// Search text
|
||||
// Search text.
|
||||
$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 .= ' ';
|
||||
$date_inputs .= __('To').' '.html_print_input_text('date_to', $date_to, '', 10, 10, true);
|
||||
|
@ -155,20 +155,20 @@ $table_form->data[] = $row;
|
|||
|
||||
$row = [];
|
||||
|
||||
// Execution type
|
||||
// Execution type.
|
||||
$execution_type_fields = [
|
||||
'once' => __('Once'),
|
||||
'periodically' => __('Periodically'),
|
||||
];
|
||||
$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);
|
||||
|
||||
$table_form->data[] = $row;
|
||||
|
||||
$row = [];
|
||||
|
||||
// Agent
|
||||
// Agent.
|
||||
$params = [];
|
||||
$params['show_helptip'] = true;
|
||||
$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);
|
||||
$row[] = $agent_input;
|
||||
|
||||
// Module
|
||||
// Module.
|
||||
$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);
|
||||
|
||||
$table_form->data[] = $row;
|
||||
// End of table filter
|
||||
// Useful to know if the user has done a form filtering
|
||||
// End of table filter.
|
||||
// Useful to know if the user has done a form filtering.
|
||||
$filter_performed = false;
|
||||
|
||||
$groups = users_get_groups(false, $access);
|
||||
|
@ -197,7 +197,7 @@ if (!empty($groups)) {
|
|||
$groups_string = implode(',', array_keys($groups));
|
||||
$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)) {
|
||||
$filter_performed = true;
|
||||
|
||||
|
@ -272,7 +272,7 @@ if (!empty($groups)) {
|
|||
AND tpda.all_modules = 1))";
|
||||
}
|
||||
|
||||
// Columns of the table tplanned_downtime
|
||||
// Columns of the table tplanned_downtime.
|
||||
$columns = [
|
||||
'id',
|
||||
'name',
|
||||
|
@ -353,23 +353,23 @@ if (!empty($groups)) {
|
|||
$downtimes = [];
|
||||
}
|
||||
|
||||
// No downtimes cause the user has not anyone
|
||||
// No downtimes cause the user has not anyone.
|
||||
if (!$downtimes && !$filter_performed) {
|
||||
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) {
|
||||
// Filter form
|
||||
// Filter form.
|
||||
echo "<form method='post' action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list'>";
|
||||
html_print_table($table_form);
|
||||
echo '</form>';
|
||||
|
||||
// Info message
|
||||
// Info message.
|
||||
echo '<div class="nf">'.__('No planned downtime').'</div>';
|
||||
|
||||
echo '<div class="action-buttons" style="width: 100%">';
|
||||
|
||||
// Create button
|
||||
// Create button.
|
||||
if ($write_permisson) {
|
||||
echo ' ';
|
||||
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>';
|
||||
}
|
||||
// Has downtimes
|
||||
// Has downtimes.
|
||||
else {
|
||||
echo "<form method='post' action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list'>";
|
||||
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);
|
||||
|
||||
// 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 = 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->class = 'info_table';
|
||||
$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)) {
|
||||
// Stop button
|
||||
if ($downtime['type_execution'] == 'once' && $downtime['executed'] == 1) {
|
||||
|
@ -484,16 +484,16 @@ else {
|
|||
$data['stop'] = '';
|
||||
}
|
||||
|
||||
// Edit & delete buttons
|
||||
// Edit & delete buttons.
|
||||
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>';
|
||||
// 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')]);
|
||||
} 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>';
|
||||
// Delete
|
||||
// Delete.
|
||||
$data['delete'] = __('N/A');
|
||||
} else {
|
||||
$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');
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
|
||||
// CSV export button
|
||||
// CSV export button.
|
||||
echo '<div style="display: inline;">';
|
||||
html_print_button(
|
||||
__('Export to CSV'),
|
||||
|
@ -532,7 +532,7 @@ else {
|
|||
);
|
||||
echo '</div>';
|
||||
|
||||
// Create button
|
||||
// Create button.
|
||||
if ($write_permisson) {
|
||||
echo ' ';
|
||||
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] .= ' '.__('to').' ';
|
||||
$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>';
|
||||
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.'">';
|
||||
|
@ -172,8 +168,7 @@ if ($own_info['is_admin'] || check_acl($config['id_user'], 0, 'PM')) {
|
|||
|
||||
$table->data[3][0] = __('Threshold');
|
||||
$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)) {
|
||||
echo '<form class="add_alert_form" method="post">';
|
||||
|
|
|
@ -700,20 +700,41 @@ foreach ($simple_alerts as $alert) {
|
|||
$data[2] .= '</tr>';
|
||||
$data[2] .= '<tr class="datos">';
|
||||
$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 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] .= 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] .= '</tr>';
|
||||
$data[2] .= '<tr class="datos2">';
|
||||
$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 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] .= '</tr>';
|
||||
$data[2] .= '</table>';
|
||||
|
|
|
@ -277,7 +277,7 @@ ui_print_page_header(
|
|||
__('GIS Maps builder'),
|
||||
'images/gm_gis.png',
|
||||
false,
|
||||
'configure_gis_map',
|
||||
'configure_gis_map_edit',
|
||||
true,
|
||||
$buttons
|
||||
);
|
||||
|
|
|
@ -489,7 +489,7 @@ $params['selectbox_id'] = 'cascade_protection_module';
|
|||
$params['javascript_is_function_select'] = true;
|
||||
$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'),
|
||||
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);
|
||||
|
||||
// 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] .= __('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);
|
||||
|
|
|
@ -276,19 +276,30 @@ if (isset($name)) {
|
|||
$head .= ' - '.$name;
|
||||
}
|
||||
|
||||
// Header
|
||||
// Header.
|
||||
$tab = get_parameter('tab', '');
|
||||
switch ($tab) {
|
||||
default:
|
||||
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;
|
||||
|
||||
case 'graph_editor':
|
||||
ui_print_page_header($head, 'images/chart.png', false, 'graph_editor', false, $buttons);
|
||||
break;
|
||||
|
||||
default:
|
||||
ui_print_page_header($head, 'images/chart.png', false, 'graph_builder', false, $buttons);
|
||||
ui_print_page_header(
|
||||
$head,
|
||||
'images/chart.png',
|
||||
false,
|
||||
'graph_editor',
|
||||
false,
|
||||
$buttons
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ global $config;
|
|||
|
||||
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_write = check_acl($config['id_user'], 0, 'VW');
|
||||
$vconsoles_manage = check_acl($config['id_user'], 0, 'VM');
|
||||
|
@ -84,7 +84,7 @@ if (!$is_metaconsole) {
|
|||
__('Reporting').' » '.__('Visual Console'),
|
||||
'images/op_reporting.png',
|
||||
false,
|
||||
'map_builder',
|
||||
'map_builder_intro',
|
||||
false,
|
||||
$buttons
|
||||
);
|
||||
|
|
|
@ -457,6 +457,7 @@ switch ($action) {
|
|||
}
|
||||
|
||||
$subsection = '';
|
||||
$helpers = '';
|
||||
switch ($activeTab) {
|
||||
case 'main':
|
||||
$buttons['list_reports']['active'] = true;
|
||||
|
@ -464,7 +465,14 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -2401,6 +2409,7 @@ switch ($action) {
|
|||
$buttons = reporting_enterprise_add_main_Tabs($buttons);
|
||||
|
||||
$subsection = '';
|
||||
$helpers = '';
|
||||
switch ($activeTab) {
|
||||
case 'main':
|
||||
$buttons['list_reports']['active'] = true;
|
||||
|
@ -2408,7 +2417,14 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -2429,7 +2445,7 @@ switch ($action) {
|
|||
}
|
||||
// Page header for normal console.
|
||||
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.
|
||||
ui_meta_print_header(__('Reporting').$textReportName, '', $buttons);
|
||||
} else {
|
||||
switch ($activeTab) {
|
||||
case 'main':
|
||||
$helpers = '';
|
||||
break;
|
||||
|
||||
default:
|
||||
$helpers = 'reporting_'.$activeTab.'_tab';
|
||||
break;
|
||||
}
|
||||
|
||||
ui_print_page_header(
|
||||
$textReportName,
|
||||
'images/op_reporting.png',
|
||||
false,
|
||||
'reporting_'.$activeTab.'_tab',
|
||||
$helpers,
|
||||
false,
|
||||
$buttons,
|
||||
false,
|
||||
|
|
|
@ -78,7 +78,7 @@ if (!$is_metaconsole) {
|
|||
__('Reporting').' » '.__('Visual Favourite Console'),
|
||||
'images/op_reporting.png',
|
||||
false,
|
||||
'map_builder',
|
||||
'map_builder_favorite',
|
||||
false,
|
||||
$buttons
|
||||
);
|
||||
|
|
|
@ -33,7 +33,13 @@ $snmp_type = (int) get_parameter('snmp_type', 0);
|
|||
$snmp_value = (string) get_parameter('snmp_value', '');
|
||||
$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) {
|
||||
$result = true;
|
||||
|
@ -64,22 +70,64 @@ $table->size = [];
|
|||
$table->data = [];
|
||||
|
||||
$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][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][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][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][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][3] = html_print_input_text('snmp_type', $snmp_type, '', 50, 255, true);
|
||||
$table->data[3][2] = __('SNMP Type');
|
||||
$table->data[3][3] = html_print_input_text(
|
||||
'snmp_type',
|
||||
$snmp_type,
|
||||
'',
|
||||
50,
|
||||
255,
|
||||
true
|
||||
);
|
||||
|
||||
$types = [
|
||||
0 => 'Cold start (0)',
|
||||
|
@ -90,7 +138,17 @@ $types = [
|
|||
5 => 'EGP neighbor loss (5)',
|
||||
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);
|
||||
|
|
|
@ -153,24 +153,48 @@ if ($show_update_action_menu) {
|
|||
$id_alert = (int) get_parameter('id_alert');
|
||||
|
||||
$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');
|
||||
|
||||
$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 .= '<table class="databox_color" style="width:100%">';
|
||||
$data .= html_print_input_hidden('update_action', 1, true);
|
||||
$data .= html_print_input_hidden('id_module_action_ajax', $id_module_action, true);
|
||||
$data .= html_print_input_hidden(
|
||||
'update_action',
|
||||
1,
|
||||
true
|
||||
);
|
||||
$data .= html_print_input_hidden(
|
||||
'id_module_action_ajax',
|
||||
$id_module_action,
|
||||
true
|
||||
);
|
||||
if (! $id_agente) {
|
||||
$data .= '<tr class="datos2">';
|
||||
$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 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 .= '</tr>';
|
||||
}
|
||||
|
@ -180,7 +204,14 @@ if ($show_update_action_menu) {
|
|||
$data .= __('Module');
|
||||
$data .= '</td>';
|
||||
$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 .= '</tr>';
|
||||
$data .= '<tr class="datos2">';
|
||||
|
@ -188,29 +219,72 @@ if ($show_update_action_menu) {
|
|||
$data .= __('Action');
|
||||
$data .= '</td>';
|
||||
$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 .= '</tr>';
|
||||
$data .= '<tr class="datos">';
|
||||
$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 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 .= 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 .= '</tr>';
|
||||
$data .= '<tr class="datos2">';
|
||||
$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 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 .= '</tr>';
|
||||
$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>';
|
||||
echo $data;
|
||||
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;
|
||||
|
||||
// Do not display the help icon if help is disabled
|
||||
// Do not display the help icon if help is disabled.
|
||||
if ($config['disable_help']) {
|
||||
return '';
|
||||
}
|
||||
|
@ -1283,13 +1283,15 @@ function ui_print_help_icon($help_id, $return=false, $home_url='', $image='image
|
|||
$home_url = '../../'.$home_url;
|
||||
}
|
||||
|
||||
$url = get_help_info($help_id);
|
||||
|
||||
$output = html_print_image(
|
||||
$image,
|
||||
true,
|
||||
[
|
||||
'class' => 'img_help',
|
||||
'title' => __('Help'),
|
||||
'onclick' => "open_help ('".$help_id."','".$home_url."','".$config['id_user']."')",
|
||||
'onclick' => "open_help ('".$url."')",
|
||||
],
|
||||
false,
|
||||
$is_relative && is_metaconsole()
|
||||
|
|
|
@ -1,20 +1,30 @@
|
|||
<?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
|
||||
* @subpackage Clippy
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* 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'][] = [
|
||||
'init_step_context' => true,
|
||||
'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']['autostart'] = false;
|
||||
|
|
|
@ -33,9 +33,9 @@ function winopeng_var(url, wid, width, height) {
|
|||
status = wid;
|
||||
}
|
||||
|
||||
function open_help(help_id, home_url, id_user) {
|
||||
function open_help(url) {
|
||||
open(
|
||||
home_url + "general/pandora_help.php?id=" + help_id + "&id_user=" + id_user,
|
||||
url,
|
||||
"pandorahelp",
|
||||
"width=650,height=500,status=0,toolbar=0,menubar=0,scrollbars=1,location=0"
|
||||
);
|
||||
|
|
|
@ -65,8 +65,15 @@ if ($config['realtimestats'] == 0) {
|
|||
$updated_info = '';
|
||||
}
|
||||
|
||||
// Header
|
||||
ui_print_page_header(__('Group view'), 'images/group.png', false, '', false, $updated_time);
|
||||
// Header.
|
||||
ui_print_page_header(
|
||||
__('Group view'),
|
||||
'images/group.png',
|
||||
false,
|
||||
'group_view',
|
||||
false,
|
||||
$updated_time
|
||||
);
|
||||
|
||||
$total_agentes = 0;
|
||||
$monitor_ok = 0;
|
||||
|
|
|
@ -127,7 +127,7 @@ ui_print_page_header(
|
|||
io_safe_output($networkmap['name']),
|
||||
'images/bricks.png',
|
||||
false,
|
||||
'network_map_enterprise',
|
||||
'network_map_enterprise_list',
|
||||
false,
|
||||
$buttons,
|
||||
false,
|
||||
|
|
|
@ -198,7 +198,7 @@ ui_print_page_header(
|
|||
__('Networkmap'),
|
||||
'images/bricks.png',
|
||||
false,
|
||||
'network_map_enterprise',
|
||||
'network_map_enterprise_edit',
|
||||
false
|
||||
);
|
||||
|
||||
|
|
|
@ -634,7 +634,7 @@ switch ($tab) {
|
|||
__('Networkmap'),
|
||||
'images/op_network.png',
|
||||
false,
|
||||
'network_map_enterprise',
|
||||
'network_map_enterprise_list',
|
||||
false
|
||||
);
|
||||
|
||||
|
|
|
@ -800,7 +800,7 @@ if ($networkmap === false) {
|
|||
__('Networkmap'),
|
||||
'images/bricks.png',
|
||||
false,
|
||||
'network_map_enterprise',
|
||||
'network_map_enterprise_view',
|
||||
false
|
||||
);
|
||||
ui_print_error_message(__('Not found networkmap.'));
|
||||
|
@ -861,7 +861,7 @@ if ($networkmap === false) {
|
|||
$networkmap['name'],
|
||||
'images/bricks.png',
|
||||
false,
|
||||
'network_map_enterprise',
|
||||
'network_map_enterprise_view',
|
||||
false,
|
||||
$buttons,
|
||||
false,
|
||||
|
|
|
@ -62,7 +62,7 @@ if (! defined('METACONSOLE')) {
|
|||
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') {
|
||||
include_once $config['homedir'].'/godmode/agentes/status_monitor_custom_fields.php';
|
||||
|
|
|
@ -49,8 +49,15 @@ if ($config['realtimestats'] == 0) {
|
|||
$updated_info = '';
|
||||
}
|
||||
|
||||
// Header
|
||||
ui_print_page_header(__('Tactical view'), '', false, '', false, $updated_time);
|
||||
// Header.
|
||||
ui_print_page_header(
|
||||
__('Tactical view'),
|
||||
'',
|
||||
false,
|
||||
'tactical_view',
|
||||
false,
|
||||
$updated_time
|
||||
);
|
||||
|
||||
// Currently this function makes loading this page is impossible. Change
|
||||
// and create new function.
|
||||
|
|
|
@ -1394,10 +1394,18 @@ foreach ($config['extensions'] as $extension) {
|
|||
}
|
||||
}
|
||||
|
||||
if ($tab == 'wux_console_tab') {
|
||||
$help_header = 'wux_console';
|
||||
} else {
|
||||
switch ($tab) {
|
||||
case 'wux_console_tab':
|
||||
$help_header = 'wux_console_tab';
|
||||
break;
|
||||
|
||||
case 'main':
|
||||
$help_header = 'agent_'.$tab.'_tab';
|
||||
break;
|
||||
|
||||
default:
|
||||
$help_header = '';
|
||||
break;
|
||||
}
|
||||
|
||||
ui_print_page_header(
|
||||
|
|
|
@ -172,7 +172,7 @@ ui_print_page_header(
|
|||
__('SNMP Browser'),
|
||||
'images/op_snmp.png',
|
||||
false,
|
||||
'',
|
||||
'snmp_browser_view',
|
||||
false,
|
||||
[$link]
|
||||
);
|
||||
|
|
|
@ -134,7 +134,7 @@ if (!is_metaconsole()) {
|
|||
$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 -------------------------------------------
|
||||
|
|
|
@ -1,17 +1,32 @@
|
|||
<?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;
|
||||
|
||||
check_login();
|
||||
|
@ -29,22 +44,31 @@ if (enterprise_installed() && defined('METACONSOLE')) {
|
|||
}
|
||||
|
||||
$id = get_parameter_get('id', $config['id_user']);
|
||||
// ID given as parameter
|
||||
// ID given as parameter.
|
||||
$status = get_parameter('status', -1);
|
||||
// Flag to print action status message
|
||||
// Flag to print action status message.
|
||||
$user_info = get_user_info($id);
|
||||
$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'))
|
||||
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';
|
||||
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 (($config['id_user'] == $id || check_acl($config['id_user'], users_get_groups($id), 'UM')) && $config['user_can_update_info']) {
|
||||
// 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 (($config['id_user'] == $id
|
||||
|| check_acl($config['id_user'], users_get_groups($id), 'UM'))
|
||||
&& $config['user_can_update_info']
|
||||
) {
|
||||
$view_mode = false;
|
||||
} else {
|
||||
$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(
|
||||
__('User detail editor'),
|
||||
'images/op_workspace.png',
|
||||
false,
|
||||
'',
|
||||
$helpers,
|
||||
false,
|
||||
$buttons
|
||||
);
|
||||
|
|
|
@ -1,9 +1,21 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Pandora FMS - http://pandorafms.com
|
||||
* ==================================================
|
||||
* Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
||||
* 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
|
||||
|
@ -12,10 +24,7 @@
|
|||
* 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
|
||||
|
||||
* @package category
|
||||
* @subpackage category
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
global $config;
|
||||
|
@ -76,7 +85,7 @@ html_print_input_hidden('id_user', $id);
|
|||
|
||||
?>
|
||||
<script>
|
||||
// Encapsulate the code
|
||||
// Encapsulate the code.
|
||||
(function() {
|
||||
function notifications_change_label(event) {
|
||||
event.preventDefault();
|
||||
|
|
Loading…
Reference in New Issue