new header and menu

Former-commit-id: 3509107664a968fc358a8bb3e662f27b26b10c73
This commit is contained in:
Tatiana Llorente 2019-02-25 12:23:15 +01:00
commit 4c92375a58
111 changed files with 4335 additions and 1872 deletions

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix package: pandorafms-agent-unix
Version: 7.0NG.731-190207 Version: 7.0NG.731-190225
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

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

View File

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

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_agent_unix %define name pandorafms_agent_unix
%define version 7.0NG.731 %define version 7.0NG.731
%define release 190207 %define release 190225
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_agent_unix %define name pandorafms_agent_unix
%define version 7.0NG.731 %define version 7.0NG.731
%define release 190207 %define release 190225
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -10,7 +10,7 @@
# ********************************************************************** # **********************************************************************
PI_VERSION="7.0NG.731" PI_VERSION="7.0NG.731"
PI_BUILD="190207" PI_BUILD="190225"
OS_NAME=`uname -s` OS_NAME=`uname -s`
FORCE=0 FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{} {}
Version Version
{190207} {190225}
ViewReadme ViewReadme
{Yes} {Yes}

View File

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

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST" VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent" VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.731(Build 190207))" VALUE "ProductVersion", "(7.0NG.731(Build 190225))"
VALUE "FileVersion", "1.0.0.0" VALUE "FileVersion", "1.0.0.0"
END END
END END

View File

@ -1,5 +1,5 @@
package: pandorafms-console package: pandorafms-console
Version: 7.0NG.731-190207 Version: 7.0NG.731-190225
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

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

View File

@ -309,7 +309,7 @@ function mainModuleGroups()
ui_print_info_message(['no_close' => true, 'message' => __('There are no defined groups or module groups') ]); ui_print_info_message(['no_close' => true, 'message' => __('There are no defined groups or module groups') ]);
} }
ui_require_css_file('cluetip','include/styles/js/'); ui_require_css_file('cluetip', 'include/styles/js/');
ui_require_jquery_file('cluetip'); ui_require_jquery_file('cluetip');
?> ?>
<script> <script>
@ -328,4 +328,3 @@ function mainModuleGroups()
extensions_add_operation_menu_option(__('Module groups'), 'estado', 'module_groups/brick.png', 'v1r1', 'view'); extensions_add_operation_menu_option(__('Module groups'), 'estado', 'module_groups/brick.png', 'v1r1', 'view');
extensions_add_main_function('mainModuleGroups'); extensions_add_main_function('mainModuleGroups');

View File

@ -137,8 +137,8 @@ function get_logs_size($file)
function get_status_logs($path) function get_status_logs($path)
{ {
$status_server_log = ''; $status_server_log = '';
$size_server_log = get_logs_size($path); $size_server_log = number_format(get_logs_size($path));
if ($size_server_log <= 10240) { if ($size_server_log <= 1048576) {
$status_server_log = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>&nbsp&nbsp You have less than 10 MB of logs</a>"; $status_server_log = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>&nbsp&nbsp You have less than 10 MB of logs</a>";
} else { } else {
$status_server_log = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>&nbsp&nbsp You have more than 10 MB of logs</a>"; $status_server_log = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>&nbsp&nbsp You have more than 10 MB of logs</a>";
@ -412,11 +412,7 @@ render_info_data(
render_info_data('SELECT COUNT(*) FROM tagente_modulo', 'Total modules'); render_info_data('SELECT COUNT(*) FROM tagente_modulo', 'Total modules');
render_info_data('SELECT COUNT(*) FROM tgrupo', 'Total groups'); render_info_data('SELECT COUNT(*) FROM tgrupo', 'Total groups');
render_info_data('SELECT COUNT(*) FROM tagente_datos', 'Total module data records'); render_info_data('SELECT COUNT(*) FROM tagente_datos', 'Total module data records');
// render_info_data ("SELECT COUNT(*) FROM tagente_datos_string","Total module string data records");
// render_info_data ("SELECT COUNT(*) FROM tagente_datos_log4x","Total module log4x data records");
render_info_data('SELECT COUNT(*) FROM tagent_access', 'Total agent access record'); render_info_data('SELECT COUNT(*) FROM tagent_access', 'Total agent access record');
// render_info ("tagente_estado");
// render_info ("talert_template_modules");
render_info_data('SELECT COUNT(*) FROM tevento', 'Total events'); render_info_data('SELECT COUNT(*) FROM tevento', 'Total events');
if ($config['enterprise_installed']) { if ($config['enterprise_installed']) {
@ -700,7 +696,7 @@ render_info_data(
render_row(status_values($read_rnd_buffer_size_min_rec_value, $read_rnd_buffer_size), 'Read rnd-buffer size ', 'Read rnd-buffer size '); render_row(status_values($read_rnd_buffer_size_min_rec_value, $read_rnd_buffer_size), 'Read rnd-buffer size ', 'Read rnd-buffer size ');
render_row(status_values($query_cache_min_res_unit_min_rec_value, $query_cache_min_res_unit), 'Query cache min-res-unit ', 'Query cache min-res-unit '); render_row(status_values($query_cache_min_res_unit_min_rec_value, $query_cache_min_res_unit), 'Query cache min-res-unit ', 'Query cache min-res-unit ');
render_row(status_values($innodb_file_per_table_min_rec_value, $innodb_file_per_table), 'InnoDB file per table ', 'InnoDB file per table '); render_row(status_values($innodb_file_per_table_min_rec_value, $innodb_file_per_table), 'InnoDB file per table ', 'InnoDB file per table ');
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Tables fragmentation in the PandoraFMS database').'</th></tr>'; echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Tables fragmentation in the Pandora FMS database').'</th></tr>';
@ -708,14 +704,14 @@ render_info_data(
render_row(number_format($tables_fragmentation, 2).'%', 'Tables fragmentation (current value)'); render_row(number_format($tables_fragmentation, 2).'%', 'Tables fragmentation (current value)');
render_row(status_fragmentation_tables($tables_fragmentation_max_rec_value, $tables_fragmentation), 'Status fragmentation tables'); render_row(status_fragmentation_tables($tables_fragmentation_max_rec_value, $tables_fragmentation), 'Status fragmentation tables');
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' PandoraFMS logs dates').'</th></tr>'; echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Pandora FMS logs dates').'</th></tr>';
render_row(number_format((get_logs_size($path_server_logs) / 1024), 2).'M', 'Size server logs (current value)'); render_row(number_format((get_logs_size($path_server_logs) / 1048576), 3).'M', 'Size server logs (current value)');
render_row(get_status_logs($path_server_logs), 'Status server logs'); render_row(get_status_logs($path_server_logs), 'Status server logs');
render_row(number_format((get_logs_size($path_console_logs) / 1024), 2).'M', 'Size console logs (current value)'); render_row(number_format((get_logs_size($path_console_logs) / 1048576), 3).'M', 'Size console logs (current value)');
render_row(get_status_logs($path_console_logs), 'Status console logs'); render_row(get_status_logs($path_console_logs), 'Status console logs');
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' PandoraFMS Licence Information').'</th></tr>'; echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Pandora FMS Licence Information').'</th></tr>';
render_row(html_print_textarea('keys[customer_key]', 10, 255, $settings->customer_key, 'style="height:40px; width:450px;"', true), 'Customer key'); render_row(html_print_textarea('keys[customer_key]', 10, 255, $settings->customer_key, 'style="height:40px; width:450px;"', true), 'Customer key');
render_row($license['expiry_date'], 'Expires'); render_row($license['expiry_date'], 'Expires');

View File

@ -539,7 +539,7 @@ if ($login_screen == 'error_authconfig' || $login_screen == 'error_emptyconfig'
} }
ui_require_css_file('dialog'); ui_require_css_file('dialog');
ui_require_css_file('jquery-ui.min','include/styles/js/'); ui_require_css_file('jquery-ui.min', 'include/styles/js/');
ui_require_jquery_file('jquery-ui.min'); ui_require_jquery_file('jquery-ui.min');
?> ?>

View File

@ -470,7 +470,6 @@ console.log(classic_menu);
handsIn2 = 0; handsIn2 = 0;
if(!click_display){ if(!click_display){
if (autohidden_menu) {
$('.menu_icon').mouseenter(function() { $('.menu_icon').mouseenter(function() {
table_hover = $(this); table_hover = $(this);
handsIn = 1; handsIn = 1;
@ -490,7 +489,6 @@ console.log(classic_menu);
} }
}, 2500); }, 2500);
}); });
}
}else{ }else{
$(document).ready(function() { $(document).ready(function() {
if (autohidden_menu) { if (autohidden_menu) {

View File

@ -229,14 +229,14 @@ if (!$new_agent) {
$table->data[0][1] .= "&nbsp;&nbsp;<span align='right'><a onClick=\"if (!confirm('".__('Are you sure?')."')) return false;\" href='index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&borrar_agente=$id_agente&search=&offset=0&sort_field=&sort=none'>".html_print_image('images/cross.png', true, ['title' => __('Delete agent')]).'</a>'; $table->data[0][1] .= "&nbsp;&nbsp;<span align='right'><a onClick=\"if (!confirm('".__('Are you sure?')."')) return false;\" href='index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&borrar_agente=$id_agente&search=&offset=0&sort_field=&sort=none'>".html_print_image('images/cross.png', true, ['title' => __('Delete agent')]).'</a>';
} }
$table->data[1][0] = __('Alias'); $table->data[1][0] = __('Alias').ui_print_help_tip(__('Characters /,\,|,%,#,&,$ will be ignored'), true).'</span>';
$table->data[1][1] = html_print_input_text('alias', $alias, '', 50, 100, true); $table->data[1][1] = html_print_input_text('alias', $alias, '', 50, 100, true);
if ($new_agent) { if ($new_agent) {
$table->data[1][1] .= html_print_checkbox('alias_as_name', 1, $config['alias_as_name'], true).__('Use alias as name'); $table->data[1][1] .= html_print_checkbox('alias_as_name', 1, $config['alias_as_name'], true).__('Use alias as name');
} }
$table->data[2][0] = __('IP Address'); $table->data[2][0] = __('IP Address');
$table->data[2][1] = html_print_input_text('direccion', $direccion_agente, '', 16, 100, true); $table->data[2][1] = html_print_input_text('direccion', $direccion_agente, '', 16, 100, true).html_print_checkbox('unique_ip', 1, $config['unique_ip'], true).__('Unique IP').ui_print_help_tip(__('Set the primary IP address as the unique IP, preventing the same primary IP address from being used in more than one agent'), true);
if ($id_agente) { if ($id_agente) {
$table->data[2][1] .= '&nbsp;&nbsp;&nbsp;&nbsp;'; $table->data[2][1] .= '&nbsp;&nbsp;&nbsp;&nbsp;';

View File

@ -81,6 +81,7 @@ $alias_as_name = 0;
$direccion_agente = get_parameter('direccion', ''); $direccion_agente = get_parameter('direccion', '');
$direccion_agente = trim(io_safe_output($direccion_agente)); $direccion_agente = trim(io_safe_output($direccion_agente));
$direccion_agente = io_safe_input($direccion_agente); $direccion_agente = io_safe_input($direccion_agente);
$unique_ip = 0;
$intervalo = SECONDS_5MINUTES; $intervalo = SECONDS_5MINUTES;
$ff_interval = 0; $ff_interval = 0;
$quiet_module = 0; $quiet_module = 0;
@ -158,9 +159,11 @@ $module_macros = [];
// Create agent // Create agent
if ($create_agent) { if ($create_agent) {
$mssg_warning = 0; $mssg_warning = 0;
$alias = (string) get_parameter_post('alias', ''); $alias_safe_output = io_safe_output(get_parameter('alias', ''));
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$-]/', '', $alias_safe_output)));
$alias_as_name = (int) get_parameter_post('alias_as_name', 0); $alias_as_name = (int) get_parameter_post('alias_as_name', 0);
$direccion_agente = (string) get_parameter_post('direccion', ''); $direccion_agente = (string) get_parameter_post('direccion', '');
$unique_ip = (int) get_parameter_post('unique_ip', 0);
// safe_output only validate ip // safe_output only validate ip
$direccion_agente = trim(io_safe_output($direccion_agente)); $direccion_agente = trim(io_safe_output($direccion_agente));
@ -216,7 +219,12 @@ if ($create_agent) {
$nombre_agente = $alias; $nombre_agente = $alias;
} }
if (!$exists_alias) { if ($unique_ip && $direccion_agente != '') {
$sql = 'SELECT direccion FROM tagente WHERE direccion = "'.$direccion_agente.'"';
$exists_ip = db_get_row_sql($sql);
}
if (!$exists_alias && !$exists_ip) {
$id_agente = db_process_sql_insert( $id_agente = db_process_sql_insert(
'tagente', 'tagente',
[ [
@ -326,6 +334,8 @@ if ($create_agent) {
$agent_creation_error = __('Could not be created'); $agent_creation_error = __('Could not be created');
if ($exists_alias) { if ($exists_alias) {
$agent_creation_error = __('Could not be created, because name already exists'); $agent_creation_error = __('Could not be created, because name already exists');
} else if ($exists_ip) {
$agent_creation_error = __('Could not be created, because IP already exists');
} }
} }
} }
@ -755,9 +765,11 @@ if ($update_agent) {
$mssg_warning = 0; $mssg_warning = 0;
$id_agente = (int) get_parameter_post('id_agente'); $id_agente = (int) get_parameter_post('id_agente');
$nombre_agente = str_replace('`', '&lsquo;', (string) get_parameter_post('agente', '')); $nombre_agente = str_replace('`', '&lsquo;', (string) get_parameter_post('agente', ''));
$alias = str_replace('`', '&lsquo;', (string) get_parameter_post('alias', '')); $alias_safe_output = io_safe_output(get_parameter('alias', ''));
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$-]/', '', $alias_safe_output)));
$alias_as_name = (int) get_parameter_post('alias_as_name', 0); $alias_as_name = (int) get_parameter_post('alias_as_name', 0);
$direccion_agente = (string) get_parameter_post('direccion', ''); $direccion_agente = (string) get_parameter_post('direccion', '');
$unique_ip = (int) get_parameter_post('unique_ip', 0);
// safe_output only validate ip // safe_output only validate ip
$direccion_agente = trim(io_safe_output($direccion_agente)); $direccion_agente = trim(io_safe_output($direccion_agente));
@ -860,8 +872,15 @@ if ($update_agent) {
// If there is an agent with the same name, but a different ID // If there is an agent with the same name, but a different ID
} }
if ($unique_ip && $direccion_agente != '') {
$sql = 'SELECT direccion FROM tagente WHERE direccion = "'.$direccion_agente.'"';
$exists_ip = db_get_row_sql($sql);
}
if ($grupo <= 0) { if ($grupo <= 0) {
ui_print_error_message(__('The group id %d is incorrect.', $grupo)); ui_print_error_message(__('The group id %d is incorrect.', $grupo));
} else if ($exists_ip) {
ui_print_error_message(__('Duplicate main IP address'));
} else { } else {
// If different IP is specified than previous, add the IP // If different IP is specified than previous, add the IP
if ($direccion_agente != '' if ($direccion_agente != ''
@ -915,7 +934,7 @@ if ($update_agent) {
$result = db_process_sql_update('tagente', $values, ['id_agente' => $id_agente]); $result = db_process_sql_update('tagente', $values, ['id_agente' => $id_agente]);
if ($result == false && $update_custom_result == false) { if ($result === false && $update_custom_result == false) {
ui_print_error_message( ui_print_error_message(
__('There was a problem updating the agent') __('There was a problem updating the agent')
); );
@ -945,6 +964,10 @@ if ($update_agent) {
$disabled ? '1' : '0', $disabled ? '1' : '0',
] ]
); );
// Validate alerts for disabled agents.
if ($disabled) {
alerts_validate_alert_agent($id_agente);
}
} }
if ($tpolicy_group_old) { if ($tpolicy_group_old) {

View File

@ -128,7 +128,7 @@ $snmp_versions['2c'] = 'v. 2c';
$snmp_versions['3'] = 'v. 3'; $snmp_versions['3'] = 'v. 3';
$data = []; $data = [];
$data[0] = __('SNMP community'); $data[0] = __('SNMP community').ui_print_help_icon('column_macros', true);
$adopt = false; $adopt = false;
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK && isset($id_agent_module)) { if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK && isset($id_agent_module)) {
$adopt = policies_is_module_adopt($id_agent_module); $adopt = policies_is_module_adopt($id_agent_module);
@ -277,7 +277,7 @@ if (!isset($id_agent_module)) {
} }
$data = []; $data = [];
$data[0] = __('Auth user'); $data[0] = __('Auth user').ui_print_help_icon('column_macros', true);
$data[1] = html_print_input_text( $data[1] = html_print_input_text(
'snmp3_auth_user', 'snmp3_auth_user',
$snmp3_auth_user, $snmp3_auth_user,
@ -290,7 +290,7 @@ $data[1] = html_print_input_text(
'', '',
$classdisabledBecauseInPolicy $classdisabledBecauseInPolicy
); );
$data[2] = __('Auth password').ui_print_help_tip(__('The pass length must be eight character minimum.'), true); $data[2] = __('Auth password').ui_print_help_icon('column_macros', true).ui_print_help_tip(__('The pass length must be eight character minimum.'), true);
$data[3] = html_print_input_password( $data[3] = html_print_input_password(
'snmp3_auth_pass', 'snmp3_auth_pass',
$snmp3_auth_pass, $snmp3_auth_pass,
@ -312,7 +312,7 @@ push_table_simple($data, 'field_snmpv3_row1');
$data = []; $data = [];
$data[0] = __('Privacy method'); $data[0] = __('Privacy method');
$data[1] = html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', $snmp3_privacy_method, '', '', '', true, false, false, '', $disabledBecauseInPolicy); $data[1] = html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', $snmp3_privacy_method, '', '', '', true, false, false, '', $disabledBecauseInPolicy);
$data[2] = __('Privacy pass').ui_print_help_tip(__('The pass length must be eight character minimum.'), true); $data[2] = __('Privacy pass').ui_print_help_icon('column_macros', true).ui_print_help_tip(__('The pass length must be eight character minimum.'), true);
$data[3] = html_print_input_password( $data[3] = html_print_input_password(
'snmp3_privacy_pass', 'snmp3_privacy_pass',
$snmp3_privacy_pass, $snmp3_privacy_pass,

View File

@ -44,8 +44,7 @@ if (empty($update_module_id)) {
$data = []; $data = [];
$data[0] = __('Target IP'); $data[0] = __('Target IP');
$data[1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true); $data[1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true);
$data[2] = __('Namespace'); $data[2] = __('Namespace').ui_print_help_tip(__('Optional. WMI namespace. If unsure leave blank.'), true);
$data[2] .= ui_print_help_icon('wminamespace', true);
$data[3] = html_print_input_text( $data[3] = html_print_input_text(
'tcp_send', 'tcp_send',
$tcp_send, $tcp_send,
@ -61,7 +60,7 @@ $data[3] = html_print_input_text(
push_table_simple($data, 'target_ip'); push_table_simple($data, 'target_ip');
$data = []; $data = [];
$data[0] = __('Username'); $data[0] = __('Username').ui_print_help_icon('column_macros', true);
$data[1] = html_print_input_text( $data[1] = html_print_input_text(
'plugin_user', 'plugin_user',
$plugin_user, $plugin_user,
@ -74,7 +73,7 @@ $data[1] = html_print_input_text(
'', '',
$classdisabledBecauseInPolicy $classdisabledBecauseInPolicy
); );
$data[2] = __('Password'); $data[2] = __('Password').ui_print_help_icon('column_macros', true);
$data[3] = html_print_input_password( $data[3] = html_print_input_password(
'plugin_pass', 'plugin_pass',
$plugin_pass, $plugin_pass,
@ -110,8 +109,7 @@ $table_simple->colspan['wmi_query'][1] = 3;
push_table_simple($data, 'wmi_query'); push_table_simple($data, 'wmi_query');
$data = []; $data = [];
$data[0] = __('Key string'); $data[0] = __('Key string').ui_print_help_tip(__('Optional. Substring to look for in the WQL query result. The module returns 1 if found, 0 if not.'), true);
$data[0] .= ui_print_help_icon('wmikey', true);
$data[1] = html_print_input_text( $data[1] = html_print_input_text(
'snmp_community', 'snmp_community',
$snmp_community, $snmp_community,
@ -124,8 +122,7 @@ $data[1] = html_print_input_text(
'', '',
$classdisabledBecauseInPolicy $classdisabledBecauseInPolicy
); );
$data[2] = __('Field number'); $data[2] = __('Field number').ui_print_help_tip(__('Column number to retrieve from the WQL query result (starting from zero).'), true);
$data[2] .= ui_print_help_icon('wmifield', true);
$data[3] = html_print_input_text( $data[3] = html_print_input_text(
'tcp_port', 'tcp_port',
$tcp_port, $tcp_port,

View File

@ -192,7 +192,7 @@ if ($own_info['is_admin'] || check_acl($config['id_user'], 0, 'PM')) {
echo '</div></form>'; echo '</div></form>';
} }
ui_require_css_file('cluetip','include/styles/js/'); ui_require_css_file('cluetip', 'include/styles/js/');
ui_require_jquery_file('cluetip'); ui_require_jquery_file('cluetip');
ui_require_jquery_file('pandora.controls'); ui_require_jquery_file('pandora.controls');
ui_require_jquery_file('bgiframe'); ui_require_jquery_file('bgiframe');

View File

@ -836,7 +836,7 @@ if ($display_create && (check_acl($config['id_user'], 0, 'LW') || check_acl($con
echo '</div>'; echo '</div>';
} }
ui_require_css_file('cluetip','include/styles/js/'); ui_require_css_file('cluetip', 'include/styles/js/');
ui_require_jquery_file('cluetip'); ui_require_jquery_file('cluetip');
ui_require_jquery_file('pandora.controls'); ui_require_jquery_file('pandora.controls');
ui_require_jquery_file('bgiframe'); ui_require_jquery_file('bgiframe');

View File

@ -629,7 +629,7 @@ echo '</form>';
<?php <?php
// -------------------------END CHUNKS--------------------------------------- // -------------------------END CHUNKS---------------------------------------
ui_require_css_file('cluetip','include/styles/js/'); ui_require_css_file('cluetip', 'include/styles/js/');
ui_require_jquery_file('cluetip'); ui_require_jquery_file('cluetip');
ui_require_jquery_file('pandora.controls'); ui_require_jquery_file('pandora.controls');
ui_require_jquery_file('json'); ui_require_jquery_file('json');

View File

@ -11,7 +11,6 @@
// 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.
ui_require_css_file('tree'); ui_require_css_file('tree');
ui_require_css_file('fixed-bottom-box'); ui_require_css_file('fixed-bottom-box');
@ -539,6 +538,7 @@ if ($tab == 'tree') {
$url_delete = 'index.php?sec=gagente&sec2=godmode/groups/group_list&delete_group=1&id_group='.$group['id_grupo']; $url_delete = 'index.php?sec=gagente&sec2=godmode/groups/group_list&delete_group=1&id_group='.$group['id_grupo'];
$table->data[$key][0] = $group['id_grupo']; $table->data[$key][0] = $group['id_grupo'];
$table->data[$key][1] = "<a href='$url'>".$group['nombre'].'</a>'; $table->data[$key][1] = "<a href='$url'>".$group['nombre'].'</a>';
if ($group['icon'] != '') {
$table->data[$key][2] = html_print_image( $table->data[$key][2] = html_print_image(
'images/groups_small/'.$group['icon'].'.png', 'images/groups_small/'.$group['icon'].'.png',
true, true,
@ -550,6 +550,10 @@ if ($tab == 'tree') {
false, false, false, true false, false, false, true
] ]
); );
} else {
$table->data[$key][2] = '';
}
// reporting_get_group_stats // reporting_get_group_stats
$table->data[$key][3] = $group['disabled'] ? __('Disabled') : __('Enabled'); $table->data[$key][3] = $group['disabled'] ? __('Disabled') : __('Enabled');

View File

@ -205,6 +205,10 @@ if ($update_agents) {
$values['disabled'], $values['disabled'],
] ]
); );
// Validate alerts for disabled agents.
if ($values['disabled'] == 1) {
alerts_validate_alert_agent($id_agent);
}
} }
if ($group_old || $result) { if ($group_old || $result) {

View File

@ -143,7 +143,7 @@ if ($update) {
} }
} }
} else { } else {
// Standard procedure // Standard procedure.
foreach ($agents_ as $agent_) { foreach ($agents_ as $agent_) {
if ($modules_ == false) { if ($modules_ == false) {
$modules_ = []; $modules_ = [];
@ -315,7 +315,7 @@ if ($module_type != '') {
$names = agents_get_modules( $names = agents_get_modules(
array_keys($agents), array_keys($agents),
'DISTINCT(tagente_modulo.nombre)', 'tagente_modulo.nombre',
$filter, $filter,
false false
); );
@ -1965,4 +1965,3 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
return true; return true;
} }

View File

@ -47,7 +47,7 @@ if ($create_network_from_module) {
$id_module_group = $data_module['id_module_group']; $id_module_group = $data_module['id_module_group'];
$id_plugin = $data_module['id_plugin']; $id_plugin = $data_module['id_plugin'];
$plugin_user = $data_module['plugin_user']; $plugin_user = $data_module['plugin_user'];
$plugin_pass = $data_module['plugin_pass']; $plugin_pass = io_output_password($data_module['plugin_pass']);
$plugin_parameter = $data_module['plugin_parameter']; $plugin_parameter = $data_module['plugin_parameter'];
$macros = $data_module['macros']; $macros = $data_module['macros'];
$max_timeout = $data_module['max_timeout']; $max_timeout = $data_module['max_timeout'];
@ -104,7 +104,7 @@ if (isset($id)) {
$id_group = $component['id_group']; $id_group = $component['id_group'];
$id_plugin = $component['id_plugin']; $id_plugin = $component['id_plugin'];
$plugin_user = $component['plugin_user']; $plugin_user = $component['plugin_user'];
$plugin_pass = $component['plugin_pass']; $plugin_pass = io_output_password($component['plugin_pass']);
$plugin_parameter = $component['plugin_parameter']; $plugin_parameter = $component['plugin_parameter'];
$macros = $component['macros']; $macros = $component['macros'];
$max_timeout = $component['max_timeout']; $max_timeout = $component['max_timeout'];
@ -140,10 +140,10 @@ if (isset($id)) {
// New support for snmp v3 // New support for snmp v3
$snmp_version = $component['tcp_send']; $snmp_version = $component['tcp_send'];
$snmp3_auth_user = $component['plugin_user']; $snmp3_auth_user = $component['plugin_user'];
$snmp3_auth_pass = $component['plugin_pass']; $snmp3_auth_pass = io_output_password($component['plugin_pass']);
$snmp3_auth_method = $component['plugin_parameter']; $snmp3_auth_method = $component['plugin_parameter'];
$snmp3_privacy_method = $component['custom_string_1']; $snmp3_privacy_method = $component['custom_string_1'];
$snmp3_privacy_pass = $component['custom_string_2']; $snmp3_privacy_pass = io_output_password($component['custom_string_2']);
$snmp3_security_level = $component['custom_string_3']; $snmp3_security_level = $component['custom_string_3'];
} }
} else if (isset($new_component) && $new_component && !$create_network_from_snmp_browser) { } else if (isset($new_component) && $new_component && !$create_network_from_snmp_browser) {

View File

@ -57,16 +57,16 @@ $data = [];
$data[0] = __('SNMP Enterprise String'); $data[0] = __('SNMP Enterprise String');
$data[1] = html_print_input_text('snmp_oid', $snmp_oid, '', 30, 400, true); $data[1] = html_print_input_text('snmp_oid', $snmp_oid, '', 30, 400, true);
// $table->colspan['snmp_2'][1] = 3; // $table->colspan['snmp_2'][1] = 3;
$data[2] = __('SNMP community'); $data[2] = __('SNMP community').ui_print_help_icon('column_macros', true);
$data[3] = html_print_input_text('snmp_community', $snmp_community, '', 15, 60, true); $data[3] = html_print_input_text('snmp_community', $snmp_community, '', 15, 60, true);
push_table_row($data, 'snmp_2'); push_table_row($data, 'snmp_2');
$data = []; $data = [];
$data[0] = __('Auth user'); $data[0] = __('Auth user').ui_print_help_icon('column_macros', true);
$data[1] = html_print_input_text('snmp3_auth_user', $snmp3_auth_user, '', 15, 60, true); $data[1] = html_print_input_text('snmp3_auth_user', $snmp3_auth_user, '', 15, 60, true);
$data[2] = __('Auth password'); $data[2] = __('Auth password').ui_print_help_icon('column_macros', true);
$data[3] = html_print_input_password('snmp3_auth_pass', $snmp3_auth_pass, '', 15, 60, true); $data[3] = html_print_input_password('snmp3_auth_pass', $snmp3_auth_pass, '', 15, 60, true);
$data[3] .= html_print_input_hidden_extended('active_snmp_v3', 0, 'active_snmp_v3_mncfn', true); $data[3] .= html_print_input_hidden_extended('active_snmp_v3', 0, 'active_snmp_v3_mncfn', true);
push_table_row($data, 'field_snmpv3_row1'); push_table_row($data, 'field_snmpv3_row1');
@ -74,7 +74,7 @@ push_table_row($data, 'field_snmpv3_row1');
$data = []; $data = [];
$data[0] = __('Privacy method'); $data[0] = __('Privacy method');
$data[1] = html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', $snmp3_privacy_method, '', '', '', true); $data[1] = html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', $snmp3_privacy_method, '', '', '', true);
$data[2] = __('Privacy pass'); $data[2] = __('Privacy pass').ui_print_help_icon('column_macros', true);
$data[3] = html_print_input_password('snmp3_privacy_pass', $snmp3_privacy_pass, '', 15, 60, true); $data[3] = html_print_input_password('snmp3_privacy_pass', $snmp3_privacy_pass, '', 15, 60, true);
push_table_row($data, 'field_snmpv3_row2'); push_table_row($data, 'field_snmpv3_row2');

View File

@ -44,9 +44,9 @@ $data[3] = html_print_input_text('tcp_send', $tcp_send, '', 25, 255, true);
push_table_row($data, 'wmi_2'); push_table_row($data, 'wmi_2');
$data = []; $data = [];
$data[0] = __('Username'); $data[0] = __('Username').ui_print_help_icon('column_macros', true);
$data[1] = html_print_input_text('plugin_user', $plugin_user, '', 15, 255, true); $data[1] = html_print_input_text('plugin_user', $plugin_user, '', 15, 255, true);
$data[2] = __('Password'); $data[2] = __('Password').ui_print_help_icon('column_macros', true);
$data[3] = html_print_input_password('plugin_pass', $plugin_pass, '', 25, 255, true); $data[3] = html_print_input_password('plugin_pass', $plugin_pass, '', 25, 255, true);
push_table_row($data, 'wmi_3'); push_table_row($data, 'wmi_3');

View File

@ -42,6 +42,7 @@ if (!$is_metaconsole) {
$url_visual_console_favorite = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_favorite'; $url_visual_console_favorite = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_favorite';
$url_visual_console_template = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_template'; $url_visual_console_template = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_template';
$url_visual_console_template_wizard = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_wizard'; $url_visual_console_template_wizard = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_wizard';
$url_visual_console_manager = 'index.php?sec=screen&sec2=enterprise/extensions/visual_console_manager';
} }
$pure = (int) get_parameter('pure', 0); $pure = (int) get_parameter('pure', 0);
@ -70,6 +71,12 @@ if ($is_enterprise && $vconsoles_manage) {
'active' => false, 'active' => false,
'text' => '<a href="'.$url_visual_console_template_wizard.'">'.html_print_image('images/wand.png', true, ['title' => __('Visual Console Template Wizard')]).'</a>', 'text' => '<a href="'.$url_visual_console_template_wizard.'">'.html_print_image('images/wand.png', true, ['title' => __('Visual Console Template Wizard')]).'</a>',
]; ];
if ($is_metaconsole) {
$buttons['visual_console_manager'] = [
'active' => false,
'text' => '<a href="'.$url_visual_console_manager.'">'.html_print_image('images/builder.png', true, ['title' => __('Visual Console Manager')]).'</a>',
];
}
} }
if (!$is_metaconsole) { if (!$is_metaconsole) {

View File

@ -2720,7 +2720,7 @@ function edit_custom_graph() {
} }
}); });
window.location.href = server_url + "/index.php?sec=reporting&sec2=godmode/reporting/graph_builder&edit_graph=1&id=" + id_element_graph + hash_data; window.location.href = server_url + "index.php?sec=reporting&sec2=godmode/reporting/graph_builder&edit_graph=1&id=" + id_element_graph + hash_data;
<?php <?php
} else { } else {
?> ?>

View File

@ -1116,8 +1116,13 @@ switch ($action) {
$name_it = (string) get_parameter('name'); $name_it = (string) get_parameter('name');
$values['name'] = reporting_label_macro($items_label, $name_it); $values['name'] = reporting_label_macro($items_label, $name_it);
// Added support for projection graphs, prediction date and SLA reports /*
// 'top_n_value','top_n' and 'text' fields will be reused for these types of report Added support for projection graphs,
prediction date and SLA reports
'top_n_value','top_n' and 'text'
fields will be reused for these types of report
*/
switch ($values['type']) { switch ($values['type']) {
case 'projection_graph': case 'projection_graph':
$values['period'] = get_parameter('period1'); $values['period'] = get_parameter('period1');
@ -1127,7 +1132,8 @@ switch ($action) {
break; break;
case 'event_report_log': case 'event_report_log':
$agents_to_report = get_parameter('id_agents2');
$agents_to_report = get_parameter('id_agents3');
$source = get_parameter('source', ''); $source = get_parameter('source', '');
$search = get_parameter('search', ''); $search = get_parameter('search', '');
$log_number = get_parameter('log_number', ''); $log_number = get_parameter('log_number', '');
@ -1525,7 +1531,7 @@ switch ($action) {
break; break;
case 'event_report_log': case 'event_report_log':
$agents_to_report = get_parameter('id_agents2'); $agents_to_report = get_parameter('id_agents3');
$source = get_parameter('source', ''); $source = get_parameter('source', '');
$search = get_parameter('search', ''); $search = get_parameter('search', '');
$log_number = get_parameter('log_number', ''); $log_number = get_parameter('log_number', '');
@ -1632,17 +1638,6 @@ switch ($action) {
$values['server_name'] = get_parameter('combo_server'); $values['server_name'] = get_parameter('combo_server');
} }
if (is_metaconsole()) {
// For SQL Query check if it is setted in the meta
if ($values['type'] == 'sql') {
if (empty($values['server_name'])) {
$good_format = false;
}
}
}
$values['id_agent'] = get_parameter('id_agent'); $values['id_agent'] = get_parameter('id_agent');
$values['id_gs'] = get_parameter('id_custom_graph'); $values['id_gs'] = get_parameter('id_custom_graph');
if (($values['type'] == 'alert_report_agent') or ($values['type'] == 'event_report_agent') or ($values['type'] == 'agent_configuration') or ($values['type'] == 'group_configuration')) { if (($values['type'] == 'alert_report_agent') or ($values['type'] == 'event_report_agent') or ($values['type'] == 'agent_configuration') or ($values['type'] == 'group_configuration')) {

View File

@ -233,7 +233,7 @@ html_print_submit_button(
echo '</div>'; echo '</div>';
echo '</form>'; echo '</form>';
ui_require_css_file('color-picker','include/styles/js/'); ui_require_css_file('color-picker', 'include/styles/js/');
ui_require_jquery_file('colorpicker'); ui_require_jquery_file('colorpicker');
?> ?>

View File

@ -231,6 +231,21 @@ function is_metaconsole() {
else return false; else return false;
} }
function dialog_message(message_id) {
$(message_id)
.css("display", "inline")
.dialog({
modal: true,
show: "blind",
hide: "blind",
buttons: {
Close: function() {
$(this).dialog("close");
}
}
});
}
function update_button_palette_callback() { function update_button_palette_callback() {
var values = {}; var values = {};
@ -240,14 +255,11 @@ function update_button_palette_callback() {
switch (selectedItem) { switch (selectedItem) {
case "background": case "background":
if (values["width"] < 1024 || values["height"] < 768) { if (values["width"] < 1024 || values["height"] < 768) {
alert("Min allowed size is 1024x768"); dialog_message("#message_min_allowed_size");
return false; return false;
} }
$("#hidden-background_width").val(values["width"]);
if (values["width"] == 0 && values["height"] == 0) { $("#hidden-background_height").val(values["height"]);
values["width"] = $("#hidden-background_original_width").val();
values["height"] = $("#hidden-background_original_height").val();
}
$("#background").css("width", values["width"]); $("#background").css("width", values["width"]);
$("#background").css("height", values["height"]); $("#background").css("height", values["height"]);
@ -259,11 +271,25 @@ function update_button_palette_callback() {
break; break;
case "box_item": case "box_item":
if ($("input[name=width_box]").val() == "") { if ($("input[name=width_box]").val() == "") {
alert("Undefined width"); dialog_message("#message_alert_no_width");
return false;
}
if (
parseInt($("input[name='width_box']").val()) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
return false; return false;
} }
if ($("input[name=height_box]").val() == "") { if ($("input[name=height_box]").val() == "") {
alert("Undefined height"); dialog_message("#message_alert_no_height");
return false;
}
if (
parseInt($("input[name='height_box']").val()) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_height");
return false; return false;
} }
@ -288,7 +314,7 @@ function update_button_palette_callback() {
values["label"] == "" && values["label"] == "" &&
values["show_statistics"] == false values["show_statistics"] == false
) { ) {
alert("Undefined image"); dialog_message("#message_alert_no_image");
return false; return false;
} }
@ -428,18 +454,32 @@ function update_button_palette_callback() {
break; break;
case "static_graph": case "static_graph":
if ($("input[name=width]").val() == "") { if ($("input[name=width]").val() == "") {
alert("Undefined width"); dialog_message("#message_alert_no_width");
return false;
}
if (
parseInt($("input[name='width']").val()) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
return false; return false;
} }
if ($("input[name=height]").val() == "") { if ($("input[name=height]").val() == "") {
alert("Undefined height"); dialog_message("#message_alert_no_height");
return false;
}
if (
parseInt($("input[name='height']").val()) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_height");
return false; return false;
} }
if ( if (
(values["image"] == "" || values["image"] == "none") && (values["image"] == "" || values["image"] == "none") &&
values["label"] == "" values["label"] == ""
) { ) {
alert("Undefined image"); dialog_message("#message_alert_no_image");
return false; return false;
} }
@ -555,13 +595,27 @@ function update_button_palette_callback() {
break; break;
case "percentile_bar": case "percentile_bar":
case "percentile_item": case "percentile_item":
if ($("input[name=width_percentile]").val() == "") { if ($("input[name=height_percentile]").val() == "") {
alert("Undefined width"); dialog_message("#message_alert_no_height");
return false; return false;
} }
if ($("input[name=width_percentile]").val() == "") {
if ($("input[name=height_percentile]").val() == "") { dialog_message("#message_alert_no_width");
alert("Undefined height"); return false;
}
if (
$("input[name=width_percentile]").val() >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
return false;
}
if (values["module"] == 0) {
dialog_message("#message_alert_no_module");
return false;
}
if (values["agent"] == "") {
dialog_message("#message_alert_no_agent");
return false; return false;
} }
@ -604,7 +658,6 @@ function update_button_palette_callback() {
return false; return false;
} }
} }
if ($("#dir_items").html() == "vertical") { if ($("#dir_items").html() == "vertical") {
if ( if (
parseInt($("#text-top").val()) + parseInt($("#text-top").val()) +
@ -621,20 +674,41 @@ function update_button_palette_callback() {
return false; return false;
} }
} }
if (values["module"] == 0) {
dialog_message("#message_alert_no_module");
return false;
}
if (values["agent"] == "") {
dialog_message("#message_alert_no_agent");
return false;
}
if ($("input[name=width_module_graph]").val() == "") { if ($("input[name=width_module_graph]").val() == "") {
alert("Undefined width"); dialog_message("#message_alert_no_width");
return false; return false;
} }
if ($("input[name=height_module_graph]").val() == "") { if ($("input[name=height_module_graph]").val() == "") {
alert("Undefined height"); dialog_message("#message_alert_no_height");
return false;
}
if (
parseInt(values["width_module_graph"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
return false;
}
if (
parseInt($("input[name=height_module_graph]").val()) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
return false; return false;
} }
if ( if (
$("#custom_graph_row").css("display") != "none" && $("#custom_graph_row").css("display") != "none" &&
$("#custom_graph option:selected").html() == "None" $("#custom_graph option:selected").html() == "None"
) { ) {
alert("Undefined graph"); dialog_message("#message_alert_no_custom_graph");
return false; return false;
} }
@ -644,12 +718,19 @@ function update_button_palette_callback() {
break; break;
case "bars_graph": case "bars_graph":
if ($("input[name=width_percentile]").val() == "") { if ($("input[name=width_percentile]").val() == "") {
alert("Undefined width"); dialog_message("#message_alert_no_width");
return false; return false;
} }
if ($("input[name=bars_graph_height]").val() == "") { if ($("input[name=bars_graph_height]").val() == "") {
alert("Undefined height"); dialog_message("#message_alert_no_height");
return false;
}
if (values["module"] == 0) {
dialog_message("#message_alert_no_module");
return false;
}
if (values["agent_string"] == "") {
dialog_message("#message_alert_no_agent");
return false; return false;
} }
@ -660,18 +741,48 @@ function update_button_palette_callback() {
break; break;
case "clock": case "clock":
if (
parseInt(values["width_percentile"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
return false;
}
$("#text_" + idItem).html(values["label"]); $("#text_" + idItem).html(values["label"]);
$("#image_" + idItem).attr("src", "images/spinner.gif"); $("#image_" + idItem).attr("src", "images/spinner.gif");
setClock(idItem, values); setClock(idItem, values);
break; break;
case "auto_sla_graph": case "auto_sla_graph":
if ($("input[name=width]").val() == "") { if (values["height"] == "") {
alert("Undefined width"); dialog_message("#message_alert_no_height");
return false; return false;
} }
if ($("input[name=height]").val() == "") { if (
alert("Undefined height"); parseInt(values["height"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
return false;
}
if (values["width"] == "") {
dialog_message("#message_alert_no_width");
return false;
}
if (
parseInt(values["width"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
return false;
}
if (values["module"] == 0) {
dialog_message("#message_alert_no_module");
return false;
}
if (values["agent"] == "") {
dialog_message("#message_alert_no_agent");
return false; return false;
} }
$("#text_" + idItem).html(values["label"]); $("#text_" + idItem).html(values["label"]);
@ -680,8 +791,22 @@ function update_button_palette_callback() {
setEventsBar(idItem, values); setEventsBar(idItem, values);
break; break;
case "donut_graph": case "donut_graph":
if (
parseInt(values["width_percentile"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
return false;
}
if (values["module"] == 0) {
dialog_message("#message_alert_no_module_string_type");
return false;
}
if (values["agent_string"] == "") {
dialog_message("#message_alert_no_agent");
return false;
}
$("#image_" + idItem).attr("src", "images/spinner.gif"); $("#image_" + idItem).attr("src", "images/spinner.gif");
setDonutsGraph(idItem, values); setDonutsGraph(idItem, values);
break; break;
case "simple_value": case "simple_value":
@ -718,21 +843,47 @@ function update_button_palette_callback() {
"</span></td></tr><tr><td></td></tr></tbody></table>" "</span></td></tr><tr><td></td></tr></tbody></table>"
); );
} }
if (values["module"] == 0) {
dialog_message("#message_alert_no_module");
return false;
}
if (values["agent"] == "") {
dialog_message("#message_alert_no_agent");
return false;
}
break; break;
case "label": case "label":
if (values["label"] == "") {
dialog_message("#message_alert_no_label");
return false;
}
$("#text_" + idItem).html(values["label"]); $("#text_" + idItem).html(values["label"]);
break; break;
case "icon": case "icon":
if ($("input[name=width]").val() == "") { if ($("input[name=width]").val() == "") {
alert("Undefined width"); dialog_message("#message_alert_no_width");
return false;
}
if (
parseInt($("input[name=width]").val()) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
return false; return false;
} }
if ($("input[name=height]").val() == "") { if ($("input[name=height]").val() == "") {
alert("Undefined height"); dialog_message("#message_alert_no_height");
return false;
}
if (
parseInt($("input[name=height]").val()) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
return false; return false;
} }
if (values["image"] == "" || values["image"] == "none") { if (values["image"] == "" || values["image"] == "none") {
alert("Undefined image"); dialog_message("#message_alert_no_image");
return false; return false;
} }
$("#image_" + idItem).attr("src", "images/spinner.gif"); $("#image_" + idItem).attr("src", "images/spinner.gif");
@ -779,13 +930,70 @@ function update_button_palette_callback() {
var image = values["image"] + ".png"; var image = values["image"] + ".png";
set_image("image", idItem, image); set_image("image", idItem, image);
break; break;
case "line_item":
if (
parseInt(values["line_width"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
return false;
}
break;
case "color_cloud":
if (
parseInt(values["diameter"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
return false;
}
if (values["module"] == 0) {
dialog_message("#message_alert_no_module");
return false;
}
if (values["agent"] == "") {
dialog_message("#message_alert_no_agent");
return false;
}
break;
case "service":
if (values["height"] == "" || values["height_module_graph"] == 0) {
dialog_message("#message_alert_no_height");
return false;
}
if (
parseInt(values["height"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
return false;
}
if (values["width"] == "" || values["width_module_graph"] == 0) {
dialog_message("#message_alert_no_width");
return false;
}
if (
parseInt(values["width"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
return false;
}
if (
$("select[name=service]").val() == "" ||
$("select[name=service]").val() == "none"
) {
dialog_message("#message_alert_no_service");
return false;
}
break;
default: default:
if ($("input[name=width]").val() == "") { if ($("input[name=width]").val() == "") {
alert("Undefined width"); dialog_message("#message_alert_no_width");
return false; return false;
} }
if ($("input[name=height]").val() == "") { if ($("input[name=height]").val() == "") {
alert("Undefined height"); dialog_message("#message_alert_no_height");
return false; return false;
} }
//Maybe save in any Enterprise item. //Maybe save in any Enterprise item.
@ -1018,149 +1226,356 @@ function create_button_palette_callback() {
switch (creationItem) { switch (creationItem) {
case "box_item": case "box_item":
if ($("input[name='width_box']").val() == "") { if ($("input[name='width_box']").val() == "") {
alert("Undefined width"); dialog_message("#message_alert_no_width");
validate = false;
}
if (
parseInt($("input[name='width_box']").val()) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false; validate = false;
} }
if ($("input[name='height_box']").val() == "") { if ($("input[name='height_box']").val() == "") {
alert("Undefined height"); dialog_message("#message_alert_no_height");
validate = false;
}
if (
parseInt($("input[name='height_box']").val()) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
validate = false; validate = false;
} }
break; break;
case "group_item": case "group_item":
if (values["height"] == "") {
dialog_message("#message_alert_no_height");
validate = false;
}
if (
parseInt(values["height"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
validate = false;
}
if (values["width"] == "") {
dialog_message("#message_alert_no_width");
validate = false;
}
if (
parseInt(values["width"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false;
}
if ( if (
(values["image"] == "" || values["image"] == "none") && (values["image"] == "" || values["image"] == "none") &&
values["label"] == "" && values["label"] == "" &&
values["show_statistics"] == false values["show_statistics"] == false
) { ) {
alert("Undefined images"); dialog_message("#message_alert_no_image");
validate = false; validate = false;
} }
break; break;
case "static_graph": case "static_graph":
if (values["width"] == "") { if (values["height"] == "") {
alert("Undefined width"); dialog_message("#message_alert_no_height");
validate = false; validate = false;
} }
if (values["height"] == "") { if (
alert("Undefined height"); parseInt(values["height"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
validate = false;
}
if (values["width"] == "") {
dialog_message("#message_alert_no_width");
validate = false;
}
if (
parseInt(values["width"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false; validate = false;
} }
if ( if (
(values["image"] == "" || values["image"] == "none") && (values["image"] == "" || values["image"] == "none") &&
values["label"] == false values["label"] == false
) { ) {
alert("Undefined image"); dialog_message("#message_alert_no_image");
validate = false; validate = false;
} }
break; break;
case "auto_sla_graph": case "auto_sla_graph":
if (values["height"] == "") {
dialog_message("#message_alert_no_height");
validate = false;
}
if (
parseInt(values["height"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
validate = false;
}
if (values["width"] == "") {
dialog_message("#message_alert_no_width");
validate = false;
}
if (
parseInt(values["width"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false;
}
if (values["module"] == 0) {
dialog_message("#message_alert_no_module");
validate = false;
}
if (values["agent"] == "") { if (values["agent"] == "") {
alert($("#message_alert_no_agent").html()); dialog_message("#message_alert_no_agent");
validate = false; validate = false;
} }
break; break;
case "donut_graph": case "donut_graph":
if (
parseInt(values["width_percentile"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false;
}
if (values["module"] == 0) {
dialog_message("#message_alert_no_module_string_type");
validate = false;
}
if (values["agent_string"] == "") { if (values["agent_string"] == "") {
alert($("#message_alert_no_agent").html()); dialog_message("#message_alert_no_agent");
validate = false; validate = false;
} }
break; break;
case "label": case "label":
if (values["label"] == "") { if (values["label"] == "") {
alert($("#message_alert_no_label").html()); dialog_message("#message_alert_no_label");
validate = false; validate = false;
} }
break; break;
case "icon": case "icon":
if (values["width"] == "") { if (values["width"] == "") {
alert("Undefined width"); dialog_message("#message_alert_no_width");
validate = false;
}
if (
parseInt(values["width"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false; validate = false;
} }
if (values["height"] == "") { if (values["height"] == "") {
alert("Undefined height"); dialog_message("#message_alert_no_height");
validate = false;
}
if (
parseInt(values["height"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
validate = false; validate = false;
} }
if (values["image"] == "" || values["image"] == "none") { if (values["image"] == "" || values["image"] == "none") {
alert($("#message_alert_no_image").html()); dialog_message("#message_alert_no_image");
validate = false; validate = false;
} }
break; break;
case "percentile_bar": case "percentile_bar":
case "percentile_item": case "percentile_item":
if (values["width"] == "") { if (
alert("Undefined width"); parseInt(values["width_percentile"]) >
validate = false; parseInt($("#hidden-background_width").val())
} ) {
if (values["agent"] == "") { dialog_message("#message_alert_max_width");
alert($("#message_alert_no_agent").html());
validate = false;
}
if (values["module"] == 0) {
alert($("#message_alert_no_module").html());
validate = false;
}
if (values["max_percentile"] == "") {
alert($("#message_alert_no_max_percentile").html());
validate = false; validate = false;
} }
if (values["width_percentile"] == "") { if (values["width_percentile"] == "") {
alert($("#message_alert_no_width_percentile").html()); dialog_message("#message_alert_no_width");
validate = false; validate = false;
} }
if (values["module"] == 0) {
dialog_message("#message_alert_no_module");
validate = false;
}
if (values["agent"] == "") {
dialog_message("#message_alert_no_agent");
validate = false;
}
if (values["max_percentile"] == "") {
dialog_message("#message_alert_no_max_percentile");
validate = false;
}
break; break;
case "module_graph": case "module_graph":
if (values["width_module_graph"] == "") { if (values["module"] == 0) {
alert("Undefined width"); dialog_message("#message_alert_no_module");
validate = false;
}
if (values["height_module_graph"] == "") {
alert("Undefined height");
validate = false; validate = false;
} }
if (values["id_custom_graph"] == 0) { if (values["id_custom_graph"] == 0) {
if (values["agent"] == "") { if (values["agent"] == "") {
alert($("#message_alert_no_agent").html()); dialog_message("#message_alert_no_agent");
validate = false;
}
if (values["module"] == 0) {
alert($("#message_alert_no_module").html());
validate = false; validate = false;
} }
if (values["period"] == 0) { if (values["period"] == 0) {
alert($("#message_alert_no_period").html()); dialog_message("#message_alert_no_period");
validate = false; validate = false;
} }
} }
if (
values["height_module_graph"] == "" ||
values["height_module_graph"] == 0
) {
dialog_message("#message_alert_no_height");
validate = false;
}
if (
parseInt(values["height_module_graph"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
validate = false;
}
if (
values["width_module_graph"] == "" ||
values["width_module_graph"] == 0
) {
dialog_message("#message_alert_no_width");
validate = false;
}
if (
parseInt(values["width_module_graph"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false;
}
break; break;
case "bars_graph": case "bars_graph":
if (values["agent_string"] == "") { if (values["bars_graph_height"] == "") {
alert($("#message_alert_no_agent").html()); dialog_message("#message_alert_no_height");
validate = false; validate = false;
} }
if (values["module"] == 0) { if (
alert($("#message_alert_no_module").html()); parseInt(values["bars_graph_height"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
validate = false; validate = false;
} }
if (values["width_percentile"] == "") { if (values["width_percentile"] == "") {
alert($("#message_alert_no_width_percentile").html()); dialog_message("#message_alert_no_width");
validate = false; validate = false;
} }
if (values["bars_graph_height"] == "") { if (
alert($("#message_alert_no_bars_graph_height").html()); parseInt(values["width_percentile"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false;
}
if (values["module"] == 0) {
dialog_message("#message_alert_no_module");
validate = false;
}
if (values["agent_string"] == "") {
dialog_message("#message_alert_no_agent");
validate = false; validate = false;
} }
break; break;
case "simple_value": case "simple_value":
if (values["agent"] == "") { if (values["module"] == 0) {
alert($("#message_alert_no_agent").html()); dialog_message("#message_alert_no_module");
validate = false; validate = false;
} }
if (values["module"] == 0) { if (values["agent"] == "") {
alert($("#message_alert_no_module").html()); dialog_message("#message_alert_no_agent");
validate = false; validate = false;
} }
break; break;
case "clock":
if (
parseInt(values["width_percentile"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false;
}
break;
case "line_item":
if (
parseInt(values["line_width"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false;
}
break;
case "color_cloud":
if (
parseInt(values["diameter"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
validate = false;
}
if (values["module"] == 0) {
dialog_message("#message_alert_no_module");
validate = false;
}
if (values["agent"] == "") {
dialog_message("#message_alert_no_agent");
validate = false;
}
break;
case "service":
if (values["height"] == "" || values["height_module_graph"] == 0) {
dialog_message("#message_alert_no_height");
validate = false;
}
if (
parseInt(values["height"]) >
parseInt($("#hidden-background_height").val())
) {
dialog_message("#message_alert_max_height");
validate = false;
}
if (values["width"] == "" || values["width_module_graph"] == 0) {
dialog_message("#message_alert_no_width");
validate = false;
}
if (
parseInt(values["width"]) >
parseInt($("#hidden-background_width").val())
) {
dialog_message("#message_alert_max_width");
validate = false;
}
if (
$("select[name=service]").val() == "" ||
$("select[name=service]").val() == "none"
) {
dialog_message("#message_alert_no_service");
validate = false;
}
break;
default: default:
//Maybe save in any Enterprise item. //Maybe save in any Enterprise item.
if (typeof enterprise_create_button_palette_callback == "function") { if (typeof enterprise_create_button_palette_callback == "function") {
@ -3714,17 +4129,7 @@ function createItem(type, values, id_data) {
.attr("height", values["height"]); .attr("height", values["height"]);
} }
} }
// else{
// $('#image_'+id_data).css('width', values['width']+'px');
// $('#image_'+id_data).css('height', values['height']+'px');
// }
/*
var $span = $('<span></span>')
.attr('id', 'text_' + id_data)
.attr('class', 'text')
.append(values['label']);
*/
var $input = $("<input></input>") var $input = $("<input></input>")
.attr("id", "hidden-status_" + id_data) .attr("id", "hidden-status_" + id_data)
.attr("type", "hidden") .attr("type", "hidden")
@ -4489,7 +4894,6 @@ function createItem(type, values, id_data) {
case "clock": case "clock":
sizeStyle = ""; sizeStyle = "";
imageSize = ""; imageSize = "";
if (values["label_position"] == "up") { if (values["label_position"] == "up") {
item = $( item = $(
'<div id="' + '<div id="' +

View File

@ -168,8 +168,8 @@ echo "<div id='saving_in_progress_dialog' style='display: none; text-align: cent
echo "<div id='delete_in_progress_dialog' style='display: none; text-align: center;' title='".__('Action in progress')."'>".__('Deletion in progress').'<br />'.html_print_image('images/spinner.gif', true).'</div>'; echo "<div id='delete_in_progress_dialog' style='display: none; text-align: center;' title='".__('Action in progress')."'>".__('Deletion in progress').'<br />'.html_print_image('images/spinner.gif', true).'</div>';
// CSS // CSS
ui_require_css_file('color-picker','include/styles/js/'); ui_require_css_file('color-picker', 'include/styles/js/');
ui_require_css_file('jquery-ui.min','include/styles/js/'); ui_require_css_file('jquery-ui.min', 'include/styles/js/');
// Javascript // Javascript
ui_require_jquery_file('colorpicker'); ui_require_jquery_file('colorpicker');

View File

@ -697,7 +697,7 @@ echo '<span id="ip_text" style="display: none;">'.__('IP').'</span>';
<textarea id="tinyMCE_editor" name="tinyMCE_editor"></textarea> <textarea id="tinyMCE_editor" name="tinyMCE_editor"></textarea>
</div> </div>
<?php <?php
ui_require_css_file('color-picker','include/styles/js/'); ui_require_css_file('color-picker', 'include/styles/js/');
ui_require_jquery_file('colorpicker'); ui_require_jquery_file('colorpicker');
ui_require_jquery_file('pandora.controls'); ui_require_jquery_file('pandora.controls');

View File

@ -41,6 +41,7 @@ if (!$is_metaconsole) {
$url_visual_console_favorite = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_favorite'; $url_visual_console_favorite = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_favorite';
$url_visual_console_template = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_template'; $url_visual_console_template = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_template';
$url_visual_console_template_wizard = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_wizard'; $url_visual_console_template_wizard = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_wizard';
$url_visual_console_manager = 'index.php?sec=screen&sec2=enterprise/extensions/visual_console_manager';
} }
$buttons['visual_console'] = [ $buttons['visual_console'] = [
@ -63,6 +64,13 @@ if ($is_enterprise && $vconsoles_manage) {
'active' => false, 'active' => false,
'text' => '<a href="'.$url_visual_console_template_wizard.'">'.html_print_image('images/wand.png', true, ['title' => __('Visual Console Template Wizard')]).'</a>', 'text' => '<a href="'.$url_visual_console_template_wizard.'">'.html_print_image('images/wand.png', true, ['title' => __('Visual Console Template Wizard')]).'</a>',
]; ];
if ($is_metaconsole) {
$buttons['visual_console_manager'] = [
'active' => false,
'text' => '<a href="'.$url_visual_console_manager.'">'.html_print_image('images/builder.png', true, ['title' => __('Visual Console Manager')]).'</a>',
];
}
} }
if (!$is_metaconsole) { if (!$is_metaconsole) {

View File

@ -1,37 +1,242 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @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 // Load global vars.
// ==================================================
// Copyright (c) 2005-2009 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;
require_once 'include/config.php';
check_login(); check_login();
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) { if (! check_acl($config['id_user'], 0, 'PM')
&& ! is_user_admin($config['id_user'])
) {
db_pandora_audit('ACL Violation', 'Trying to access Setup Management'); db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
include 'general/noaccess.php'; include 'general/noaccess.php';
return; return;
} }
// Load enterprise extensions $update_config = get_parameter('update_config', 0);
// ~ enterprise_include_once ('godmode/setup/setup.php'); if ($update_config == 1 && $config['history_db_enabled'] == 1) {
/* if (! isset($config['history_db_connection'])
NOTICE FOR DEVELOPERS: || $config['history_db_connection'] === false
) {
$config['history_db_connection'] = db_connect(
$config['history_db_host'],
$config['history_db_name'],
$config['history_db_user'],
io_output_password($config['history_db_pass']),
$config['history_db_port'],
false
);
}
if ($config['history_db_connection'] !== false) {
$historical_days_purge = get_parameter('historical_days_purge', 0);
$historical_days_compact = get_parameter('historical_days_compact', 0);
$historical_step_compact = get_parameter('historical_step_compact', 0);
$historical_event_purge = get_parameter('historical_event_purge', 0);
$historical_string_purge = get_parameter('historical_string_purge', 0);
$history_connect = @mysql_db_process_sql(
'SELECT 1 FROM tconfig',
'affected_rows',
$config['history_db_connection'],
false
);
$config_history = false;
if ($history_connect !== false) {
$config_history = mysql_db_process_sql(
'SELECT * FROM tconfig',
'affected_rows',
$config['history_db_connection'],
false
);
if (!$config_history) {
$sql = "INSERT INTO tconfig (token, `value`) VALUES
('days_purge', ".$historical_days_purge."),
('days_compact', ".$historical_days_compact."),
('step_compact', ".$historical_step_compact."),
('event_purge', ".$historical_event_purge."),
('string_purge', ".$historical_string_purge."),
('history_db_enabled', 0)";
mysql_db_process_sql(
$sql,
'insert_id',
$config['history_db_connection'],
false
);
} else {
$sql = 'UPDATE tconfig SET `value` = '.$historical_days_purge." WHERE token = 'days_purge'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
$sql = 'UPDATE tconfig SET `value` = '.$historical_days_compact." WHERE token = 'days_compact'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
$sql = 'UPDATE tconfig SET `value` = '.$historical_step_compact." WHERE token = 'step_compact'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
$sql = 'UPDATE tconfig SET `value` = '.$historical_event_purge." WHERE token = 'event_purge'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
$sql = 'UPDATE tconfig SET `value` = '.$historical_string_purge." WHERE token = 'string_purge'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
$sql = "UPDATE tconfig SET `value` = 0 WHERE token = 'history_db_enabled'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
}
}
}
}
$table_status = new StdClass();
$table_status->width = '100%';
$table_status->class = 'databox filters';
$table_status->style[0] = 'font-weight: bold';
$table_status->size[0] = '10%';
$table_status->data = [];
$sql = "SELECT UNIX_TIMESTAMP(NOW()) - `value` AS updated_at
FROM tconfig
WHERE token = 'db_maintance'";
$time_pandora_db_active = db_get_sql($sql);
if ($time_pandora_db_active < SECONDS_12HOURS) {
$table_status->data[0][0] = html_print_image(
'images/dot_green.png',
true
);
} else {
$table_status->data[0][0] = html_print_image(
'images/dot_red.png',
true
);
}
$table_status->data[0][0] .= ' '.__('Pandora_db running in active database.');
$table_status->data[0][0] .= ' '.__('Executed:').' ';
$table_status->data[0][0] .= human_time_description_raw(
$time_pandora_db_active,
true
);
$table_status->data[0][0] .= ' '.__('ago').'.';
if ($config['history_db_enabled'] == 1) {
if (! isset($config['history_db_connection'])
|| $config['history_db_connection'] === false
) {
$config['history_db_connection'] = db_connect(
$config['history_db_host'],
$config['history_db_name'],
$config['history_db_user'],
io_output_password($config['history_db_pass']),
$config['history_db_port'],
false
);
}
$history_connect = @mysql_db_process_sql(
'SELECT 1 FROM tconfig',
'affected_rows',
$config['history_db_connection'],
false
);
$time_pandora_db_history = false;
if ($history_connect !== false) {
if ($config['history_db_connection'] !== false) {
$time_pandora_db_history = mysql_db_process_sql(
$sql,
'insert_id',
$config['history_db_connection'],
false
);
}
}
if ($time_pandora_db_history !== false
&& $time_pandora_db_history[0]['updated_at'] < SECONDS_12HOURS
) {
$table_status->data[1][0] = html_print_image(
'images/dot_green.png',
true
);
} else {
$table_status->data[1][0] = html_print_image(
'images/dot_red.png',
true
);
}
$table_status->data[1][0] .= ' '.__('Pandora_db running in historical database.');
$table_status->data[1][0] .= ' '.__('Executed:').' ';
if ($time_pandora_db_history !== false) {
$table_status->data[1][0] .= human_time_description_raw(
$time_pandora_db_history[0]['updated_at'],
true
).' '.__('ago').'.';
} else {
$table_status->data[1][0] .= __('not executed');
}
}
Update operation is done in config_process.php
This is done in that way so the user can see the changes inmediatly.
If you added a new token, please check config_update_config() in functions_config.php
to add it there.
*/
$table = new StdClass(); $table = new StdClass();
$table->width = '100%'; $table->width = '100%';
@ -44,42 +249,279 @@ $table->size[1] = '30%';
enterprise_hook('enterprise_warnings_history_days'); enterprise_hook('enterprise_warnings_history_days');
$table->data[1][0] = __('Max. days before delete events').ui_print_help_tip(__('If the compaction or purge of the data is more frequent than the events deletion, anomalies in module graphs could appear'), true); $table->data[1][0] = __('Max. days before delete events');
$table->data[1][1] = html_print_input_text('event_purge', $config['event_purge'], '', 5, 5, true); $table->data[1][0] .= ui_print_help_tip(
__('If the compaction or purge of the data is more frequent than the events deletion, anomalies in module graphs could appear'),
true
);
$table->data[1][1] = html_print_input_text(
'event_purge',
$config['event_purge'],
'',
5,
5,
true
);
$table->data[2][0] = __('Max. days before delete traps'); $table->data[2][0] = __('Max. days before delete traps');
$table->data[2][1] = html_print_input_text('trap_purge', $config['trap_purge'], '', 5, 5, true); $table->data[2][1] = html_print_input_text(
'trap_purge',
$config['trap_purge'],
'',
5,
5,
true
);
$table->data[3][0] = __('Max. days before delete audit events'); $table->data[3][0] = __('Max. days before delete audit events');
$table->data[3][1] = html_print_input_text('audit_purge', $config['audit_purge'], '', 5, 5, true); $table->data[3][1] = html_print_input_text(
'audit_purge',
$config['audit_purge'],
'',
5,
5,
true
);
$table->data[4][0] = __('Max. days before delete string data'); $table->data[4][0] = __('Max. days before delete string data');
$table->data[4][1] = html_print_input_text('string_purge', $config['string_purge'], '', 5, 5, true); $table->data[4][1] = html_print_input_text(
'string_purge',
$config['string_purge'],
'',
5,
5,
true
);
$table->data[5][0] = __('Max. days before delete GIS data'); $table->data[5][0] = __('Max. days before delete GIS data');
$table->data[5][1] = html_print_input_text('gis_purge', $config['gis_purge'], '', 5, 5, true); $table->data[5][1] = html_print_input_text(
'gis_purge',
$config['gis_purge'],
'',
5,
5,
true
);
$table->data[6][0] = __('Max. days before purge').ui_print_help_tip(__('Configure a purge period more frequent than a compact data period has no sense'), true); $table->data[6][0] = __('Max. days before purge');
$table->data[6][1] = html_print_input_text('days_purge', $config['days_purge'], '', 5, 5, true); $table->data[6][0] .= ui_print_help_tip(
__('Configure a purge period more frequent than a compact data period has no sense'),
true
);
$table->data[6][1] = html_print_input_text(
'days_purge',
$config['days_purge'],
'',
5,
5,
true
);
$table->data[7][0] = __('Max. days before compact data'); $table->data[7][0] = __('Max. days before compact data');
$table->data[7][1] = html_print_input_text('days_compact', $config['days_compact'], '', 5, 5, true); $table->data[7][1] = html_print_input_text(
'days_compact',
$config['days_compact'],
'',
5,
5,
true
);
$table->data[8][0] = __('Max. days before delete unknown modules'); $table->data[8][0] = __('Max. days before delete unknown modules');
$table->data[8][1] = html_print_input_text('days_delete_unknown', $config['days_delete_unknown'], '', 5, 5, true); $table->data[8][1] = html_print_input_text(
'days_delete_unknown',
$config['days_delete_unknown'],
'',
5,
5,
true
);
$table->data[9][0] = __('Max. days before delete autodisabled agents'); $table->data[9][0] = __('Max. days before delete autodisabled agents');
$table->data[9][1] = html_print_input_text('days_autodisable_deletion', $config['days_autodisable_deletion'], '', 5, 5, true); $table->data[9][1] = html_print_input_text(
'days_autodisable_deletion',
$config['days_autodisable_deletion'],
'',
5,
5,
true
);
$table->data[10][0] = __('Retention period of past special days').ui_print_help_tip(__('This number is days to keep past special days. 0 means never remove.'), true); $table->data[10][0] = __('Retention period of past special days');
$table->data[10][1] = html_print_input_text('num_past_special_days', $config['num_past_special_days'], '', 5, 5, true); $table->data[10][0] .= ui_print_help_tip(
__('This number is days to keep past special days. 0 means never remove.'),
true
);
$table->data[10][1] = html_print_input_text(
'num_past_special_days',
$config['num_past_special_days'],
'',
5,
5,
true
);
$table->data[11][0] = __('Max. macro data fields').ui_print_help_tip(__('Number of macro fields in alerts and templates between 1 and 15'), true); $table->data[11][0] = __('Max. macro data fields');
$table->data[11][1] = html_print_input_text('max_macro_fields', $config['max_macro_fields'], '', 5, 5, true, false, false, 'onChange="change_macro_fields()"'); $table->data[11][0] .= ui_print_help_tip(
__('Number of macro fields in alerts and templates between 1 and 15'),
true
);
$table->data[11][1] = html_print_input_text(
'max_macro_fields',
$config['max_macro_fields'],
'',
5,
5,
true,
false,
false,
'onChange="change_macro_fields()"'
);
if (enterprise_installed()) { if (enterprise_installed()) {
$table->data[12][0] = __('Max. days before delete inventory data'); $table->data[12][0] = __('Max. days before delete inventory data');
$table->data[12][1] = html_print_input_text('inventory_purge', $config['inventory_purge'], '', 5, 5, true); $table->data[12][1] = html_print_input_text(
'inventory_purge',
$config['inventory_purge'],
'',
5,
5,
true
);
}
if ($config['history_db_enabled'] == 1) {
if (! isset($config['history_db_connection'])
|| $config['history_db_connection'] === false
) {
$config['history_db_connection'] = db_connect(
$config['history_db_host'],
$config['history_db_name'],
$config['history_db_user'],
io_output_password($config['history_db_pass']),
$config['history_db_port'],
false
);
}
$history_connect = @mysql_db_process_sql(
'SELECT 1 FROM tconfig',
'affected_rows',
$config['history_db_connection'],
false
);
$config_history = false;
if ($history_connect !== false) {
if ($config['history_db_connection'] != false) {
$config_history_array = mysql_db_process_sql(
'SELECT * FROM tconfig',
'affected_rows',
$config['history_db_connection'],
false
);
if (isset($config_history_array) && is_array($config_history_array)) {
foreach ($config_history_array as $key => $value) {
$config_history[$value['token']] = $value['value'];
}
}
}
} else {
echo ui_print_error_message(
__('The tconfig table does not exist in the historical database')
);
}
if ($config_history === false) {
$config_history = [];
$config_history['days_purge'] = 180;
$config_history['days_compact'] = 120;
$config_history['step_compact'] = 1;
$config_history['event_purge'] = 180;
$config_history['string_purge'] = 180;
}
$table_historical = new StdClass();
$table_historical->width = '100%';
$table_historical->class = 'databox filters';
$table_historical->data = [];
$table_historical->style[0] = 'font-weight: bold';
$table_historical->size[0] = '70%';
$table_historical->size[1] = '30%';
enterprise_hook('enterprise_warnings_history_days');
$table_historical->data[0][0] = __('Max. days before purge');
$table_historical->data[0][0] .= ui_print_help_tip(
__('Configure a purge period more frequent than a compact data period has no sense'),
true
);
$table_historical->data[0][1] = html_print_input_text(
'historical_days_purge',
$config_history['days_purge'],
'',
5,
5,
true
);
$table_historical->data[1][0] = __('Max. days before compact data');
$table_historical->data[1][1] = html_print_input_text(
'historical_days_compact',
$config_history['days_compact'],
'',
5,
5,
true
);
$table_historical->data[2][0] = __('Compact interpolation in hours (1 Fine-20 bad)');
$table_historical->data[2][0] .= ui_print_help_tip(
__('Data will be compacted in intervals of the specified length.'),
true
);
$table_historical->data[2][1] = html_print_input_text(
'historical_step_compact',
$config_history['step_compact'],
'',
5,
5,
true
);
$table_historical->data[3][0] = __('Max. days before delete events');
$table_historical->data[3][0] .= ui_print_help_tip(
__('If the compaction or purge of the data is more frequent than the events deletion, anomalies in module graphs could appear'),
true
);
$table_historical->data[3][1] = html_print_input_text(
'historical_event_purge',
$config_history['event_purge'],
'',
5,
5,
true
);
$table_historical->data[4][0] = __('Max. days before delete string data');
$table_historical->data[4][1] = html_print_input_text(
'historical_string_purge',
$config_history['string_purge'],
'',
5,
5,
true
);
$table_historical->data[4][1] .= html_print_input_hidden(
'historical_history_db_enabled',
0,
true
);
} }
$table_other = new stdClass(); $table_other = new stdClass();
@ -91,7 +533,11 @@ $table_other->style[0] = 'font-weight: bold';
$table_other->size[0] = '70%'; $table_other->size[0] = '70%';
$table_other->size[1] = '30%'; $table_other->size[1] = '30%';
$table_other->data[1][0] = __('Item limit for realtime reports').ui_print_help_tip(__('Set a value too high cause a slowdown on console and a performance penalty in the system.'), true); $table_other->data[1][0] = __('Item limit for realtime reports');
$table_other->data[1][0] .= ui_print_help_tip(
__('Set a value too high cause a slowdown on console and a performance penalty in the system.'),
true
);
$table_other->data[1][1] = html_print_input_text( $table_other->data[1][1] = html_print_input_text(
'report_limit', 'report_limit',
$config['report_limit'], $config['report_limit'],
@ -101,7 +547,11 @@ $table_other->data[1][1] = html_print_input_text(
true true
); );
$table_other->data[2][0] = __('Compact interpolation in hours (1 Fine-20 bad)').ui_print_help_tip(__('Data will be compacted in intervals of the specified length.'), true); $table_other->data[2][0] = __('Compact interpolation in hours (1 Fine-20 bad)');
$table_other->data[2][0] .= ui_print_help_tip(
__('Data will be compacted in intervals of the specified length.'),
true
);
$table_other->data[2][1] = html_print_input_text( $table_other->data[2][1] = html_print_input_text(
'step_compact', 'step_compact',
$config['step_compact'], $config['step_compact'],
@ -122,49 +572,145 @@ $intervals[SECONDS_2WEEK] = __('2 weeks');
$intervals[SECONDS_1MONTH] = __('Last month'); $intervals[SECONDS_1MONTH] = __('Last month');
$table_other->data[3][0] = __('Default hours for event view'); $table_other->data[3][0] = __('Default hours for event view');
$table_other->data[3][1] = html_print_input_text('event_view_hr', $config['event_view_hr'], '', 5, 5, true); $table_other->data[3][1] = html_print_input_text(
'event_view_hr',
$config['event_view_hr'],
'',
5,
5,
true
);
$table_other->data[5][0] = __('Use realtime statistics'); $table_other->data[5][0] = __('Use realtime statistics');
$table_other->data[5][1] = __('Yes').'&nbsp;'.html_print_radio_button('realtimestats', 1, '', $config['realtimestats'], true).'&nbsp;&nbsp;'; $table_other->data[5][1] = html_print_checkbox_toogle_switch(
$table_other->data[5][1] .= __('No').'&nbsp;'.html_print_radio_button('realtimestats', 0, '', $config['realtimestats'], true); 'realtimestats',
1,
$config['realtimestats'],
true
);
$table_other->data[6][0] = __('Batch statistics period (secs)').ui_print_help_tip(__('If realtime statistics are disabled, statistics interval resfresh will be set here.'), true); $table_other->data[6][0] = __('Batch statistics period (secs)');
$table_other->data[6][1] = html_print_input_text('stats_interval', $config['stats_interval'], '', 5, 5, true); $table_other->data[6][0] .= ui_print_help_tip(
__('If realtime statistics are disabled, statistics interval resfresh will be set here.'),
true
);
$table_other->data[6][1] = html_print_input_text(
'stats_interval',
$config['stats_interval'],
'',
5,
5,
true
);
$table_other->data[7][0] = __('Use agent access graph').ui_print_help_icon('agent_access', true); $table_other->data[7][0] = __('Use agent access graph').ui_print_help_icon('agent_access', true);
$table_other->data[7][1] = __('Yes').'&nbsp;'.html_print_radio_button('agentaccess', 1, '', $config['agentaccess'], true).'&nbsp;&nbsp;'; $table_other->data[7][1] = html_print_checkbox_toogle_switch('agentaccess', 1, $config['agentaccess'], true);
$table_other->data[7][1] .= __('No').'&nbsp;'.html_print_radio_button('agentaccess', 0, '', $config['agentaccess'], true);
$table_other->data[8][0] = __('Max. recommended number of files in attachment directory').ui_print_help_tip(__('This number is the maximum number of files in attachment directory. If this number is reached then a warning message will appear in the header notification space.'), true); $table_other->data[8][0] = __('Max. recommended number of files in attachment directory');
$table_other->data[8][1] = html_print_input_text('num_files_attachment', $config['num_files_attachment'], '', 5, 5, true); $table_other->data[8][0] .= ui_print_help_tip(
__('This number is the maximum number of files in attachment directory. If this number is reached then a warning message will appear in the header notification space.'),
true
);
$table_other->data[8][1] = html_print_input_text(
'num_files_attachment',
$config['num_files_attachment'],
'',
5,
5,
true
);
$table_other->data[9][0] = __('Delete not init modules'); $table_other->data[9][0] = __('Delete not init modules');
$table_other->data[9][1] = __('Yes').'&nbsp;'.html_print_radio_button('delete_notinit', 1, '', $config['delete_notinit'], true).'&nbsp;&nbsp;'; $table_other->data[9][1] = html_print_checkbox_toogle_switch('delete_notinit', 1, $config['delete_notinit'], true);
$table_other->data[9][1] .= __('No').'&nbsp;'.html_print_radio_button('delete_notinit', 0, '', $config['delete_notinit'], true);
$table_other->data[10][0] = __('Big Operation Step to purge old data').ui_print_help_tip(__('The number of blocks that a time interval is split into. A bigger value means bigger blocks, which is faster but heavier on the database. Default is 100.'), true); $table_other->data[10][0] = __('Big Operation Step to purge old data');
$table_other->data[10][1] = html_print_input_text('big_operation_step_datos_purge', $config['big_operation_step_datos_purge'], '', 5, 5, true); $table_other->data[10][0] .= ui_print_help_tip(
__('The number of blocks that a time interval is split into. A bigger value means bigger blocks, which is faster but heavier on the database. Default is 100.'),
true
);
$table_other->data[10][1] = html_print_input_text(
'big_operation_step_datos_purge',
$config['big_operation_step_datos_purge'],
'',
5,
5,
true
);
$table_other->data[11][0] = __('Small Operation Step to purge old data').ui_print_help_tip(__('The number of rows that are processed in a single query in deletion. Default is 1000. Increase to 3000-5000 in fast systems. Decrease to 500 or 250 on systems with locks.'), true); $table_other->data[11][0] = __('Small Operation Step to purge old data');
$table_other->data[11][1] = html_print_input_text('small_operation_step_datos_purge', $config['small_operation_step_datos_purge'], '', 5, 5, true); $table_other->data[11][0] .= ui_print_help_tip(
__('The number of rows that are processed in a single query in deletion. Default is 1000. Increase to 3000-5000 in fast systems. Decrease to 500 or 250 on systems with locks.'),
true
);
$table_other->data[11][1] = html_print_input_text(
'small_operation_step_datos_purge',
$config['small_operation_step_datos_purge'],
'',
5,
5,
true
);
$table_other->data[12][0] = __('Graph container - Max. Items').ui_print_help_tip(__('The number of graphs that are viewed in a container. Default is 10 .Increasing this number could lead to performance problems'), true); $table_other->data[12][0] = __('Graph container - Max. Items');
$table_other->data[12][1] = html_print_input_text('max_graph_container', $config['max_graph_container'], '', 5, 5, true); $table_other->data[12][0] .= ui_print_help_tip(
__('The number of graphs that are viewed in a container. Default is 10 .Increasing this number could lead to performance problems'),
true
);
$table_other->data[12][1] = html_print_input_text(
'max_graph_container',
$config['max_graph_container'],
'',
5,
5,
true
);
$table_other->data[13][0] = __('Events response max. execution');
$table_other->data[13][0] .= ui_print_help_tip(
__('Number of events that will perform the desired action at the same time'),
true
);
$table_other->data[13][1] = html_print_input_text(
'max_execution_event_response',
$config['max_execution_event_response'],
'',
5,
5,
true
);
echo '<form id="form_setup" method="post">'; echo '<form id="form_setup" method="post">';
echo '<fieldset>'; echo '<fieldset>';
echo '<legend>'.__('Database maintenance options').'</legend>'; echo '<legend>'.__('Database maintenance status').'</legend>';
html_print_input_hidden('update_config', 1); html_print_table($table_status);
html_print_table($table);
echo '</fieldset>'; echo '</fieldset>';
echo '<fieldset>'; echo '<fieldset>';
echo '<legend>'.__('Others').'</legend>'; echo '<legend>'.__('Database maintenance options').'</legend>';
html_print_input_hidden('update_config', 1); html_print_table($table);
html_print_table($table_other);
echo '</fieldset>'; echo '</fieldset>';
if ($config['history_db_enabled'] == 1) {
echo '<fieldset>';
echo '<legend>'.__('Historical database maintenance options').'</legend>';
html_print_table($table_historical);
echo '</fieldset>';
}
echo '<fieldset>';
echo '<legend>'.__('Others').'</legend>';
html_print_table($table_other);
echo '</fieldset>';
echo '<div class="action-buttons" style="width: '.$table->width.'">'; echo '<div class="action-buttons" style="width: '.$table->width.'">';
html_print_submit_button(__('Update'), 'update_button', false, 'class="sub upd"'); html_print_input_hidden('update_config', 1);
html_print_submit_button(
__('Update'),
'update_button',
false,
'class="sub upd"'
);
echo '</div>'; echo '</div>';
echo '</form>'; echo '</form>';
?> ?>
@ -173,7 +719,6 @@ echo '</form>';
function change_macro_fields() { function change_macro_fields() {
var value = $("#text-max_macro_fields").val(); var value = $("#text-max_macro_fields").val();
console.log(value);
if (value <= 0) { if (value <= 0) {
$("#text-max_macro_fields").val(1); $("#text-max_macro_fields").val(1);
} }

View File

@ -1,17 +1,32 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @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-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 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();
@ -49,7 +64,7 @@ if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user
return; return;
} }
// Load enterprise extensions // Load enterprise extensions.
enterprise_include_once('include/functions_setup.php'); enterprise_include_once('include/functions_setup.php');
enterprise_include_once('include/functions_io.php'); enterprise_include_once('include/functions_io.php');
enterprise_include_once('godmode/setup/setup.php'); enterprise_include_once('godmode/setup/setup.php');
@ -63,12 +78,12 @@ enterprise_include_once('godmode/setup/setup.php');
to add it there. to add it there.
*/ */
// Gets section to jump to another section // Gets section to jump to another section.
$section = (string) get_parameter('section', 'general'); $section = (string) get_parameter('section', 'general');
$buttons = []; $buttons = [];
// Draws header // Draws header.
$buttons['general'] = [ $buttons['general'] = [
'active' => false, 'active' => false,
'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=general">'.html_print_image('images/gm_setup.png', true, ['title' => __('General')]).'</a>', 'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=general">'.html_print_image('images/gm_setup.png', true, ['title' => __('General')]).'</a>',
@ -114,6 +129,7 @@ if (enterprise_installed()) {
switch ($section) { switch ($section) {
case 'general': case 'general':
default:
$buttons['general']['active'] = true; $buttons['general']['active'] = true;
$subpage = ' &raquo '.__('General'); $subpage = ' &raquo '.__('General');
break; break;
@ -145,7 +161,7 @@ switch ($section) {
break; break;
} }
// Header // Header.
ui_print_page_header(__('Configuration').$subpage, '', false, $help_header, true, $buttons); ui_print_page_header(__('Configuration').$subpage, '', false, $help_header, true, $buttons);
if (isset($config['error_config_update_config'])) { if (isset($config['error_config_update_config'])) {

View File

@ -44,16 +44,14 @@ if (is_ajax()) {
// Fallback to local authentication // Fallback to local authentication
$row = []; $row = [];
$row['name'] = __('Fallback to local authentication').ui_print_help_tip(__('Enable this option if you want to fallback to local authentication when remote (ldap etc...) authentication failed.'), true); $row['name'] = __('Fallback to local authentication').ui_print_help_tip(__('Enable this option if you want to fallback to local authentication when remote (ldap etc...) authentication failed.'), true);
$row['control'] = __('Yes').'&nbsp;'.html_print_radio_button('fallback_local_auth', 1, '', $config['fallback_local_auth'], true).'&nbsp;&nbsp;'; $row['control'] = html_print_checkbox_toogle_switch('fallback_local_auth', 1, $config['fallback_local_auth'], true);
$row['control'] .= __('No').'&nbsp;'.html_print_radio_button('fallback_local_auth', 0, '', $config['fallback_local_auth'], true);
$table->data['fallback_local_auth'] = $row; $table->data['fallback_local_auth'] = $row;
if (enterprise_installed()) { if (enterprise_installed()) {
// Autocreate remote users // Autocreate remote users
$row = []; $row = [];
$row['name'] = __('Autocreate remote users'); $row['name'] = __('Autocreate remote users');
$row['control'] = __('Yes').'&nbsp;'.html_print_radio_button_extended('autocreate_remote_users', 1, '', $config['autocreate_remote_users'], false, '', '', true).'&nbsp;&nbsp;'; $row['control'] = html_print_checkbox_toogle_switch_extended('autocreate_remote_users', 1, $config['autocreate_remote_users'], false, '', '', true).'&nbsp;&nbsp;';
$row['control'] .= __('No').'&nbsp;'.html_print_radio_button_extended('autocreate_remote_users', 0, '', $config['autocreate_remote_users'], false, '', '', true);
$table->data['autocreate_remote_users'] = $row; $table->data['autocreate_remote_users'] = $row;
add_enterprise_auth_autocreate_profiles($table, $type_auth); add_enterprise_auth_autocreate_profiles($table, $type_auth);
@ -91,8 +89,7 @@ if (is_ajax()) {
// Start TLS // Start TLS
$row = []; $row = [];
$row['name'] = __('Start TLS'); $row['name'] = __('Start TLS');
$row['control'] = __('Yes').'&nbsp;'.html_print_radio_button('ldap_start_tls', 1, '', $config['ldap_start_tls'], true).'&nbsp;&nbsp;'; $row['control'] = html_print_checkbox_toogle_switch('ldap_start_tls', 1, $config['ldap_start_tls'], true);
$row['control'] .= __('No').'&nbsp;'.html_print_radio_button('ldap_start_tls', 0, '', $config['ldap_start_tls'], true);
$table->data['ldap_start_tls'] = $row; $table->data['ldap_start_tls'] = $row;
// Base DN // Base DN
@ -137,11 +134,8 @@ if (is_ajax()) {
set_unless_defined($config['double_auth_enabled'], false); set_unless_defined($config['double_auth_enabled'], false);
$row = []; $row = [];
$row['name'] = __('Double authentication').ui_print_help_tip(__('If this option is enabled, the users can use double authentication with their accounts'), true); $row['name'] = __('Double authentication').ui_print_help_tip(__('If this option is enabled, the users can use double authentication with their accounts'), true);
$row['control'] = __('Yes').'&nbsp;'; $row['control'] = html_print_input_hidden('double_auth_enabled', 0);
$row['control'] .= html_print_radio_button('double_auth_enabled', 1, '', $config['double_auth_enabled'], true); $row['control'] .= html_print_checkbox_toogle_switch('double_auth_enabled', 1, $config['double_auth_enabled'], true);
$row['control'] .= '&nbsp;&nbsp;';
$row['control'] .= __('No').'&nbsp;';
$row['control'] .= html_print_radio_button('double_auth_enabled', 0, '', $config['double_auth_enabled'], true);
$table->data['double_auth_enabled'] = $row; $table->data['double_auth_enabled'] = $row;
// Session timeout // Session timeout

View File

@ -48,8 +48,8 @@ $table_enable->style['name'] = 'font-weight: bold';
// Enable eHorus // Enable eHorus
$row = []; $row = [];
$row['name'] = __('Enable eHorus'); $row['name'] = __('Enable eHorus');
$row['control'] = __('Yes').'&nbsp;'.html_print_radio_button('ehorus_enabled', 1, '', $config['ehorus_enabled'], true).'&nbsp;&nbsp;'; $row['control'] = __('Enabled').'&nbsp;'.html_print_radio_button('ehorus_enabled', 1, '', $config['ehorus_enabled'], true).'&nbsp;&nbsp;';
$row['control'] .= __('No').'&nbsp;'.html_print_radio_button('ehorus_enabled', 0, '', $config['ehorus_enabled'], true); $row['control'] .= __('Disabled').'&nbsp;'.html_print_radio_button('ehorus_enabled', 0, '', $config['ehorus_enabled'], true);
$row['button'] = html_print_submit_button(__('Update'), 'update_button', false, 'class="sub upd"', true); $row['button'] = html_print_submit_button(__('Update'), 'update_button', false, 'class="sub upd"', true);
$table_enable->data['ehorus_enabled'] = $row; $table_enable->data['ehorus_enabled'] = $row;

View File

@ -82,16 +82,17 @@ $sources['sql'] = __('Database');
$table->data[9][1] = html_print_select($sources, 'timesource', $config['timesource'], '', '', '', true); $table->data[9][1] = html_print_select($sources, 'timesource', $config['timesource'], '', '', '', true);
$table->data[10][0] = __('Automatic check for updates'); $table->data[10][0] = __('Automatic check for updates');
$table->data[10][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('autoupdate', 1, '', $config['autoupdate'], true).'&nbsp;&nbsp;'; $table->data[10][1] = html_print_checkbox_toogle_switch('autoupdate', 1, $config['autoupdate'], true);
$table->data[10][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('autoupdate', 0, '', $config['autoupdate'], true);
echo "<div id='dialog' title='".__('Enforce https Information')."' style='display:none;'>";
echo "<p style='text-align: center;'>".__('If SSL is not properly configured you will lose access to ').get_product_name().__(' Console').'</p>';
echo '</div>';
$table->data[11][0] = __('Enforce https'); $table->data[11][0] = __('Enforce https');
$table->data[11][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button_extended('https', 1, '', $config['https'], false, "if (! confirm ('".__('If SSL is not properly configured you will lose access to %s Console. Do you want to continue?', get_product_name())."')) return false", '', true).'&nbsp;&nbsp;'; $table->data[11][1] = html_print_checkbox_toogle_switch_extended('https', 1, $config['https'], false, '', '', true);
$table->data[11][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('https', 0, '', $config['https'], true);
$table->data[12][0] = __('Use cert of SSL'); $table->data[12][0] = __('Use cert of SSL');
$table->data[12][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button_extended('use_cert', 1, '', $config['use_cert'], false, '', '', true).'&nbsp;&nbsp;'; $table->data[12][1] = html_print_checkbox_toogle_switch_extended('use_cert', 1, $config['use_cert'], false, '', '', true);
$table->data[12][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('use_cert', 0, '', $config['use_cert'], true);
$table->rowstyle[13] = 'display: none;'; $table->rowstyle[13] = 'display: none;';
$table->data[13][0] = __('Path of SSL Cert.').ui_print_help_tip(__('Path where you put your cert and name of this cert. Remember your cert only in .pem extension.'), true); $table->data[13][0] = __('Path of SSL Cert.').ui_print_help_tip(__('Path where you put your cert and name of this cert. Remember your cert only in .pem extension.'), true);
@ -113,8 +114,7 @@ $table->data[16][0] = __('API password').ui_print_help_tip(__('Please be careful
$table->data[16][1] = html_print_input_password('api_password', io_output_password($config['api_password']), '', 25, 255, true); $table->data[16][1] = html_print_input_password('api_password', io_output_password($config['api_password']), '', 25, 255, true);
$table->data[17][0] = __('Enable GIS features'); $table->data[17][0] = __('Enable GIS features');
$table->data[17][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('activate_gis', 1, '', $config['activate_gis'], true).'&nbsp;&nbsp;'; $table->data[17][1] = html_print_checkbox_toogle_switch('activate_gis', 1, $config['activate_gis'], true);
$table->data[17][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('activate_gis', 0, '', $config['activate_gis'], true);
$table->data[19][0] = __('Enable Netflow'); $table->data[19][0] = __('Enable Netflow');
$rbt_disabled = false; $rbt_disabled = false;
@ -123,8 +123,8 @@ if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
$table->data[19][0] .= ui_print_help_tip(__('Not supported in Windows systems'), true); $table->data[19][0] .= ui_print_help_tip(__('Not supported in Windows systems'), true);
} }
$table->data[19][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button_extended('activate_netflow', 1, '', $config['activate_netflow'], $rbt_disabled, '', '', true).'&nbsp;&nbsp;'; $table->data[19][1] = html_print_checkbox_toogle_switch_extended('activate_netflow', 1, $config['activate_netflow'], $rbt_disabled, '', '', true);
$table->data[19][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button_extended('activate_netflow', 0, '', $config['activate_netflow'], $rbt_disabled, '', '', true);
$zone_name = [ $zone_name = [
'Africa' => __('Africa'), 'Africa' => __('Africa'),
@ -202,18 +202,15 @@ $table->data[28][1] = html_print_input_text('public_url', $config['public_url'],
$table->data[29][0] = __('Referer security'); $table->data[29][0] = __('Referer security');
$table->data[29][0] .= ui_print_help_tip(__("If enabled, actively checks if the user comes from %s's URL", get_product_name()), true); $table->data[29][0] .= ui_print_help_tip(__("If enabled, actively checks if the user comes from %s's URL", get_product_name()), true);
$table->data[29][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('referer_security', 1, '', $config['referer_security'], true).'&nbsp;&nbsp;'; $table->data[29][1] = html_print_checkbox_toogle_switch('referer_security', 1, $config['referer_security'], true);
$table->data[29][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('referer_security', 0, '', $config['referer_security'], true);
$table->data[30][0] = __('Event storm protection'); $table->data[30][0] = __('Event storm protection');
$table->data[30][0] .= ui_print_help_tip(__('If set to yes no events or alerts will be generated, but agents will continue receiving data.'), true); $table->data[30][0] .= ui_print_help_tip(__('If set to yes no events or alerts will be generated, but agents will continue receiving data.'), true);
$table->data[30][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('event_storm_protection', 1, '', $config['event_storm_protection'], true).'&nbsp;&nbsp;'; $table->data[30][1] = html_print_checkbox_toogle_switch('event_storm_protection', 1, $config['event_storm_protection'], true);
$table->data[30][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('event_storm_protection', 0, '', $config['event_storm_protection'], true);
$table->data[31][0] = __('Command Snapshot').ui_print_help_tip(__('The string modules with several lines show as command output'), true); $table->data[31][0] = __('Command Snapshot').ui_print_help_tip(__('The string modules with several lines show as command output'), true);
$table->data[31][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('command_snapshot', 1, '', $config['command_snapshot'], true).'&nbsp;&nbsp;'; $table->data[31][1] = html_print_checkbox_toogle_switch('command_snapshot', 1, $config['command_snapshot'], true);
$table->data[31][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('command_snapshot', 0, '', $config['command_snapshot'], true);
$table->data[32][0] = __('Server logs directory').ui_print_help_tip(__('Directory where the server logs are stored.'), true); $table->data[32][0] = __('Server logs directory').ui_print_help_tip(__('Directory where the server logs are stored.'), true);
$table->data[32][1] = html_print_input_text( $table->data[32][1] = html_print_input_text(
@ -253,8 +250,7 @@ $table->data['tutorial_mode'][1] = html_print_select(
$config['past_planned_downtimes'] = isset($config['past_planned_downtimes']) ? $config['past_planned_downtimes'] : 1; $config['past_planned_downtimes'] = isset($config['past_planned_downtimes']) ? $config['past_planned_downtimes'] : 1;
$table->data[34][0] = __('Allow create planned downtimes in the past').ui_print_help_tip(__('The planned downtimes created in the past will affect the SLA reports'), true); $table->data[34][0] = __('Allow create planned downtimes in the past').ui_print_help_tip(__('The planned downtimes created in the past will affect the SLA reports'), true);
$table->data[34][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('past_planned_downtimes', 1, '', $config['past_planned_downtimes'], true).'&nbsp;&nbsp;'; $table->data[34][1] = html_print_checkbox_toogle_switch('past_planned_downtimes', 1, $config['past_planned_downtimes'], true);
$table->data[34][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('past_planned_downtimes', 0, '', $config['past_planned_downtimes'], true);
$table->data[35][0] = __('Limit for bulk operations').ui_print_help_tip(__('Your PHP environment is set to 1000 max_input_vars. This parameter should have the same value or lower.', ini_get('max_input_vars')), true); $table->data[35][0] = __('Limit for bulk operations').ui_print_help_tip(__('Your PHP environment is set to 1000 max_input_vars. This parameter should have the same value or lower.', ini_get('max_input_vars')), true);
$table->data[35][1] = html_print_input_text( $table->data[35][1] = html_print_input_text(
@ -267,8 +263,7 @@ $table->data[35][1] = html_print_input_text(
); );
$table->data[36][0] = __('Include agents manually disabled'); $table->data[36][0] = __('Include agents manually disabled');
$table->data[36][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('include_agents', 1, '', $config['include_agents'], true).'&nbsp;&nbsp;'; $table->data[36][1] = html_print_checkbox_toogle_switch('include_agents', 1, $config['include_agents'], true);
$table->data[36][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('include_agents', 0, '', $config['include_agents'], true);
$table->data[37][0] = __('Audit log directory').ui_print_help_tip(__('Directory where audit log is stored.'), true); $table->data[37][0] = __('Audit log directory').ui_print_help_tip(__('Directory where audit log is stored.'), true);
$table->data[37][1] = html_print_input_text('auditdir', io_safe_output($config['auditdir']), '', 30, 100, true); $table->data[37][1] = html_print_input_text('auditdir', io_safe_output($config['auditdir']), '', 30, 100, true);
@ -277,6 +272,10 @@ $table->data[38][0] = __('Set alias as name by default in agent creation');
$table->data[38][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('alias_as_name', 1, '', $config['alias_as_name'], true).'&nbsp;&nbsp;'; $table->data[38][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('alias_as_name', 1, '', $config['alias_as_name'], true).'&nbsp;&nbsp;';
$table->data[38][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('alias_as_name', 0, '', $config['alias_as_name'], true); $table->data[38][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('alias_as_name', 0, '', $config['alias_as_name'], true);
$table->data[39][0] = __('Unique IP').ui_print_help_tip(__('Set the primary IP address as the unique IP, preventing the same primary IP address from being used in more than one agent'), true);
$table->data[39][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('unique_ip', 1, '', $config['unique_ip'], true).'&nbsp;&nbsp;';
$table->data[39][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('unique_ip', 0, '', $config['unique_ip'], true);
echo '<form id="form_setup" method="post" action="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=general&amp;pure='.$config['pure'].'">'; echo '<form id="form_setup" method="post" action="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=general&amp;pure='.$config['pure'].'">';
echo '<fieldset>'; echo '<fieldset>';
@ -339,16 +338,30 @@ $(document).ready (function () {
$("#zone").attr("hidden", false); $("#zone").attr("hidden", false);
$("#timezone").attr("hidden", false); $("#timezone").attr("hidden", false);
}); });
$("input[name=use_cert]").change(function () {
if( $(this).is(":checked") ){ if ($("input[name=use_cert]").is(':checked')) {
var val = $(this).val();
if (val == 1) {
$('#setup_general-13').show(); $('#setup_general-13').show();
} }
$("input[name=use_cert]").change(function () {
if( $(this).is(":checked") )
$('#setup_general-13').show();
else else
$('#setup_general-13').hide(); $('#setup_general-13').hide();
});
$("input[name=https]").change(function (){
if($("input[name=https]").prop('checked')) {
$("#dialog").css({'display': 'inline', 'font-weight': 'bold'}).dialog({
modal: true,
buttons:{
"<?php echo __('Close'); ?>": function(){
$(this).dialog("close");
}
} }
}); });
}
})
}); });
</script> </script>
<?php <?php
@ -368,5 +381,3 @@ function get_sounds()
return $return; return $return;
} }

View File

@ -75,7 +75,7 @@ $table_behaviour->data[$row][1] = html_print_select($values, 'vc_refr', $config[
$row++; $row++;
$table_behaviour->data[$row][0] = __('Paginated module view'); $table_behaviour->data[$row][0] = __('Paginated module view');
$table_behaviour->data[$row][1] = html_print_checkbox( $table_behaviour->data[$row][1] = html_print_checkbox_toogle_switch(
'paginate_module', 'paginate_module',
1, 1,
$config['paginate_module'], $config['paginate_module'],
@ -84,7 +84,7 @@ $table_behaviour->data[$row][1] = html_print_checkbox(
$row++; $row++;
$table_behaviour->data[$row][0] = __('Display data of proc modules in other format'); $table_behaviour->data[$row][0] = __('Display data of proc modules in other format');
$table_behaviour->data[$row][1] = html_print_checkbox( $table_behaviour->data[$row][1] = html_print_checkbox_toogle_switch(
'render_proc', 'render_proc',
1, 1,
$config['render_proc'], $config['render_proc'],
@ -102,7 +102,7 @@ $row++;
// Daniel maya 02/06/2016 Display menu with click --INI // Daniel maya 02/06/2016 Display menu with click --INI
$table_behaviour->data[$row][0] = __('Click to display lateral menus').ui_print_help_tip(__('When enabled, the lateral menus are shown when left clicking them, instead of hovering over them'), true); $table_behaviour->data[$row][0] = __('Click to display lateral menus').ui_print_help_tip(__('When enabled, the lateral menus are shown when left clicking them, instead of hovering over them'), true);
$table_behaviour->data[$row][1] = html_print_checkbox( $table_behaviour->data[$row][1] = html_print_checkbox_toogle_switch(
'click_display', 'click_display',
1, 1,
$config['click_display'], $config['click_display'],
@ -121,7 +121,7 @@ if (enterprise_installed()) {
} }
$table_behaviour->data[$row][0] = __('Classic menu mode').ui_print_help_tip(__('Text menu options always visible, don\'t hide'), true); $table_behaviour->data[$row][0] = __('Classic menu mode').ui_print_help_tip(__('Text menu options always visible, don\'t hide'), true);
$table_behaviour->data[$row][1] = html_print_checkbox( $table_behaviour->data[$row][1] = html_print_checkbox_toogle_switch(
'classic_menu', 'classic_menu',
1, 1,
$config['classic_menu'], $config['classic_menu'],
@ -511,7 +511,7 @@ if (enterprise_installed()) {
if (enterprise_installed()) { if (enterprise_installed()) {
$table_styles->data[$row][0] = __('Disable logo in graphs'); $table_styles->data[$row][0] = __('Disable logo in graphs');
$table_styles->data[$row][1] = html_print_checkbox( $table_styles->data[$row][1] = html_print_checkbox_toogle_switch(
'fixed_graph', 'fixed_graph',
1, 1,
$config['fixed_graph'], $config['fixed_graph'],
@ -527,7 +527,7 @@ if (enterprise_installed()) {
*/ */
$table_styles->data[$row][0] = __('Disable helps'); $table_styles->data[$row][0] = __('Disable helps');
$table_styles->data[$row][1] = html_print_checkbox( $table_styles->data[$row][1] = html_print_checkbox_toogle_switch(
'disable_help', 'disable_help',
1, 1,
$config['disable_help'], $config['disable_help'],
@ -536,7 +536,7 @@ $table_styles->data[$row][1] = html_print_checkbox(
$row++; $row++;
$table_styles->data[$row][0] = __('Fixed header'); $table_styles->data[$row][0] = __('Fixed header');
$table_styles->data[$row][1] = html_print_checkbox( $table_styles->data[$row][1] = html_print_checkbox_toogle_switch(
'fixed_header', 'fixed_header',
1, 1,
$config['fixed_header'], $config['fixed_header'],
@ -545,7 +545,7 @@ $table_styles->data[$row][1] = html_print_checkbox(
$row++; $row++;
$table_styles->data[$row][0] = __('Fixed menu'); $table_styles->data[$row][0] = __('Fixed menu');
$table_styles->data[$row][1] = html_print_checkbox( $table_styles->data[$row][1] = html_print_checkbox_toogle_switch(
'fixed_menu', 'fixed_menu',
1, 1,
$config['fixed_menu'], $config['fixed_menu'],
@ -555,7 +555,7 @@ $row++;
// For 5.1 Autohidden menu feature // For 5.1 Autohidden menu feature
$table_styles->data['autohidden'][0] = __('Autohidden menu'); $table_styles->data['autohidden'][0] = __('Autohidden menu');
$table_styles->data['autohidden'][1] = html_print_checkbox( $table_styles->data['autohidden'][1] = html_print_checkbox_toogle_switch(
'autohidden_menu', 'autohidden_menu',
1, 1,
$config['autohidden_menu'], $config['autohidden_menu'],
@ -563,13 +563,14 @@ $table_styles->data['autohidden'][1] = html_print_checkbox(
); );
$table_styles->data[$row][0] = __('Visual effects and animation'); $table_styles->data[$row][0] = __('Visual effects and animation');
$table_styles->data[$row][1] = html_print_checkbox( $table_styles->data[$row][1] = html_print_checkbox_toogle_switch(
'visual_animation', 'visual_animation',
1, 1,
$config['visual_animation'], $config['visual_animation'],
true true
); );
echo '<fieldset>'; echo '<fieldset>';
echo '<legend>'.__('Style configuration').'</legend>'; echo '<legend>'.__('Style configuration').'</legend>';
html_print_table($table_styles); html_print_table($table_styles);
@ -586,7 +587,7 @@ $table_gis->size[0] = '50%';
$table_gis->data = []; $table_gis->data = [];
$table_gis->data[$row][0] = __('GIS Labels').ui_print_help_tip(__('This enabling this, you get a label with agent name in GIS maps. If you have lots of agents in the map, will be unreadable. Disabled by default.'), true); $table_gis->data[$row][0] = __('GIS Labels').ui_print_help_tip(__('This enabling this, you get a label with agent name in GIS maps. If you have lots of agents in the map, will be unreadable. Disabled by default.'), true);
$table_gis->data[$row][1] = html_print_checkbox( $table_gis->data[$row][1] = html_print_checkbox_toogle_switch(
'gis_label', 'gis_label',
1, 1,
$config['gis_label'], $config['gis_label'],
@ -699,7 +700,7 @@ $table_font->data[$row][1] = html_print_input_text(
$row++; $row++;
$table_font->data[$row][0] = __('Show unit along with value in reports').ui_print_help_tip(__('This enabling this, max, min and avg values will be shown with units.'), true); $table_font->data[$row][0] = __('Show unit along with value in reports').ui_print_help_tip(__('This enabling this, max, min and avg values will be shown with units.'), true);
$table_font->data[$row][1] = html_print_checkbox( $table_font->data[$row][1] = html_print_checkbox_toogle_switch(
'simple_module_value', 'simple_module_value',
1, 1,
$config['simple_module_value'], $config['simple_module_value'],
@ -797,7 +798,7 @@ $table_chars->data[$row][1] = html_print_input_text(
$row++; $row++;
$table_chars->data[$row][0] = __('Use round corners'); $table_chars->data[$row][0] = __('Use round corners');
$table_chars->data[$row][1] = html_print_checkbox( $table_chars->data[$row][1] = html_print_checkbox_toogle_switch(
'round_corner', 'round_corner',
1, 1,
$config['round_corner'], $config['round_corner'],
@ -966,7 +967,7 @@ $table_other->data[$row][0] = __('Show report info with description').ui_print_h
__('Custom report description info. It will be applied to all reports and templates by default.'), __('Custom report description info. It will be applied to all reports and templates by default.'),
true true
); );
$table_other->data[$row][1] = html_print_checkbox( $table_other->data[$row][1] = html_print_checkbox_toogle_switch(
'custom_report_info', 'custom_report_info',
1, 1,
$config['custom_report_info'], $config['custom_report_info'],
@ -986,6 +987,7 @@ $table_other->data[$row][1] = html_print_checkbox(
$config['custom_report_front'], $config['custom_report_front'],
true true
); );
$row++; $row++;
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
$dirItems = scandir($config['homedir'].'/images/custom_logo'); $dirItems = scandir($config['homedir'].'/images/custom_logo');
@ -1079,7 +1081,7 @@ $table_other->data['custom_report_front-footer'][1] = html_print_textarea(
$table_other->data[$row][0] = __('Show QR Code icon in the header'); $table_other->data[$row][0] = __('Show QR Code icon in the header');
$table_other->data[$row][1] = html_print_checkbox( $table_other->data[$row][1] = html_print_checkbox_toogle_switch(
'show_qr_code_header', 'show_qr_code_header',
1, 1,
$config['show_qr_code_header'], $config['show_qr_code_header'],
@ -1117,7 +1119,7 @@ $table_other->data[$row][0] .= ui_print_help_tip(
__('Show the group name instead the group icon.'), __('Show the group name instead the group icon.'),
true true
); );
$table_other->data[$row][1] = html_print_checkbox( $table_other->data[$row][1] = html_print_checkbox_toogle_switch(
'show_group_name', 'show_group_name',
1, 1,
$config['show_group_name'], $config['show_group_name'],
@ -1460,6 +1462,7 @@ $(document).ready (function () {
.prop('checked'); .prop('checked');
display_custom_report_front(custom_report,$(this).parent().parent().parent().parent().attr('id')); display_custom_report_front(custom_report,$(this).parent().parent().parent().parent().attr('id'));
}); });
$(".databox.filters").css('margin-bottom','-10px');
}); });
// Change the favicon preview when is changed // Change the favicon preview when is changed

View File

@ -751,7 +751,7 @@ if ($create_alert || $update_alert) {
// echo '<tr><td class="datos"><b>' . __('Alert filters') . ui_print_help_icon("snmp_alert_filters", true) . '</b></td></tr>'; // echo '<tr><td class="datos"><b>' . __('Alert filters') . ui_print_help_icon("snmp_alert_filters", true) . '</b></td></tr>';
// OID // OID
echo '<tr id="tr-oid">'.'<td class="datos2">'.__('Enterprise String').'</td>'.'<td class="datos2">'; echo '<tr id="tr-oid">'.'<td class="datos2">'.__('Enterprise String').ui_print_help_tip(__('Matches substrings. End the string with $ for exact matches.'), true).'</td>'.'<td class="datos2">';
html_print_input_text('oid', $oid, '', 50, 255); html_print_input_text('oid', $oid, '', 50, 255);
echo '</td></tr>'; echo '</td></tr>';

View File

@ -140,8 +140,8 @@ if ($enterprise == ENTERPRISE_NOT_HOOK) {
?> ?>
<script> <script>
var open = "<?php echo $open; ?>"; var isopen = "<?php echo $open; ?>";
if(open){ if(isopen){
$(document).ready(function() { $(document).ready(function() {
$('body').append( "<div id='opacidad' style='position:fixed;background:black;opacity:0.6;z-index:1'></div>" ); $('body').append( "<div id='opacidad' style='position:fixed;background:black;opacity:0.6;z-index:1'></div>" );
jQuery.post ("ajax.php", jQuery.post ("ajax.php",
@ -150,6 +150,7 @@ if(open){
"message":"infomodal"}, "message":"infomodal"},
function (data, status) { function (data, status) {
$("#alert_messages").hide () $("#alert_messages").hide ()
.css ("opacity", 1)
.empty () .empty ()
.append (data) .append (data)
.show (); .show ();

View File

@ -90,9 +90,9 @@ if ($get_response_params) {
} }
if ($get_response_target) { if ($get_response_target) {
$response_id = get_parameter('response_id'); $response_id = (int) get_parameter('response_id');
$event_id = get_parameter('event_id'); $event_id = (int) get_parameter('event_id');
$server_id = get_parameter('server_id', 0); $server_id = (int) get_parameter('server_id');
$event_response = db_get_row('tevent_response', 'id', $response_id); $event_response = db_get_row('tevent_response', 'id', $response_id);
@ -101,7 +101,6 @@ if ($get_response_target) {
} }
echo events_get_response_target($event_id, $response_id, $server_id); echo events_get_response_target($event_id, $response_id, $server_id);
return; return;
} }

View File

@ -198,12 +198,7 @@ if ($get_metaconsole_hash_data) {
$console_password = $auth_serialized['console_password']; $console_password = $auth_serialized['console_password'];
} }
$pwd = $auth_token; $url_hash = metaconsole_get_servers_url_hash($server);
// Create HASH login info
$user = str_rot13($config['id_user']);
$hashdata = $user.$pwd;
$hashdata = md5($hashdata);
$url_hash = "&loginhash=auto&loginhash_data=$hashdata&loginhash_user=$user";
echo $url_hash; echo $url_hash;
return; return;

View File

@ -88,16 +88,13 @@ if (file_exists('languages/'.$user_language.'.mo')) {
$params['menu'] = false; $params['menu'] = false;
if ((!isset($params['width']) || ($params['width'] <= 0))) { if ((!isset($params['width']) || ($params['width'] <= 0))) {
$params['width'] = 1048; $params['width'] = 650;
} }
$params_combined = json_decode($_REQUEST['data_combined'], true); $params_combined = json_decode($_REQUEST['data_combined'], true);
$module_list = json_decode($_REQUEST['data_module_list'], true); $module_list = json_decode($_REQUEST['data_module_list'], true);
$type_graph_pdf = $_REQUEST['type_graph_pdf']; $type_graph_pdf = $_REQUEST['type_graph_pdf'];
$aux_font_size = $config['font_size'];
$config['font_size'] = ($config['font_size'] + 3);
echo '<div>'; echo '<div>';
switch ($type_graph_pdf) { switch ($type_graph_pdf) {
case 'combined': case 'combined':
@ -216,7 +213,6 @@ if (file_exists('languages/'.$user_language.'.mo')) {
echo '</div>'; echo '</div>';
$config['font_size'] = $aux_font_size;
?> ?>
<script type="text/javascript"> <script type="text/javascript">

View File

@ -20,7 +20,7 @@
/** /**
* Pandora build version and version * Pandora build version and version
*/ */
$build_version = 'PC190207'; $build_version = 'PC190225';
$pandora_version = 'v7.0NG.731'; $pandora_version = 'v7.0NG.731';
// Do not overwrite default timezone set if defined. // Do not overwrite default timezone set if defined.

View File

@ -1754,7 +1754,8 @@ function get_snmpwalk(
$quick_print=0, $quick_print=0,
$base_oid='', $base_oid='',
$snmp_port='', $snmp_port='',
$server_to_exec=0 $server_to_exec=0,
$extra_arguments=''
) { ) {
global $config; global $config;
@ -1805,15 +1806,15 @@ function get_snmpwalk(
case '3': case '3':
switch ($snmp3_security_level) { switch ($snmp3_security_level) {
case 'authNoPriv': case 'authNoPriv':
$command_str = $snmpwalk_bin.' -m ALL -Oa -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir; $command_str = $snmpwalk_bin.' -m ALL -Oa '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
break; break;
case 'noAuthNoPriv': case 'noAuthNoPriv':
$command_str = $snmpwalk_bin.' -m ALL -Oa -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -l '.escapeshellarg($snmp3_security_level).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir; $command_str = $snmpwalk_bin.' -m ALL -Oa '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -l '.escapeshellarg($snmp3_security_level).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
break; break;
default: default:
$command_str = $snmpwalk_bin.' -m ALL -Oa -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' -x '.escapeshellarg($snmp3_privacy_method).' -X '.escapeshellarg($snmp3_privacy_pass).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir; $command_str = $snmpwalk_bin.' -m ALL -Oa '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' -x '.escapeshellarg($snmp3_privacy_method).' -X '.escapeshellarg($snmp3_privacy_pass).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
break; break;
} }
break; break;
@ -1822,7 +1823,7 @@ function get_snmpwalk(
case '2c': case '2c':
case '1': case '1':
default: default:
$command_str = $snmpwalk_bin.' -m ALL -Oa -v '.escapeshellarg($snmp_version).' -c '.escapeshellarg(io_safe_output($snmp_community)).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir; $command_str = $snmpwalk_bin.' -m ALL '.$extra_arguments.' -Oa -v '.escapeshellarg($snmp_version).' -c '.escapeshellarg(io_safe_output($snmp_community)).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
break; break;
} }

View File

@ -949,11 +949,11 @@ function agents_get_group_agents(
$filter = []; $filter = [];
// check available groups for target user only if asking for 'All' group // Check available groups for target user only if asking for 'All' group.
if (!$noACL && $id_group == 0) { if (!$noACL && $id_group == 0) {
$id_group = $id_group == 0 ? array_keys(users_get_groups(false, 'AR', false)) : groups_safe_acl($config['id_user'], $id_group, 'AR'); $id_group = ($id_group == 0) ? array_keys(users_get_groups(false, 'AR', false)) : groups_safe_acl($config['id_user'], $id_group, 'AR');
if (empty($id_group)) { if (empty($id_group)) {
// An empty array means the user doesn't have access // An empty array means the user doesn't have access.
return []; return [];
} }
} }
@ -970,7 +970,7 @@ function agents_get_group_agents(
$id_group = groups_get_id_recursive($id_group, true); $id_group = groups_get_id_recursive($id_group, true);
} }
// check available groups for target user only if asking for 'All' group // Check available groups for target user only if asking for 'All' group.
if (!$noACL && $id_group == 0) { if (!$noACL && $id_group == 0) {
$id_group = array_keys( $id_group = array_keys(
users_get_groups(false, 'AR', true, false, (array) $id_group) users_get_groups(false, 'AR', true, false, (array) $id_group)
@ -978,7 +978,7 @@ function agents_get_group_agents(
} }
} }
// Search for primary and secondary groups // Search for primary and secondary groups.
if (!empty($id_group)) { if (!empty($id_group)) {
$filter[] = '('.db_format_array_where_clause_sql( $filter[] = '('.db_format_array_where_clause_sql(
[ [
@ -990,7 +990,7 @@ function agents_get_group_agents(
} }
if ($search === true) { if ($search === true) {
// No added search. Show both disabled and non-disabled // No added search. Show both disabled and non-disabled.
} else if (is_array($search)) { } else if (is_array($search)) {
if (!$search['all_agents']) { if (!$search['all_agents']) {
$filter['disabled'] = 0; $filter['disabled'] = 0;
@ -3102,7 +3102,7 @@ function select_agents_for_module_group(
'AND', 'AND',
'tagente_modulo', 'tagente_modulo',
true, true,
[], $filter['tags'],
false false
); );
$sql_tags_inner = 'INNER JOIN ttag_module $sql_tags_inner = 'INNER JOIN ttag_module

View File

@ -1700,6 +1700,43 @@ function alerts_get_effective_alert_actions($id_agent_module)
} }
/**
* Validate alerts for the given module.
*
* @param int agent_module_id ID of the module
*/
function alerts_validate_alert_module($agent_module_id)
{
db_process_sql(
sprintf(
'UPDATE talert_template_modules
SET times_fired=0, internal_counter=0
WHERE id_agent_module = %d',
$agent_module_id
)
);
}
/**
* Validate alerts for the given agent.
*
* @param int agent_id ID of the agent
*/
function alerts_validate_alert_agent($agent_id)
{
db_process_sql(
sprintf(
'UPDATE talert_template_modules tm
INNER JOIN tagente_modulo am ON tm.id_agent_module = am.id_agente_modulo
SET tm.times_fired=0, tm.internal_counter=0
WHERE am.id_agente = %d',
$agent_id
)
);
}
/** /**
* Validates an alert id or an array of alert id's. * Validates an alert id or an array of alert id's.
* *

View File

@ -363,23 +363,18 @@ function api_get_test_event_replication_db()
// -------------------------DEFINED OPERATIONS FUNCTIONS----------------- // -------------------------DEFINED OPERATIONS FUNCTIONS-----------------
function api_get_groups($thrash1, $thrash2, $other, $returnType, $user_in_db) function api_get_groups($thrash1, $thrash2, $other, $returnType, $user_in_db)
{ {
if (defined('METACONSOLE')) { $returnAllGroup = true;
return; $returnAllColumns = false;
if (isset($other['data'][1])) {
$returnAllGroup = ( $other['data'][1] == '1' ? true : false);
} }
if ($other['type'] == 'string') { if (isset($other['data'][2])) {
if ($other['data'] != '') { $returnAllColumns = ( $other['data'][2] == '1' ? true : false);
returnError('error_parameter', 'Error in the parameters.');
return;
} else {
// Default values
$separator = ';';
}
} else if ($other['type'] == 'array') {
$separator = $other['data'][0];
} }
$groups = users_get_groups($user_in_db, 'IR'); $groups = users_get_groups($user_in_db, 'IR', $returnAllGroup, $returnAllColumns);
$data_groups = []; $data_groups = [];
foreach ($groups as $id => $group) { foreach ($groups as $id => $group) {
@ -389,6 +384,13 @@ function api_get_groups($thrash1, $thrash2, $other, $returnType, $user_in_db)
]; ];
} }
if (!isset($other['data'][0])) {
$separator = ';';
// by default
} else {
$separator = $other['data'][0];
}
$data['type'] = 'array'; $data['type'] = 'array';
$data['data'] = $data_groups; $data['data'] = $data_groups;
@ -472,11 +474,12 @@ function api_get_module_last_value($idAgentModule, $trash1, $other=';', $returnT
DB column mapping table used by tree_agents (and get module_properties) DB column mapping table used by tree_agents (and get module_properties)
*/ */
// agent related field mappings (output field => column designation for 'tagente') /*
* Agent related field mappings (output field => column designation for 'tagente').
* agent_id is not in this list (because it is mandatory).
* agent_id_group is not in this list.
*/
$agent_field_column_mapping = [ $agent_field_column_mapping = [
/*
agent_id is not in this list (because it is mandatory) */
// agent_id_group is not in this list
'agent_name' => 'nombre as agent_name', 'agent_name' => 'nombre as agent_name',
'agent_direction' => 'direccion as agent_direction', 'agent_direction' => 'direccion as agent_direction',
'agent_comentary' => 'comentarios as agent_comentary', 'agent_comentary' => 'comentarios as agent_comentary',
@ -496,8 +499,8 @@ $agent_field_column_mapping = [
]; ];
// module related field mappings 1/2 (output field => column for 'tagente_modulo') // module related field mappings 1/2 (output field => column for 'tagente_modulo')
// module_id_agent_modulo is not in this list
$module_field_column_mampping = [ $module_field_column_mampping = [
// module_id_agent_modulo is not in this list
'module_id_agent' => 'id_agente as module_id_agent', 'module_id_agent' => 'id_agente as module_id_agent',
'module_id_module_type' => 'id_tipo_modulo as module_id_module_type', 'module_id_module_type' => 'id_tipo_modulo as module_id_module_type',
'module_description' => 'descripcion as module_description', 'module_description' => 'descripcion as module_description',
@ -541,8 +544,8 @@ $module_field_column_mampping = [
]; ];
// module related field mappings 2/2 (output field => column for 'tagente_estado') // module related field mappings 2/2 (output field => column for 'tagente_estado')
// module_id_agent_modulo is not in this list
$estado_fields_to_columns_mapping = [ $estado_fields_to_columns_mapping = [
// module_id_agent_modulo is not in this list
'module_id_agent_state' => 'id_agente_estado as module_id_agent_state', 'module_id_agent_state' => 'id_agente_estado as module_id_agent_state',
'module_data' => 'datos as module_data', 'module_data' => 'datos as module_data',
'module_timestamp' => 'timestamp as module_timestamp', 'module_timestamp' => 'timestamp as module_timestamp',
@ -6172,17 +6175,29 @@ function api_set_planned_downtimes_deleted($id, $thrash1, $thrash2, $returnType)
/** /**
* Create a new planned downtime. * Create a new planned downtime.
* e.g.: api.php?op=set&op2=planned_downtimes_created&id=pepito&other=testing|08-22-2015|08-31-2015|0|1|1|1|1|1|1|1|17:06:00|19:06:00|1|31|quiet|periodically|weekly&other_mode=url_encode_separator_|
* *
* @param $id name of planned downtime. * @param $id name of planned downtime.
* @param $thrash1 Don't use. * @param $thrash1 Don't use.
* @param array $other it's array, $other as param is <description>;<date_from>;<date_to>;<id_group>;<monday>; * @param array $other Contains the following elements (in order):
* <tuesday>;<wednesday>;<thursday>;<friday>;<saturday>;<sunday>;<periodically_time_from>;<periodically_time_to>; * <description>
* <periodically_day_from>;<periodically_day_to>;<type_downtime>;<type_execution>;<type_periodicity>; in this order * <date_from>
* and separator char (after text ; ) and separator (pass in param othermode as othermode=url_encode_separator_<separator>) * <date_to>
* example: * <id_group>
* * <monday>
* api.php?op=set&op2=planned_downtimes_created&id=pepito&other=testing|08-22-2015|08-31-2015|0|1|1|1|1|1|1|1|17:06:00|19:06:00|1|31|quiet|periodically|weekly&other_mode=url_encode_separator_| * <tuesday>
* * <wednesday>
* <thursday>
* <friday>
* <saturday>
* <sunday>
* <periodically_time_from>
* <periodically_time_to>
* <periodically_day_from>
* <periodically_day_to>
* <type_downtime>
* <type_execution>
* <type_periodicity>
* @param $thrash3 Don't use. * @param $thrash3 Don't use.
*/ */
@ -6246,20 +6261,16 @@ function api_set_planned_downtimes_created($id, $thrash1, $other, $thrash3)
/** /**
* Add new items to planned Downtime. * Add new items to planned Downtime.
* e.g.: api.php?op=set&op2=planned_downtimes_additem&id=123&other=1;2;3;4|Status;Unkown_modules&other_mode=url_encode_separator_|
* *
* @param $id id of planned downtime. * @param $id id of planned downtime.
* @param $thrash1 Don't use. * @param $thrash1 Don't use.
* @param array $other it's array, $other as param is <id_agent1;id_agent2;id_agent3;....id_agentn;>; * @param array $other
* <name_module1;name_module2;name_module3;......name_modulen;> in this order * The first index contains a list of agent Ids.
* and separator char (after text ; ) and separator (pass in param othermode as othermode=url_encode_separator_<separator>) * The second index contains a list of module names.
* example: * The list separator is the character ';'.
*
* api.php?op=set&op2=planned_downtimes_additem&id=123&other=1;2;3;4|Status;Unkown_modules&other_mode=url_encode_separator_|
*
* @param $thrash3 Don't use. * @param $thrash3 Don't use.
*/ */
function api_set_planned_downtimes_additem($id, $thrash1, $other, $thrash3) function api_set_planned_downtimes_additem($id, $thrash1, $other, $thrash3)
{ {
if (defined('METACONSOLE')) { if (defined('METACONSOLE')) {
@ -14609,3 +14620,67 @@ function api_get_users($thrash1, $thrash2, $other, $returnType)
} }
} }
/**
* Resets module counts and alert counts in the agents
*
* @param $id id of the agent you want to synchronize. Add "All" to synchronize all agents
* @param $trash1
* @param $trash2
* @param $trash3
*
* Example:
* api.php?op=set&op2=reset_agent_counts&apipass=1234&user=admin&pass=pandora&id=All
*/
function api_set_reset_agent_counts($id, $thrash1, $thrash2, $thrash3)
{
global $config;
if (!check_acl($config['id_user'], 0, 'AW')) {
returnError('forbidden', 'string');
return;
}
if ($id == '' || !$id) {
returnError('error_parameter', __('Error. Agent cannot be left blank.'));
return;
}
if ($id != 'All') {
$agent = db_get_row_filter('tagente', ['id_agente' => $id]);
if (empty($agent)) {
returnError('error_agent', __('This agent does not exist.'));
return;
} else {
$return = db_process_sql_update(
'tagente',
[
'update_module_count' => 1,
'update_alert_count' => 1,
],
['id_agente' => $id]
);
}
} else {
$return = db_process_sql_update(
'tagente',
[
'update_module_count' => 1,
'update_alert_count' => 1,
]
);
}
$data = __('Successfully updated module/alert count in id agent %d.', $id);
if ($id == 'All') {
$data = __('Successfully updated module/alert count in all agents');
}
if ($return === false) {
returnError('error_reset_agent_counts', 'Could not be updated module/alert counts in id agent %d.', $id);
} else {
returnData('string', ['type' => 'string', 'data' => $data]);
}
}

View File

@ -165,7 +165,7 @@ function config_update_config()
$error_update[] = __('Automatic check for updates'); $error_update[] = __('Automatic check for updates');
} }
if (!config_update_value('cert_path', (bool) get_parameter('cert_path'))) { if (!config_update_value('cert_path', get_parameter('cert_path'))) {
$error_update[] = __('SSL cert path'); $error_update[] = __('SSL cert path');
} }
@ -294,6 +294,10 @@ function config_update_config()
if (!config_update_value('auditdir', get_parameter('auditdir'))) { if (!config_update_value('auditdir', get_parameter('auditdir'))) {
$error_update[] = __('Audit log directory'); $error_update[] = __('Audit log directory');
} }
if (!config_update_value('unique_ip', get_parameter('unique_ip'))) {
$error_update[] = __('unique_ip');
}
break; break;
case 'enterprise': case 'enterprise':
@ -735,6 +739,10 @@ function config_update_config()
if (!config_update_value('max_graph_container', get_parameter('max_graph_container'))) { if (!config_update_value('max_graph_container', get_parameter('max_graph_container'))) {
$error_update[] = __('Graph container - Max. Items'); $error_update[] = __('Graph container - Max. Items');
} }
if (!config_update_value('max_execution_event_response', get_parameter('max_execution_event_response'))) {
$error_update[] = __('Max. execution event response');
}
break; break;
case 'vis': case 'vis':
@ -1517,6 +1525,10 @@ function config_process_config()
config_update_value('max_graph_container', 10); config_update_value('max_graph_container', 10);
} }
if (!isset($config['max_execution_event_response'])) {
config_update_value('max_execution_event_response', 10);
}
if (!isset($config['max_macro_fields'])) { if (!isset($config['max_macro_fields'])) {
config_update_value('max_macro_fields', 10); config_update_value('max_macro_fields', 10);
} }
@ -1661,6 +1673,10 @@ function config_process_config()
config_update_value('limit_parameters_massive', (ini_get('max_input_vars') / 2)); config_update_value('limit_parameters_massive', (ini_get('max_input_vars') / 2));
} }
if (!isset($config['unique_ip'])) {
config_update_value('unique_ip', 0);
}
/* /*
*Parse the ACL IP list for access API *Parse the ACL IP list for access API
*/ */
@ -2851,7 +2867,7 @@ function config_check()
); );
} }
$result_ejecution = exec($config['phantomjs_bin'].'/phantomjs --version'); $result_ejecution = exec('"'.io_safe_output($config['phantomjs_bin']).'/phantomjs" --version');
if (!isset($result_ejecution) || $result_ejecution == '') { if (!isset($result_ejecution) || $result_ejecution == '') {
if ($config['language'] == 'es') { if ($config['language'] == 'es') {
set_pandora_error_for_header( set_pandora_error_for_header(

View File

@ -37,7 +37,7 @@ function events_get_all_fields()
$columns['estado'] = __('Status'); $columns['estado'] = __('Status');
$columns['timestamp'] = __('Timestamp'); $columns['timestamp'] = __('Timestamp');
$columns['event_type'] = __('Event type'); $columns['event_type'] = __('Event type');
$columns['id_agentmodule'] = __('Agent module'); $columns['id_agentmodule'] = __('Module name');
$columns['id_alert_am'] = __('Alert'); $columns['id_alert_am'] = __('Alert');
$columns['criticity'] = __('Severity'); $columns['criticity'] = __('Severity');
$columns['user_comment'] = __('Comment'); $columns['user_comment'] = __('Comment');
@ -166,12 +166,10 @@ function events_get_events_grouped(
$groupby_extra = ''; $groupby_extra = '';
} }
switch ($config['dbtype']) {
case 'mysql':
db_process_sql('SET group_concat_max_len = 9999999'); db_process_sql('SET group_concat_max_len = 9999999');
$event_lj = events_get_secondary_groups_left_join($table); $event_lj = events_get_secondary_groups_left_join($table);
if ($total) { if ($total) {
$sql = "SELECT COUNT(*) FROM (SELECT * $sql = "SELECT COUNT(*) FROM (SELECT id_evento
FROM $table te $event_lj FROM $table te $event_lj
WHERE 1=1 ".$sql_post.' WHERE 1=1 ".$sql_post.'
GROUP BY estado, evento, id_agente, id_agentmodule'.$groupby_extra.') AS t'; GROUP BY estado, evento, id_agente, id_agentmodule'.$groupby_extra.') AS t';
@ -179,7 +177,7 @@ function events_get_events_grouped(
$sql = "SELECT *, MAX(id_evento) AS id_evento, $sql = "SELECT *, MAX(id_evento) AS id_evento,
GROUP_CONCAT(DISTINCT user_comment SEPARATOR '<br>') AS user_comment, GROUP_CONCAT(DISTINCT user_comment SEPARATOR '<br>') AS user_comment,
GROUP_CONCAT(DISTINCT id_evento SEPARATOR ',') AS similar_ids, GROUP_CONCAT(DISTINCT id_evento SEPARATOR ',') AS similar_ids,
COUNT(*) AS event_rep, MAX(utimestamp) AS timestamp_rep, COUNT(id_evento) AS event_rep, MAX(utimestamp) AS timestamp_rep,
MIN(utimestamp) AS timestamp_rep_min, MIN(utimestamp) AS timestamp_rep_min,
(SELECT owner_user FROM $table WHERE id_evento = MAX(te.id_evento)) owner_user, (SELECT owner_user FROM $table WHERE id_evento = MAX(te.id_evento)) owner_user,
(SELECT id_usuario FROM $table WHERE id_evento = MAX(te.id_evento)) id_usuario, (SELECT id_usuario FROM $table WHERE id_evento = MAX(te.id_evento)) id_usuario,
@ -193,66 +191,6 @@ function events_get_events_grouped(
$sql .= ' '.events_get_sql_order($sort_field, $order, 2); $sql .= ' '.events_get_sql_order($sort_field, $order, 2);
$sql .= ' LIMIT '.$offset.','.$pagination; $sql .= ' LIMIT '.$offset.','.$pagination;
} }
break;
case 'postgresql':
if ($total) {
$sql = "SELECT COUNT(*)
FROM $table te
WHERE 1=1 ".$sql_post.'
GROUP BY estado, evento, id_agentmodule, id_evento, id_agente, id_usuario, id_grupo, estado, timestamp, utimestamp, event_type, id_alert_am, criticity, user_comment, tags, source, id_extra'.$groupby_extra;
} else {
$sql = "SELECT *, MAX(id_evento) AS id_evento, array_to_string(array_agg(DISTINCT user_comment), '<br>') AS user_comment,
array_to_string(array_agg(DISTINCT id_evento), ',') AS similar_ids,
COUNT(*) AS event_rep, MAX(utimestamp) AS timestamp_rep,
MIN(utimestamp) AS timestamp_rep_min,
(SELECT owner_user FROM $table WHERE id_evento = MAX(te.id_evento)) owner_user,
(SELECT id_usuario FROM $table WHERE id_evento = MAX(te.id_evento)) id_usuario,
(SELECT id_agente FROM $table WHERE id_evento = MAX(te.id_evento)) id_agente,
(SELECT criticity FROM $table WHERE id_evento = MAX(te.id_evento)) AS criticity,
(SELECT ack_utimestamp FROM $table WHERE id_evento = MAX(te.id_evento)) AS ack_utimestamp
FROM $table te
WHERE 1=1 ".$sql_post.'
GROUP BY estado, evento, id_agentmodule, id_evento,
id_agente, id_usuario, id_grupo, estado,
timestamp, utimestamp, event_type, id_alert_am,
criticity, user_comment, tags, source, id_extra,
te.critical_instructions,
te.warning_instructions,
te.unknown_instructions,
te.owner_user,
te.ack_utimestamp,
te.custom_data '.$groupby_extra.'
ORDER BY timestamp_rep ASC LIMIT '.$pagination.' OFFSET '.$offset;
}
break;
case 'oracle':
if ($total) {
$sql = "SELECT COUNT(*)
FROM $table te
WHERE 1=1 $sql_post
GROUP BY estado, to_char(evento), id_agentmodule".$groupby_extra.') b ';
} else {
$set = [];
$set['limit'] = $pagination;
$set['offset'] = $offset;
$sql = "SELECT ta.*, tb.event_rep, tb.timestamp_rep, tb.timestamp_rep_min, tb.user_comments, tb.similar_ids
FROM $table ta
INNER JOIN (SELECT MAX(id_evento) AS id_evento, COUNT(id_evento) AS event_rep,
MAX(utimestamp) AS timestamp_rep, MIN(utimestamp) AS timestamp_rep_min,
TAB_TO_STRING(CAST(COLLECT(TO_CHAR(user_comment) ORDER BY id_evento ASC) AS t_varchar2_tab), '<br>') AS user_comments,
TAB_TO_STRING(CAST(COLLECT(CAST(id_evento AS VARCHAR2(4000)) ORDER BY id_evento ASC) AS t_varchar2_tab)) AS similar_ids
FROM $table te
WHERE 1=1 $sql_post
GROUP BY estado, to_char(evento), id_agentmodule$groupby_extra) tb
ON ta.id_evento = tb.id_evento
ORDER BY tb.timestamp_rep ASC";
$sql = oracle_recode_query($sql, $set);
}
break;
}
// Extract the events by filter (or not) from db // Extract the events by filter (or not) from db
$events = db_get_all_rows_sql($sql, $history_db); $events = db_get_all_rows_sql($sql, $history_db);
@ -260,16 +198,6 @@ function events_get_events_grouped(
if ($total) { if ($total) {
return reset($events[0]); return reset($events[0]);
} else { } else {
// Override the column 'user_comment' with the column 'user_comments' when oracle
if (!empty($events) && $config['dbtype'] == 'oracle') {
array_walk(
$events,
function (&$value, $key) {
set_if_defined($value['user_comment'], $value['user_comments']);
}
);
}
return $events; return $events;
} }
} }
@ -2161,27 +2089,34 @@ function events_page_responses($event, $childrens_ids=[])
} }
// Replace macros in the target of a response and return it /**
// If server_id > 0, is a metaconsole query * Replace macros in the target of a response and return it.
function events_get_response_target($event_id, $response_id, $server_id, $history=false) * If server_id > 0, it's a metaconsole query.
{ *
* @param integer $event_id Event identifier.
* @param integer $response_id Event response identifier.
* @param integer $server_id Node identifier (for metaconsole).
* @param boolean $history Use the history database or not.
*
* @return string The response text with the macros applied.
*/
function events_get_response_target(
int $event_id,
int $response_id,
int $server_id=0,
bool $history=false
) {
global $config; global $config;
$event_response = db_get_row('tevent_response', 'id', $response_id); // If server_id > 0, it's a metaconsole query.
$meta = $server_id > 0;
if ($server_id > 0) {
$meta = true;
} else {
$meta = false;
}
$event_table = events_get_events_table($meta, $history); $event_table = events_get_events_table($meta, $history);
$event = db_get_row($event_table, 'id_evento', $event_id); $event = db_get_row($event_table, 'id_evento', $event_id);
$event_response = db_get_row('tevent_response', 'id', $response_id);
$target = io_safe_output($event_response['target']); $target = io_safe_output($event_response['target']);
// Substitute each macro // Substitute each macro.
if (strpos($target, '_agent_address_') !== false) { if (strpos($target, '_agent_address_') !== false) {
if ($meta) { if ($meta) {
$agente_table_name = 'tmetaconsole_agent'; $agente_table_name = 'tmetaconsole_agent';
@ -2195,7 +2130,7 @@ function events_get_response_target($event_id, $response_id, $server_id, $histor
} }
$ip = db_get_value_filter('direccion', $agente_table_name, $filter); $ip = db_get_value_filter('direccion', $agente_table_name, $filter);
// If agent has not an ip, display N/A // If agent has not an IP, display N/A.
if ($ip === false) { if ($ip === false) {
$ip = __('N/A'); $ip = __('N/A');
} }
@ -2360,7 +2295,7 @@ function events_get_response_target($event_id, $response_id, $server_id, $histor
$target = str_replace('_group_custom_id_', $group_custom_id, $target); $target = str_replace('_group_custom_id_', $group_custom_id, $target);
} }
// Parse the event custom data // Parse the event custom data.
if (!empty($event['custom_data'])) { if (!empty($event['custom_data'])) {
$custom_data = json_decode(base64_decode($event['custom_data'])); $custom_data = json_decode(base64_decode($event['custom_data']));
foreach ($custom_data as $key => $value) { foreach ($custom_data as $key => $value) {
@ -2368,6 +2303,11 @@ function events_get_response_target($event_id, $response_id, $server_id, $histor
} }
} }
// This will replace the macro with the current logged user.
if (strpos($target, '_current_user_') !== false) {
$target = str_replace('_current_user_', $config['id_user'], $target);
}
return $target; return $target;
} }
@ -4871,6 +4811,10 @@ function events_get_sql_order($sort_field='timestamp', $sort='DESC', $group_rep=
*/ */
function events_get_secondary_groups_left_join($table) function events_get_secondary_groups_left_join($table)
{ {
if (users_is_admin()) {
return '';
}
if ($table == 'tevento') { if ($table == 'tevento') {
return 'LEFT JOIN tagent_secondary_group tasg ON te.id_agente = tasg.id_agent'; return 'LEFT JOIN tagent_secondary_group tasg ON te.id_agente = tasg.id_agent';
} }

View File

@ -126,6 +126,12 @@ if (isset($config['homedir_filemanager'])) {
$homedir_filemanager = $config['homedir']; $homedir_filemanager = $config['homedir'];
} }
$sec2 = get_parameter('sec2');
if ($sec2 == 'enterprise/godmode/agentes/collections') {
$homedir_filemanager .= '/attachment/collection/';
}
$upload_file_or_zip = (bool) get_parameter('upload_file_or_zip'); $upload_file_or_zip = (bool) get_parameter('upload_file_or_zip');
if ($upload_file_or_zip) { if ($upload_file_or_zip) {
@ -499,12 +505,6 @@ function filemanager_file_explorer(
$homedir_filemanager = $config['homedir']; $homedir_filemanager = $config['homedir'];
} }
unset($config['homedir_filemanager']);
config_update_value(
'homedir_filemanager',
$homedir_filemanager
);
$hack_metaconsole = ''; $hack_metaconsole = '';
if (defined('METACONSOLE')) { if (defined('METACONSOLE')) {
$hack_metaconsole = '../../'; $hack_metaconsole = '../../';
@ -938,4 +938,3 @@ function filemanager_list_dir($dirpath)
return array_merge($dirs, $files); return array_merge($dirs, $files);
} }

View File

@ -245,7 +245,9 @@ function grafico_modulo_sparse_data(
} }
} }
if ($array_data === false || (!$params['graph_combined'] && !isset($array_data['sum1']['data'][0][1]))) { if ($array_data === false || (!$params['graph_combined']
&& !isset($array_data['sum1']['data'][0][1]) && !$params['baseline'])
) {
return false; return false;
} }
@ -4918,21 +4920,19 @@ function get_baseline_data($agent_module_id, $date_array, $data_module_graph, $p
$period = $date_array['period']; $period = $date_array['period'];
$date = $date_array['final_date']; $date = $date_array['final_date'];
$array_data = []; $array_data = [];
for ($i = 0; $i < 4; $i++) { for ($i = 0; $i < 4; $i++) {
$date_array = []; $date_array = [];
$date_array['period'] = $period; $date_array['period'] = $period;
$date_array['final_date'] = ($date - $period * $i); $date_array['final_date'] = ($date - ($period * $i));
$date_array['start_date'] = ($date - $period * ($i + 1)); $date_array['start_date'] = ($date - ($period * ($i + 1)));
$array_data[] = grafico_modulo_sparse_data(
$data = grafico_modulo_sparse_data(
$agent_module_id, $agent_module_id,
$date_array, $date_array,
$data_module_graph, $data_module_graph,
$params, $params,
$i $i
); );
$array_data[] = $data;
} }
$result = []; $result = [];

View File

@ -2257,7 +2257,7 @@ function html_print_checkbox_extended($name, $value, $checked, $disabled, $scrip
if ($id == '') { if ($id == '') {
$output .= ' id="checkbox-'.$id_aux.'"'; $output .= ' id="checkbox-'.$id_aux.'"';
} else { } else {
$output .= ' '.$id.'"'; $output .= ' id='.$id;
} }
if ($script != '') { if ($script != '') {
@ -2306,6 +2306,89 @@ function html_print_checkbox($name, $value, $checked=false, $return=false, $disa
} }
/**
* Render a checkbox button input toogle switch type. Extended version, use html_print_checkbox_toogle_switch() to simplify.
*
* @param string Input name.
* @param string Input value.
* @param string Set the button to be marked (optional, unmarked by default).
* @param bool Disable the button (optional, button enabled by default).
* @param string Script to execute when onClick event is triggered (optional).
* @param string Optional HTML attributes. It's a free string which will be
* @param bool Whether to return an output string or echo now (optional, echo by default).
*
* @return string HTML code if return parameter is true.
*/
function html_print_checkbox_toogle_switch_extended($name, $value, $checked, $disabled, $script, $attributes, $return=false, $id='')
{
static $idcounter = [];
// If duplicate names exist, it will start numbering. Otherwise it won't
if (isset($idcounter[$name])) {
$idcounter[$name]++;
} else {
$idcounter[$name] = 0;
}
$id_aux = preg_replace('/[^a-z0-9\:\;\-\_]/i', '', $name.($idcounter[$name] ? $idcounter[$name] : ''));
$output = '<label class="toogle_switch"><input name="'.$name.'" type="checkbox" value="'.$value.'" '.($checked ? 'checked="checked"' : '');
if ($id == '') {
$output .= ' id="checkbox-'.$id_aux.'"';
} else {
$output .= ' '.$id.'"';
}
if ($script != '') {
$output .= ' onclick="'.$script.'"';
}
if ($disabled) {
$output .= ' disabled="disabled"';
}
$output .= ' '.$attributes;
$output .= ' /><span class="slider"></span></label>';
$output .= "\n";
if ($return === false) {
echo $output;
}
return $output;
}
/**
* Render a checkbox button input toogle switch type.
*
* @param string Input name.
* @param string Input value.
* @param string Set the button to be marked (optional, unmarked by default).
* @param bool Whether to return an output string or echo now (optional, echo by default).
* @param boolean $disabled Disable the button (optional, button enabled by default).
*
* @return string HTML code if return parameter is true.
*/
function html_print_checkbox_toogle_switch($name, $value, $checked=false, $return=false, $disabled=false, $script='', $disabled_hidden=false)
{
$output = html_print_checkbox_toogle_switch_extended($name, $value, (bool) $checked, $disabled, $script, '', true);
if (!$disabled_hidden) {
$output .= html_print_input_hidden($name.'_sent', 1, true);
}
if ($return === false) {
echo $output;
}
return $output;
}
/** /**
* Prints an image HTML element. * Prints an image HTML element.
* *
@ -2990,4 +3073,3 @@ function html_print_csrf_error()
); );
return true; return true;
} }

View File

@ -541,7 +541,7 @@ function io_input_password($password)
global $config; global $config;
enterprise_include_once('include/functions_crypto.php'); enterprise_include_once('include/functions_crypto.php');
$ciphertext = enterprise_hook('openssl_encrypt_decrypt', ['encrypt', $password]); $ciphertext = enterprise_hook('openssl_encrypt_decrypt', ['encrypt', io_safe_output($password)]);
if ($ciphertext === ENTERPRISE_NOT_HOOK) { if ($ciphertext === ENTERPRISE_NOT_HOOK) {
return $password; return $password;
} }
@ -563,7 +563,7 @@ function io_output_password($password)
global $config; global $config;
enterprise_include_once('include/functions_crypto.php'); enterprise_include_once('include/functions_crypto.php');
$plaintext = enterprise_hook('openssl_encrypt_decrypt', ['decrypt', $password]); $plaintext = enterprise_hook('openssl_encrypt_decrypt', ['decrypt', io_safe_output($password)]);
if ($plaintext === ENTERPRISE_NOT_HOOK) { if ($plaintext === ENTERPRISE_NOT_HOOK) {
return $password; return $password;
} }

View File

@ -372,7 +372,7 @@ function menu_print_menu(&$menu)
} }
// Print out the first level // Print out the first level
$output .= '<li title="'.ucwords(str_replace(['oper-', 'god-'], '', $id)).'" class="'.implode(' ', $classes).' '.$seleccionado.'" id="icon_'.$id.'">'; $output .= '<li title="'.$main['text'].'" class="'.implode(' ', $classes).' '.$seleccionado.'" id="icon_'.$id.'">';
// onclick="location.href=\'index.php?sec='.$mainsec.'&amp;sec2='.$main["sec2"].($main["refr"] ? '&amp;refr='.$main["refr"] : '').'\'">'; // onclick="location.href=\'index.php?sec='.$mainsec.'&amp;sec2='.$main["sec2"].($main["refr"] ? '&amp;refr='.$main["refr"] : '').'\'">';
$length = strlen(__($main['text'])); $length = strlen(__($main['text']));
$padding_top = ( $length >= 18) ? 6 : 12; $padding_top = ( $length >= 18) ? 6 : 12;

View File

@ -329,6 +329,11 @@ function modules_change_disabled($id_agent_module, $new_value=1)
continue; continue;
} }
// Validate alerts for disabled modules.
if ($new_value == 1) {
alerts_validate_alert_module($id_module);
}
$id_agent_changed[] = modules_get_agentmodule_agent($id_module); $id_agent_changed[] = modules_get_agentmodule_agent($id_module);
$id_agent_module_changed[] = $id_module; $id_agent_module_changed[] = $id_module;
} }

View File

@ -25,7 +25,7 @@
require_once 'functions_agents.php'; require_once 'functions_agents.php';
require_once $config['homedir'].'/include/functions_modules.php'; require_once $config['homedir'].'/include/functions_modules.php';
require_once $config['homedir'].'/include/functions_groups.php'; require_once $config['homedir'].'/include/functions_groups.php';
ui_require_css_file('cluetip','include/styles/js/'); ui_require_css_file('cluetip', 'include/styles/js/');
// Check if a node descends from a given node // Check if a node descends from a given node

View File

@ -725,8 +725,6 @@ function planned_downtimes_created($values)
$check_group = (bool) db_get_value('id_grupo', 'tgrupo', 'id_grupo', $values['id_group']); $check_group = (bool) db_get_value('id_grupo', 'tgrupo', 'id_grupo', $values['id_group']);
$check = (bool) db_get_value('name', 'tplanned_downtime', 'name', $values['name']); $check = (bool) db_get_value('name', 'tplanned_downtime', 'name', $values['name']);
$datetime_from = strtotime($values['once_date_from'].' '.$values['once_time_from']);
$datetime_to = strtotime($values['once_date_to'].' '.$values['once_time_to']);
$now = time(); $now = time();
$result = false; $result = false;
@ -735,16 +733,16 @@ function planned_downtimes_created($values)
'return' => false, 'return' => false,
'message' => __('Not created. Error inserting data. Start time must be higher than the current time'), 'message' => __('Not created. Error inserting data. Start time must be higher than the current time'),
]; ];
} else if ($values['type_execution'] == 'once' && !$config['past_planned_downtimes'] && $values['date_to'] <= $now) {
return [
'return' => false,
'message' => __('Not created. Error inserting data').'. '.__('The end date must be higher than the current time'),
];
} else if ($values['type_execution'] == 'once' && $values['date_from'] >= $values['date_to']) { } else if ($values['type_execution'] == 'once' && $values['date_from'] >= $values['date_to']) {
return [ return [
'return' => false, 'return' => false,
'message' => __('Not created. Error inserting data').'. '.__('The end date must be higher than the start date'), 'message' => __('Not created. Error inserting data').'. '.__('The end date must be higher than the start date'),
]; ];
} else if ($values['type_execution'] == 'once' && $values['date_to'] <= $now) {
return [
'return' => false,
'message' => __('Not created. Error inserting data').'. '.__('The end date must be higher than the current time'),
];
} else if ($values['type_execution'] == 'periodically' } else if ($values['type_execution'] == 'periodically'
&& (($values['type_periodicity'] == 'weekly' && $values['periodically_time_from'] >= $values['periodically_time_to']) && (($values['type_periodicity'] == 'weekly' && $values['periodically_time_from'] >= $values['periodically_time_to'])
|| ($values['type_periodicity'] == 'monthly' && $values['periodically_day_from'] == $values['periodically_day_to'] && $values['periodically_time_from'] >= $values['periodically_time_to'])) || ($values['type_periodicity'] == 'monthly' && $values['periodically_day_from'] == $values['periodically_day_to'] && $values['periodically_time_from'] >= $values['periodically_time_to']))

View File

@ -142,7 +142,6 @@ function reporting_make_reporting_data(
enterprise_include_once('include/functions_metaconsole.php'); enterprise_include_once('include/functions_metaconsole.php');
$return = []; $return = [];
if (!empty($report)) { if (!empty($report)) {
$contents = $report['contents']; $contents = $report['contents'];
} else { } else {
@ -261,7 +260,7 @@ function reporting_make_reporting_data(
} }
if (isset($content['style']['name_label'])) { if (isset($content['style']['name_label'])) {
// Add macros name // Add macros name.
$items_label = []; $items_label = [];
$items_label['type'] = $content['type']; $items_label['type'] = $content['type'];
$items_label['id_agent'] = $content['id_agent']; $items_label['id_agent'] = $content['id_agent'];
@ -272,11 +271,10 @@ function reporting_make_reporting_data(
$metaconsole_on = is_metaconsole(); $metaconsole_on = is_metaconsole();
$server_name = $content['server_name']; $server_name = $content['server_name'];
// Metaconsole connection // Metaconsole connection.
if ($metaconsole_on && $server_name != '') { if ($metaconsole_on && $server_name != '') {
$connection = metaconsole_get_connection($server_name); $connection = metaconsole_get_connection($server_name);
if (!metaconsole_load_external_db($connection)) { if (!metaconsole_load_external_db($connection)) {
// ui_print_error_message ("Error connecting to ".$server_name);
continue; continue;
} }
} }
@ -889,7 +887,6 @@ function reporting_SLA(
if ($metaconsole_on && $server_name != '') { if ($metaconsole_on && $server_name != '') {
$connection = metaconsole_get_connection($server_name); $connection = metaconsole_get_connection($server_name);
if (!metaconsole_load_external_db($connection)) { if (!metaconsole_load_external_db($connection)) {
// ui_print_error_message ("Error connecting to ".$server_name);
continue; continue;
} }
} }
@ -898,7 +895,7 @@ function reporting_SLA(
|| modules_is_not_init($sla['id_agent_module']) || modules_is_not_init($sla['id_agent_module'])
) { ) {
if ($metaconsole_on) { if ($metaconsole_on) {
// Restore db connection // Restore db connection.
metaconsole_restore_db(); metaconsole_restore_db();
} }
@ -1183,12 +1180,11 @@ function reporting_SLA(
} }
} }
// SLA items sorted descending ()
if ($content['top_n'] == 2) { if ($content['top_n'] == 2) {
// SLA items sorted descending ()
arsort($return['data']['']); arsort($return['data']['']);
} } else if ($content['top_n'] == 1) {
// SLA items sorted ascending // SLA items sorted ascending
else if ($content['top_n'] == 1) {
asort($sla_showed_values); asort($sla_showed_values);
} }
@ -6724,7 +6720,7 @@ function reporting_general($report, $content)
'id_agente_modulo', 'id_agente_modulo',
$row['id_agent_module'] $row['id_agent_module']
); );
$id_module_type = db_get_value('id_tipo_modulo', 'tagente_modulo', 'nombre', $mod_name);
if ($content['period'] == 0) { if ($content['period'] == 0) {
$data_res[$index] = modules_get_last_value($row['id_agent_module']); $data_res[$index] = modules_get_last_value($row['id_agent_module']);
} else { } else {
@ -6771,10 +6767,24 @@ function reporting_general($report, $content)
$agent_name[$index] = $ag_name; $agent_name[$index] = $ag_name;
$module_name[$index] = $mod_name; $module_name[$index] = $mod_name;
$units[$index] = $unit; $units[$index] = $unit;
$id_module_types[$index] = $id_module_type;
$operations[$index] = $row['operation']; $operations[$index] = $row['operation'];
break; break;
case REPORT_GENERAL_GROUP_BY_AGENT: case REPORT_GENERAL_GROUP_BY_AGENT:
$id_module_types[$index] = $id_module_type;
if ($id_module_types[$index] == 2 || $id_module_types[$index] == 6 || $id_module_types[$index] == 9 || $id_module_types[$index] == 18) {
$data_res[$index] = round($data_res[$index], 0, PHP_ROUND_HALF_DOWN);
}
if ($id_module_types[$index] == 2 || $id_module_types[$index] == 6 || $id_module_types[$index] == 9 || $id_module_types[$index] == 18) {
if ($data_res[$index] == 1) {
$data_res[$index] = 'Up';
} else if ($data_res[$index] == 0) {
$data_res[$index] = 'Down';
}
}
if ($data_res[$index] === false) { if ($data_res[$index] === false) {
$return['data'][$ag_name][$mod_name] = null; $return['data'][$ag_name][$mod_name] = null;
} else { } else {
@ -6896,7 +6906,7 @@ function reporting_general($report, $content)
$data['module'] = $module_name[$i]; $data['module'] = $module_name[$i];
$data['id_agent_module'] = $id_agent_module[$i]; $data['id_agent_module'] = $id_agent_module[$i];
$data['id_agent'] = agents_get_agent_id_by_module_id($id_agent_module[$i]); $data['id_agent'] = agents_get_agent_id_by_module_id($id_agent_module[$i]);
$data['id_module_type'] = $id_module_types[$i];
$data['operator'] = ''; $data['operator'] = '';
if ($content['period'] != 0) { if ($content['period'] != 0) {
switch ($operations[$i]) { switch ($operations[$i]) {
@ -11322,3 +11332,27 @@ function reporting_translate_sla_status_for_graph($status)
]; ];
return $sts[$status]; return $sts[$status];
} }
/**
* Print header to report pdf and add page break
*
* @param string $title Title of report.
* @param string $description Description of report.
*
* @return html Return table of header.
*/
function reporting_header_table_for_pdf(string $title='', string $description='')
{
$result_pdf .= '<pagebreak>';
$result_pdf .= '<table class="header_table databox">';
$result_pdf .= '<thead class="header_tr"><tr>';
$result_pdf .= '<th class="th_first" colspan="2">';
$result_pdf .= $title;
$result_pdf .= '</th><th style="font-size: 15px;" align="right">';
$result_pdf .= '</th></tr><tr><th colspan="3" class="th_description">';
$result_pdf .= $description;
$result_pdf .= '</th></tr></thead></table>';
return $result_pdf;
}

File diff suppressed because it is too large Load Diff

View File

@ -748,7 +748,7 @@ function tags_get_acl_tags(
$id_user = $config['id_user']; $id_user = $config['id_user'];
} }
if (is_user_admin($id_user)) { if (is_user_admin($id_user) && empty($childrens_ids)) {
switch ($return_mode) { switch ($return_mode) {
case 'data': case 'data':
return []; return [];
@ -797,7 +797,8 @@ function tags_get_acl_tags(
// Return the condition of the tags for tagente_modulo table // Return the condition of the tags for tagente_modulo table
$condition = tags_get_acl_tags_module_condition( $condition = tags_get_acl_tags_module_condition(
$acltags, $acltags,
$query_table $query_table,
empty($childrens_ids) ? [] : $childrens_ids
); );
if (!empty($condition)) { if (!empty($condition)) {
return " $query_prefix ".$condition; return " $query_prefix ".$condition;
@ -825,7 +826,7 @@ function tags_get_acl_tags(
* *
* @return string SQL condition for tagente_module * @return string SQL condition for tagente_module
*/ */
function tags_get_acl_tags_module_condition($acltags, $modules_table='') function tags_get_acl_tags_module_condition($acltags, $modules_table='', $force_tags=[])
{ {
if (!empty($modules_table)) { if (!empty($modules_table)) {
$modules_table .= '.'; $modules_table .= '.';
@ -839,6 +840,17 @@ function tags_get_acl_tags_module_condition($acltags, $modules_table='')
// The acltags array contains the groups with the acl propagation applied // The acltags array contains the groups with the acl propagation applied
// after the changes done into the 'tags_get_user_groups_and_tags' function. // after the changes done into the 'tags_get_user_groups_and_tags' function.
foreach ($acltags as $group_id => $group_tags) { foreach ($acltags as $group_id => $group_tags) {
if (empty($group_tags)) {
$group_tags = [];
if (!empty($force_tags)) {
$group_tags = $force_tags;
}
}
if (!empty($group_tags)) {
$group_tags = array_intersect($force_tags, $group_tags);
}
$tag_join = ''; $tag_join = '';
if (!empty($group_tags)) { if (!empty($group_tags)) {
$tag_join = sprintf('AND ttag_module.id_tag IN (%s)', is_array($group_tags) ? implode(',', $group_tags) : $group_tags); $tag_join = sprintf('AND ttag_module.id_tag IN (%s)', is_array($group_tags) ? implode(',', $group_tags) : $group_tags);
@ -849,7 +861,7 @@ function tags_get_acl_tags_module_condition($acltags, $modules_table='')
} }
$group_conditions[] = $agent_condition; $group_conditions[] = $agent_condition;
} else { } else if (!empty($force_tags)) {
$without_tags[] = $group_id; $without_tags[] = $group_id;
} }
} }

View File

@ -711,7 +711,7 @@ function update_manager_extract_package()
rrmdir($path_package); rrmdir($path_package);
if ($result != 0) { if ($result == 0) {
db_process_sql_update( db_process_sql_update(
'tconfig', 'tconfig',
[ [

View File

@ -3902,13 +3902,16 @@ function visual_map_translate_agent_status($agent_status)
{ {
switch ($agent_status) { switch ($agent_status) {
case AGENT_STATUS_NORMAL: case AGENT_STATUS_NORMAL:
case AGENT_MODULE_STATUS_NORMAL_ALERT:
default: default:
return VISUAL_MAP_STATUS_NORMAL; return VISUAL_MAP_STATUS_NORMAL;
case AGENT_STATUS_CRITICAL: case AGENT_STATUS_CRITICAL:
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
return VISUAL_MAP_STATUS_CRITICAL_BAD; return VISUAL_MAP_STATUS_CRITICAL_BAD;
case AGENT_STATUS_WARNING: case AGENT_STATUS_WARNING:
case AGENT_MODULE_STATUS_WARNING_ALERT:
return VISUAL_MAP_STATUS_WARNING; return VISUAL_MAP_STATUS_WARNING;
case AGENT_STATUS_NOT_INIT: case AGENT_STATUS_NOT_INIT:

View File

@ -1150,7 +1150,7 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background)
echo '<div id="div_step_2" class="forced_title_layer" echo '<div id="div_step_2" class="forced_title_layer"
style="display: none; position: absolute; z-index: 99;">'.__('Click end point<br />of the line').'</div>'; style="display: none; position: absolute; z-index: 99;">'.__('Click end point<br />of the line').'</div>';
ui_require_css_file('color-picker','include/styles/js/'); ui_require_css_file('color-picker', 'include/styles/js/');
ui_require_jquery_file('colorpicker'); ui_require_jquery_file('colorpicker');
?> ?>
@ -1313,20 +1313,79 @@ function visual_map_editor_print_hack_translate_strings()
echo '<span id="any_text" style="display: none;">'.__('Any').'</span>'; echo '<span id="any_text" style="display: none;">'.__('Any').'</span>';
echo '<span id="ip_text" style="display: none;">'.__('IP').'</span>'; echo '<span id="ip_text" style="display: none;">'.__('IP').'</span>';
// Hack to translate messages in javascript // Hack to translate messages in javascript.
echo '<span style="display: none" id="message_alert_no_label_no_image">'.__('No image or name defined.').'</span>'; echo "<div id='message_min_allowed_size' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo '<span style="display: none" id="message_alert_no_label">'.__('No label defined.').'</span>'; echo "<p style='text-align: center;font-weight: bold;'>".__('Min allowed size is 1024x768.').'</p>';
echo '<span style="display: none" id="message_alert_no_image">'.__('No image defined.').'</span>'; echo '</div>';
echo '<span style="display: none" id="message_alert_no_process">'.__('No process defined.').'</span>';
echo '<span style="display: none" id="message_alert_no_max_percentile">'.__('No Max value defined.').'</span>'; echo "<div id='message_alert_no_custom_graph' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo '<span style="display: none" id="message_alert_no_width_percentile">'.__('No width defined.').'</span>'; echo "<p style='text-align: center;font-weight: bold;'>".__('No custom graph defined.').'</p>';
echo '<span style="display: none" id="message_alert_no_bars_graph_height">'.__('No height defined.').'</span>'; echo '</div>';
echo '<span style="display: none" id="message_alert_no_period">'.__('No period defined.').'</span>';
echo '<span style="display: none" id="message_alert_no_agent">'.__('No agent defined.').'</span>'; echo "<div id='message_alert_no_label_no_image' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo '<span style="display: none" id="message_alert_no_module">'.__('No module defined.').'</span>'; echo "<p style='text-align: center;font-weight: bold;'>".__('No image or name defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_label' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No label defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_service' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No service defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_image' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No image defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_process' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No process defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_max_percentile' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No Max value defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_width' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No width defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_height' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No height defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_max_width' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('The width must not exceed the size of the visual console container.').'</p>';
echo '</div>';
echo "<div id='message_alert_max_height' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('The height must not exceed the size of the visual console container.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_period' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No period defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_agent' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No agent defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_module' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No module defined.').'</p>';
echo '</div>';
echo "<div id='message_alert_no_module_string_type' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('No module defined. This module must be string type.').'</p>';
echo '</div>';
echo "<div id='hack_translation_correct_save' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('Successfully save the changes.').'</p>';
echo '</div>';
echo "<div id='hack_translation_incorrect_save' title='".__('Visual Console Builder Information')."' style='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('Could not be save.').'</p>';
echo '</div>';
echo '<span style="display: none" id="hack_translation_correct_save">'.__('Successfully save the changes.').'</span>';
echo '<span style="display: none" id="hack_translation_incorrect_save">'.__('Could not be save').'</span>';
} }

View File

@ -856,6 +856,7 @@ function pandoraFlotSlicebar(
} }
var font_size = parseInt(font_size); var font_size = parseInt(font_size);
if (font != undefined)
var font = font var font = font
.split("/") .split("/")
.pop() .pop()

View File

@ -144,7 +144,7 @@ function gd_histogram($width, $height, $mode, $data, $max_value, $font, $title,
foreach ($data as $label => $value) { foreach ($data as $label => $value) {
imagefilledrectangle($image, $leftmargin, $margin_up, (($value / $size_per) + $leftmargin), ($margin_up + $rectangle_height - 1), $colors[$c]); imagefilledrectangle($image, $leftmargin, $margin_up, (($value / $size_per) + $leftmargin), ($margin_up + $rectangle_height - 1), $colors[$c]);
if ($mode != 2) { if ($mode != 2) {
ImageTTFText($image, $fontsize, 0, 0, ($margin_up + 8), $black, $font, $label); imagettftext($image, $fontsize, 0, 0, ($margin_up + 8), $black, $font, $label);
} }
$margin_up += ($rectangle_height + 1); $margin_up += ($rectangle_height + 1);
@ -164,9 +164,9 @@ function gd_histogram($width, $height, $mode, $data, $max_value, $font, $title,
imageline($image, $risk_low, 0, $risk_low, $height, $grey); imageline($image, $risk_low, 0, $risk_low, $height, $grey);
imageline($image, $risk_med, 0, $risk_med, $height, $grey); imageline($image, $risk_med, 0, $risk_med, $height, $grey);
imageline($image, $risk_high, 0, $risk_high, $height, $grey); imageline($image, $risk_high, 0, $risk_high, $height, $grey);
ImageTTFText($image, $fontsize, 0, ($risk_low - 20), $height, $grey, $font, 'Low'); imagettftext($image, $fontsize, 0, ($risk_low - 20), $height, $grey, $font, 'Low');
ImageTTFText($image, $fontsize, 0, ($risk_med - 20), $height, $grey, $font, 'Med.'); imagettftext($image, $fontsize, 0, ($risk_med - 20), $height, $grey, $font, 'Med.');
ImageTTFText($image, $fontsize, 0, ($risk_high - 25), $height, $grey, $font, 'High'); imagettftext($image, $fontsize, 0, ($risk_high - 25), $height, $grey, $font, 'High');
} }
imagepng($image); imagepng($image);
@ -279,7 +279,7 @@ function gd_progress_bubble($width, $height, $progress, $title, $font, $out_of_l
// Write the value // Write the value
$size = imagettfbbox($fontsize, 0, $font, $value_text); $size = imagettfbbox($fontsize, 0, $font, $value_text);
ImageTTFText( imagettftext(
$image, $image,
$fontsize, $fontsize,
0, 0,
@ -409,12 +409,12 @@ function drawRating($rating, $width, $height, $font, $out_of_lim_str, $mode, $fo
if ($rating > 50) { if ($rating > 50) {
if ($rating > 100) { if ($rating > 100) {
ImageTTFText($image, ($fontsize + 2), 0, ($width / 4), (($height / 2) + ($height / 5)), $back, $font, $out_of_lim_str); imagettftext($image, ($fontsize + 2), 0, ($width / 4), (($height / 2) + ($height / 5)), $back, $font, $out_of_lim_str);
} else { } else {
ImageTTFText($image, $fontsize, 0, (($width / 2) - ($width / 10)), (($height / 2) + ($height / 5)), $back, $font, $value_text); imagettftext($image, $fontsize, 0, (($width / 2) - ($width / 10)), (($height / 2) + ($height / 5)), $back, $font, $value_text);
} }
} else { } else {
ImageTTFText($image, $fontsize, 0, (($width / 2) - ($width / 10)), (($height / 2) + ($height / 5)), $text, $font, $value_text); imagettftext($image, $fontsize, 0, (($width / 2) - ($width / 10)), (($height / 2) + ($height / 5)), $text, $font, $value_text);
} }
break; break;

View File

@ -0,0 +1,14 @@
<?php
/**
* @package Include/help/en
*/
?>
<h1>Module macros</h1>
<p>
The following macros are available:
<ul>
<li>_agentcustomfield_<i>n</i>_: Agent custom field number <i>n</i> (eg. _agentcustomfield_9_).</li>
</ul>
<p>
</p>

View File

@ -32,6 +32,7 @@ The accepted macros are:
<li><b>Event associated module name:</b> _module_name_</li> <li><b>Event associated module name:</b> _module_name_</li>
<li><b>Event owner user:</b> _owner_user_</li> <li><b>Event owner user:</b> _owner_user_</li>
<li><b>User ID:</b> _user_id_</li> <li><b>User ID:</b> _user_id_</li>
<li><b>Id of the user who fires the response:</b> _current_user_</li>
</ul> </ul>
<h4>Custom fields</h4> <h4>Custom fields</h4>

View File

@ -0,0 +1,13 @@
<?php
/**
* @package Include/help/en
*/
?>
<h1>Macros de módulos</h1>
<p>
Las siguientes macros están disponibles:
</p>
<ul>
<li>_agentcustomfield_<i>n</i>_: Campo personalizado número <i>n</i> del agente (eg. _agentcustomfield_9_). </li>
</ul>

View File

@ -33,6 +33,7 @@ Las macros aceptadas son las siguientes:
<li><b>Nombre del módulo asociado al evento:</b> _module_name_</li> <li><b>Nombre del módulo asociado al evento:</b> _module_name_</li>
<li><b>Usuario propietario del evento:</b> _owner_user_</li> <li><b>Usuario propietario del evento:</b> _owner_user_</li>
<li><b>Id del usuario:</b> _user_id_</li> <li><b>Id del usuario:</b> _user_id_</li>
<li><b>Id del usuario que ejecuta la respuesta:</b> _current_user_</li>
</ul> </ul>
<h4>Campos personalizados</h4> <h4>Campos personalizados</h4>

View File

@ -0,0 +1,15 @@
<?php
/**
* @package Include/help/ja
*/
?>
<h1>モジュールマクロ</h1>
<p>
次のマクロが利用できます:
</p>
<ul>
<li>_agentcustomfield_<i>n</i>_ : エージェントカスタムフィールド番号<i>n</i> (: _agentcustomfield_9_). </li>
</ul>
<p>
</p>

View File

@ -32,6 +32,7 @@
<li><b>Event associated module name:</b> _module_name_</li> <li><b>Event associated module name:</b> _module_name_</li>
<li><b>Event owner user:</b> _owner_user_</li> <li><b>Event owner user:</b> _owner_user_</li>
<li><b>User ID:</b> _user_id_</li> <li><b>User ID:</b> _user_id_</li>
<li><b>Id of the user who fires the response:</b> _current_user_</li>
</ul> </ul>
<h4>Custom fields</h4> <h4>Custom fields</h4>

View File

@ -503,6 +503,14 @@ function module_changed_by_multiple_modules(event, id_module, selected) {
selection_mode = "common"; selection_mode = "common";
} }
var tags_selected = [];
var tags_to_search = $("#tags").val();
if (tags_to_search != null) {
if (tags_to_search[0] != -1) {
tags_selected = tags_to_search;
}
}
jQuery.post( jQuery.post(
"ajax.php", "ajax.php",
{ {
@ -510,7 +518,8 @@ function module_changed_by_multiple_modules(event, id_module, selected) {
get_agents_json_for_multiple_modules: 1, get_agents_json_for_multiple_modules: 1,
status_module: status_module, status_module: status_module,
"module_name[]": idModules, "module_name[]": idModules,
selection_mode: selection_mode selection_mode: selection_mode,
tags: tags_selected
}, },
function(data) { function(data) {
$("#agents").append( $("#agents").append(

View File

@ -1312,7 +1312,7 @@ function update_last_package(package, version, homeurl) {
$("#box_online .content").html(""); $("#box_online .content").html("");
$("#box_online .loading").show(); $("#box_online .loading").show();
$("#box_online .download_package").show(); $("#box_online .downloading_package").show();
var parameters = {}; var parameters = {};
parameters["page"] = "include/ajax/update_manager.ajax"; parameters["page"] = "include/ajax/update_manager.ajax";
@ -1326,7 +1326,7 @@ function update_last_package(package, version, homeurl) {
parameters, parameters,
function(data) { function(data) {
if (data["in_progress"]) { if (data["in_progress"]) {
$("#box_online .download_package").hide(); $("#box_online .downloading_package").hide();
$("#box_online .content").html(data["message"]); $("#box_online .content").html(data["message"]);
@ -1341,7 +1341,7 @@ function update_last_package(package, version, homeurl) {
parameters2, parameters2,
function(data) { function(data) {
if (data["correct"]) { if (data["correct"]) {
$("#box_online .download_package").hide(); $("#box_online .downloading_package").hide();
$("#box_online .content").html(data["message"]); $("#box_online .content").html(data["message"]);

View File

@ -1,40 +1,39 @@
/* /*
* --------------------------------------------------------------------- * ---------------------------------------------------------------------
* - CLUSTER VIEW - * - CLUSTER VIEW -
* --------------------------------------------------------------------- * ---------------------------------------------------------------------
*/ */
#main_cluster { #main_cluster {
max-width:1770px; max-width: 1770px;
margin:0 auto; margin: 0 auto;
} }
.sub_cluster_1 { .sub_cluster_1 {
width:400px; width: 400px;
float: left; float: left;
margin-left: 30px; margin-left: 30px;
margin-bottom: 25px; margin-bottom: 25px;
vertical-align: top; vertical-align: top;
border:1px solid #e7e9ea; border: 1px solid #e7e9ea;
height:150px; height: 150px;
} }
.sub_cluster_2 { .sub_cluster_2 {
width:833px; width: 833px;
float: left; float: left;
margin-left: 30px; margin-left: 30px;
margin-bottom: 25px; margin-bottom: 25px;
vertical-align: top; vertical-align: top;
border:1px solid #e7e9ea; border: 1px solid #e7e9ea;
height:150px; height: 150px;
} }
.sub_cluster_header { .sub_cluster_header {
width:100%; width: 100%;
height: 30px; height: 30px;
background-color: #373737; background-color: #373737;
color:white; color: white;
text-align:center; text-align: center;
font-size: 9pt; font-size: 9pt;
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -43,7 +42,7 @@
} }
.sub_cluster_body { .sub_cluster_body {
width:100%; width: 100%;
height: 120px; height: 120px;
background-color: #f9faf9; background-color: #f9faf9;
display: flex; display: flex;
@ -53,64 +52,64 @@
} }
.sub_cluster_body_3 { .sub_cluster_body_3 {
width:100%; width: 100%;
height: 120px; height: 120px;
background-color: #f9faf9; background-color: #f9faf9;
overflow-y: scroll; overflow-y: scroll;
} }
#cluster_map { #cluster_map {
border:1px solid lightgray; border: 1px solid lightgray;
width:900px; width: 900px;
height:500px; height: 500px;
float: left; float: left;
margin-bottom: 30px; margin-bottom: 30px;
} }
#cluster_status_content { #cluster_status_content {
width: 90%; width: 90%;
height:30px; height: 30px;
margin:0px auto; margin: 0px auto;
} }
#cluster_status_bar { #cluster_status_bar {
width: 85%; width: 85%;
height:100%; height: 100%;
float:left; float: left;
} }
.status_animation { .status_animation {
width: 1%; width: 1%;
height:100%; height: 100%;
left:0%; left: 0%;
background-color: red; background-color: red;
position:relative; position: relative;
} }
#cluster_status_button { #cluster_status_button {
float:left; float: left;
width:10%; width: 10%;
margin-left:5%;; margin-left: 5%;
} }
#last_contact_content{ #last_contact_content {
width: 90%; width: 90%;
height:60px; height: 60px;
margin:0px auto; margin: 0px auto;
} }
#last_contact_clock { #last_contact_clock {
width: 15%; width: 15%;
height:100%; height: 100%;
float:left; float: left;
} }
#last_contact_date { #last_contact_date {
float:left; float: left;
height:60px; height: 60px;
width:80%; width: 80%;
margin-left:5%; margin-left: 5%;
text-align:center; text-align: center;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-content: center; align-content: center;
@ -118,27 +117,26 @@
} }
#last_contact_date_text { #last_contact_date_text {
font-size:14pt; font-size: 14pt;
} }
.balanced_module_item { .balanced_module_item {
float:left; float: left;
margin-top: 11.5px; margin-top: 11.5px;
margin-left: 5%; margin-left: 5%;
height: 25px; height: 25px;
width:90%; width: 90%;
} }
.module_icon { .module_icon {
float:left; float: left;
width:10%; width: 10%;
} }
.modal_module_list { .modal_module_list {
float:left; float: left;
width: 90%; width: 90%;
height:100%; height: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-content: center; align-content: center;

View File

@ -34,29 +34,36 @@ div.database_debug_title {
width: 95%; width: 95%;
} }
/* Common useful styles */ /* Common useful styles */
.invisible { .invisible {
display: none; display: none;
} }
.left { clear: left; float: left;} .left {
.right { clear: right; float: right;} clear: left;
.clear { clear:both; } float: left;
}
.right {
clear: right;
float: right;
}
.clear {
clear: both;
}
.top { .top {
vertical-align: top; vertical-align: top;
margin-top: 0; margin-top: 0;
padding-top: 0; padding-top: 0;
} }
img.left { img.left {
margin-right:1em; margin-right: 1em;
margin-bottom:1.8em; margin-bottom: 1.8em;
} }
img.right { img.right {
margin-left:1em; margin-left: 1em;
margin-bottom:1.8em; margin-bottom: 1.8em;
} }
.text-right { .text-right {
text-align:right; text-align: right;
} }
.noshadow { .noshadow {
-moz-box-shadow: 0px !important; -moz-box-shadow: 0px !important;

View File

@ -23,15 +23,15 @@ td.scwWeek {
/* Today selector */ /* Today selector */
td.scwFootDisabled { td.scwFootDisabled {
background-color: #000; background-color: #000;
color: #FFFFFF; color: #ffffff;
} }
tfoot.scwFoot { tfoot.scwFoot {
color: #111; color: #111;
} }
.scwFoot :hover{ .scwFoot :hover {
color: #3F3F3F !important; color: #3f3f3f !important;
} }
table.scwCells { table.scwCells {

View File

@ -1,4 +1,3 @@
@import url(calendar.css); @import url(calendar.css);
/* --- JQUERY-UI --- */ /* --- JQUERY-UI --- */
@ -13,24 +12,26 @@
.ui-button-text-only .ui-button-text { .ui-button-text-only .ui-button-text {
font-family: nunito; font-family: nunito;
font-size: 9pt; font-size: 9pt;
color: #82B92E color: #82b92e;
} }
.ui-datepicker .ui-datepicker-title *, .ui-datepicker th * { .ui-datepicker .ui-datepicker-title *,
.ui-datepicker th * {
color: white; color: white;
} }
.ui-datepicker .ui-datepicker-title select, .ui-datepicker .ui-datepicker-title option { .ui-datepicker .ui-datepicker-title select,
.ui-datepicker .ui-datepicker-title option {
color: #111 !important; color: #111 !important;
} }
.ui-dialog .ui-dialog-titlebar { .ui-dialog .ui-dialog-titlebar {
display: inherit; display: inherit;
text-align: center; text-align: center;
padding: .4em 1em; padding: 0.4em 1em;
height: 30px; height: 30px;
position: relative; position: relative;
} }
.ui-dialog .ui-dialog-title { .ui-dialog .ui-dialog-title {
font-family: Nunito, sans-serif; font-family: Nunito, sans-serif;
margin: .1em 0 !important; margin: 0.1em 0 !important;
white-space: nowrap !important; white-space: nowrap !important;
width: 100% !important; width: 100% !important;
overflow: hidden !important; overflow: hidden !important;
@ -53,7 +54,7 @@
.ui-dialog .ui-dialog-content { .ui-dialog .ui-dialog-content {
position: relative !important; position: relative !important;
border: 0; border: 0;
padding: .5em 1em !important; padding: 0.5em 1em !important;
background: none !important; background: none !important;
overflow: auto !important; overflow: auto !important;
margin-bottom: 1em; margin-bottom: 1em;
@ -62,37 +63,40 @@
text-align: left; text-align: left;
border-width: 1px 0 0 0; border-width: 1px 0 0 0;
background-image: none; background-image: none;
margin-top: .5em; margin-top: 0.5em;
padding: .3em 1em .5em .4em; padding: 0.3em 1em 0.5em 0.4em;
} }
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
float: right; float: right;
} }
.ui-dialog .ui-dialog-buttonpane button { .ui-dialog .ui-dialog-buttonpane button {
margin: .5em 1em .5em 0 !important; margin: 0.5em 1em 0.5em 0 !important;
cursor: pointer !important; cursor: pointer !important;
background: white !important; background: white !important;
background-color: white !important; background-color: white !important;
border: 1px solid #82b92e !important; border: 1px solid #82b92e !important;
height:30px !important; height: 30px !important;
width:90px !important; width: 90px !important;
} }
.ui-widget-header .ui-icon { .ui-widget-header .ui-icon {
background-image: url(../images/ui-icons_444444_256x240.png) !important; background-image: url(../images/ui-icons_444444_256x240.png) !important;
} }
.ui-icon, .ui-widget-content .ui-icon { .ui-icon,
.ui-widget-content .ui-icon {
background-image: url(../images/ui-icons_444444_256x240.png) !important; background-image: url(../images/ui-icons_444444_256x240.png) !important;
} }
.ui-widget-content { .ui-widget-content {
background: #ffffff url(../images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; background: #ffffff url(../images/ui-bg_flat_75_ffffff_40x100.png) 50% 50%
repeat-x;
} }
.ui-state-default, .ui-state-default,
.ui-widget-content .ui-state-default, .ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default { .ui-widget-header .ui-state-default {
margin-top: 3px; margin-top: 3px;
border: 1px solid #d3d3d3 !important; border: 1px solid #d3d3d3 !important;
border-bottom:0 !important; border-bottom: 0 !important;
background: #e6e6e6 url(../images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x !important; background: #e6e6e6 url(../images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50%
repeat-x !important;
font-weight: normal !important; font-weight: normal !important;
color: #555555 !important; color: #555555 !important;
} }
@ -121,15 +125,15 @@
border-bottom-right-radius: 0 !important; border-bottom-right-radius: 0 !important;
} }
#ui-datepicker-div { #ui-datepicker-div {
border-color: #B1B1B1; border-color: #b1b1b1;
background: #ffffff; background: #ffffff;
} }
.ui-widget-header { .ui-widget-header {
background: #B1B1B1 !important; background: #b1b1b1 !important;
color: #ffffff !important; color: #ffffff !important;
} }
.ui-datepicker-calendar th { .ui-datepicker-calendar th {
background-color: #3F3F3F; background-color: #3f3f3f;
} }
.ui-dialog .ui-widget-header { .ui-dialog .ui-widget-header {
background-color: #82b92e; background-color: #82b92e;
@ -138,16 +142,16 @@
.ui_tpicker_minute, .ui_tpicker_minute,
.ui_tpicker_second, .ui_tpicker_second,
.ui-slider-handle { .ui-slider-handle {
border: 1px solid #AAAAAA !important; border: 1px solid #aaaaaa !important;
} }
.ui-timepicker-div dd { .ui-timepicker-div dd {
margin: 0px 15px 0px 15px ; margin: 0px 15px 0px 15px;
} }
.ui-timepicker-div .ui-datepicker-title { .ui-timepicker-div .ui-datepicker-title {
color: white; color: white;
} }
.ui-datepicker-buttonpane button { .ui-datepicker-buttonpane button {
border-color: #B1B1B1 !important; border-color: #b1b1b1 !important;
} }
.ui-datepicker-buttonpane .ui-datepicker-current { .ui-datepicker-buttonpane .ui-datepicker-current {
margin-left: 0.2em !important; margin-left: 0.2em !important;
@ -180,75 +184,80 @@
.ui-widget input, .ui-widget input,
.ui-widget select, .ui-widget select,
.ui-widget textarea, .ui-widget textarea,
.ui-widget button{ .ui-widget button {
font-family: Verdana,Arial,sans-serif !important; font-family: Verdana, Arial, sans-serif !important;
} }
a.ui-button:active, .ui-button:active, a.ui-button:active,
.ui-button:active,
.ui-button.ui-state-active:hover, .ui-button.ui-state-active:hover,
.ui-state-focus .ui-widget-content, .ui-state-focus .ui-widget-content,
.ui-state-focus .ui-widget-header, .ui-state-focus .ui-widget-header,
.ui-state-focus .ui-button:hover, .ui-button:focus{ .ui-state-focus .ui-button:hover,
.ui-button:focus {
background: transparent !important; background: transparent !important;
border: none !important; border: none !important;
} }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover{ .ui-state-hover,
.ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover {
border: 1px solid #999999 !important; border: 1px solid #999999 !important;
border-bottom: 0 !important; border-bottom: 0 !important;
background: #dadada url(../images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x !important; background: #dadada url(../images/ui-bg_glass_75_dadada_1x400.png) 50% 50%
repeat-x !important;
} }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active{ .ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active {
border: 1px solid #aaaaaa !important; border: 1px solid #aaaaaa !important;
border-bottom: 0 !important; border-bottom: 0 !important;
background: #ffffff url(../images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x !important; background: #ffffff url(../images/ui-bg_glass_65_ffffff_1x400.png) 50% 50%
repeat-x !important;
font-weight: normal !important; font-weight: normal !important;
color: #212121 !important; color: #212121 !important;
} }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited{ .ui-state-active a,
.ui-state-active a:link,
.ui-state-active a:visited {
color: #212121 !important; color: #212121 !important;
} }
ul.ui-front{ ul.ui-front {
z-index: 1000000 !important; z-index: 1000000 !important;
padding-right: 0px !important; padding-right: 0px !important;
} }
ul.ui-front li{ ul.ui-front li {
padding: 3px !important; padding: 3px !important;
} }
ul.ui-front li:hover{ ul.ui-front li:hover {
background-color: #e1e3e1 !important; background-color: #e1e3e1 !important;
} }
ul.ui-front li a.ui-menu-item-wrapper{ ul.ui-front li a.ui-menu-item-wrapper {
background: transparent !important; background: transparent !important;
border: none !important; border: none !important;
} }
ul.ui-front li a.ui-menu-item-wrapper span{ ul.ui-front li a.ui-menu-item-wrapper span {
padding-left: 5px !important; padding-left: 5px !important;
} }
ul.ui-front li a.ui-menu-item-wrapper:hover{ ul.ui-front li a.ui-menu-item-wrapper:hover {
text-decoration: none !important; text-decoration: none !important;
} }
input[type=submit].ui-button-dialog{ input[type="submit"].ui-button-dialog {
margin: .5em 1em .5em 0 !important; margin: 0.5em 1em 0.5em 0 !important;
cursor: pointer !important; cursor: pointer !important;
background: white !important; background: white !important;
background-color: white !important; background-color: white !important;
color: #82b92e !important; color: #82b92e !important;
text-align: center !important; text-align: center !important;
border: 1px solid #82b92e !important; border: 1px solid #82b92e !important;
height:30px !important; height: 30px !important;
width:90px !important; width: 90px !important;
} }

View File

@ -13,17 +13,17 @@
*/ */
.context-menu-list { .context-menu-list {
margin:0; margin: 0;
padding:0; padding: 0;
min-width: 120px; min-width: 120px;
max-width: 250px; max-width: 250px;
display: inline-block; display: inline-block;
position: absolute; position: absolute;
list-style-type: none; list-style-type: none;
border: 1px solid #DDD; border: 1px solid #ddd;
border-radius: 4px; border-radius: 4px;
background: #EEE; background: #eee;
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5); -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
@ -38,7 +38,7 @@
.context-menu-item { .context-menu-item {
padding: 0px 2px 0px 24px; padding: 0px 2px 0px 24px;
background-color: #EEE; background-color: #eee;
position: relative; position: relative;
border-radius: 4px; border-radius: 4px;
-webkit-user-select: none; -webkit-user-select: none;
@ -57,8 +57,8 @@
} }
.context-menu-separator { .context-menu-separator {
padding-bottom:0; padding-bottom: 0;
border-bottom: 1px solid #DDD; border-bottom: 1px solid #ddd;
} }
.context-menu-item > label > input, .context-menu-item > label > input,
@ -83,7 +83,7 @@
.context-menu-input.hover, .context-menu-input.hover,
.context-menu-item.disabled.hover { .context-menu-item.disabled.hover {
cursor: default; cursor: default;
background-color: #EEE; background-color: #eee;
} }
.context-menu-submenu:after { .context-menu-submenu:after {
@ -101,29 +101,73 @@
http://css-tricks.com/13224-pseudo-spriting/ to get an idea of how to implement http://css-tricks.com/13224-pseudo-spriting/ to get an idea of how to implement
.context-menu-item.icon:before {} .context-menu-item.icon:before {}
*/ */
.context-menu-item.icon { min-height: 18px; background-repeat: no-repeat; background-position: 4px 2px; } .context-menu-item.icon {
.context-menu-item.icon-edit { background-image: url(../../images/page_white_edit.png); } min-height: 18px;
.context-menu-item.icon-cut { background-image: url(../../images/cut.png); } background-repeat: no-repeat;
.context-menu-item.icon-copy { background-image: url(../../images/page_white_copy.png); } background-position: 4px 2px;
.context-menu-item.icon-paste { background-image: url(../../images/page_white_paste.png); } }
.context-menu-item.icon-delete { background-image: url(../../images/delete.png); } .context-menu-item.icon-edit {
.context-menu-item.icon-add { background-image: url(../../images/page_white_add.png); } background-image: url(../../images/page_white_edit.png);
.context-menu-item.icon-quit { background-image: url(../../images/door.png); } }
.context-menu-item.icon-refresh { background-image: url(../../images/refresh.png); } .context-menu-item.icon-cut {
.context-menu-item.icon-center { background-image: url(../../images/set_center.png); } background-image: url(../../images/cut.png);
.context-menu-item.icon-details { background-image: url(../../images/show_details.png); } }
.context-menu-item.icon-children { background-image: url(../../images/children.png); } .context-menu-item.icon-copy {
.context-menu-item.icon-cancel_set_parent { background-image: url(../../images/link_delete.png); } background-image: url(../../images/page_white_copy.png);
.context-menu-item.icon-set_parent { background-image: url(../../images/father.png); } }
.context-menu-item.icon-add_node { background-image: url(../../images/add.png); } .context-menu-item.icon-paste {
.context-menu-item.icon-refresh_holding_area { background-image: url(../../images/refresh_holding_area.png); } background-image: url(../../images/page_white_paste.png);
.context-menu-item.icon-restart_map { background-image: url(../../images/reset.png); } }
.context-menu-item.icon-interface_link_children { background-image: url(../../images/icono_link_hijo.png); } .context-menu-item.icon-delete {
.context-menu-item.icon-interface_link_parent { background-image: url(../../images/icono_link_padre.png); } background-image: url(../../images/delete.png);
.context-menu-item.icon-interface_link_cancel { background-image: url(../../images/link_abortar.png); } }
.context-menu-item.icon-add {
background-image: url(../../images/page_white_add.png);
}
.context-menu-item.icon-quit {
background-image: url(../../images/door.png);
}
.context-menu-item.icon-refresh {
background-image: url(../../images/refresh.png);
}
.context-menu-item.icon-center {
background-image: url(../../images/set_center.png);
}
.context-menu-item.icon-details {
background-image: url(../../images/show_details.png);
}
.context-menu-item.icon-children {
background-image: url(../../images/children.png);
}
.context-menu-item.icon-cancel_set_parent {
background-image: url(../../images/link_delete.png);
}
.context-menu-item.icon-set_parent {
background-image: url(../../images/father.png);
}
.context-menu-item.icon-add_node {
background-image: url(../../images/add.png);
}
.context-menu-item.icon-refresh_holding_area {
background-image: url(../../images/refresh_holding_area.png);
}
.context-menu-item.icon-restart_map {
background-image: url(../../images/reset.png);
}
.context-menu-item.icon-interface_link_children {
background-image: url(../../images/icono_link_hijo.png);
}
.context-menu-item.icon-interface_link_parent {
background-image: url(../../images/icono_link_padre.png);
}
.context-menu-item.icon-interface_link_cancel {
background-image: url(../../images/link_abortar.png);
}
/* vertically align inside labels */ /* vertically align inside labels */
.context-menu-input > label > * { vertical-align: top; } .context-menu-input > label > * {
vertical-align: top;
}
/* position checkboxes and radios as icons */ /* position checkboxes and radios as icons */
.context-menu-input > label > input[type="checkbox"], .context-menu-input > label > input[type="checkbox"],

View File

@ -6,8 +6,8 @@
h1#log_title { h1#log_title {
font-size: 18px; font-size: 18px;
margin-bottom: 0px; margin-bottom: 0px;
color: #FFF !important; color: #fff !important;
width:300px; width: 300px;
} }
div#log_msg { div#log_msg {
@ -18,7 +18,7 @@ div#error_buttons {
margin-top: 20px; margin-top: 20px;
} }
div#error_buttons a{ div#error_buttons a {
margin: 14px; margin: 14px;
} }
@ -65,9 +65,9 @@ div#error_buttons a{
}*/ }*/
p.log_in { p.log_in {
color: #FFF !important; color: #fff !important;
padding: 0px 10px; padding: 0px 10px;
width:300px; width: 300px;
} }
h1#log_f { h1#log_f {
@ -104,13 +104,10 @@ div#login_f {
width: 100%; width: 100%;
position: absolute; position: absolute;
bottom: 10px; bottom: 10px;
color: #FFF; color: #fff;
text-align: center; text-align: center;
} }
/* /*
* --------------------------------------------------------------------- * ---------------------------------------------------------------------
* - LOGIN PAGE - * - LOGIN PAGE -
@ -118,42 +115,42 @@ div#login_f {
*/ */
/* --- Login page - header --- */ /* --- Login page - header --- */
div#header_login{ div#header_login {
width: 100%; width: 100%;
height: 65px; height: 65px;
background-color: rgba(255, 255, 255, 0.06); background-color: rgba(255, 255, 255, 0.06);
} }
div#icon_custom_pandora{ div#icon_custom_pandora {
float: left; float: left;
margin-top: 5px; margin-top: 5px;
margin-left: 4%; margin-left: 4%;
} }
div#list_icon_docs_support{ div#list_icon_docs_support {
float: right; float: right;
margin-top: 8px; margin-top: 8px;
margin-right: 4%; margin-right: 4%;
} }
div#list_icon_docs_support ul{ div#list_icon_docs_support ul {
margin-top: 5px; margin-top: 5px;
} }
div#list_icon_docs_support ul li{ div#list_icon_docs_support ul li {
display: inline-block; display: inline-block;
color:white; color: white;
vertical-align: middle; vertical-align: middle;
margin-right: 5px; margin-right: 5px;
font-size: 10pt; font-size: 10pt;
} }
li#li_margin_left{ li#li_margin_left {
margin-left: 30px; margin-left: 30px;
} }
/* --- Login page - form --- */ /* --- Login page - form --- */
div.container_login{ div.container_login {
margin-top: 10%; margin-top: 10%;
margin-left: 5%; margin-left: 5%;
margin-right: 5%; margin-right: 5%;
@ -162,11 +159,11 @@ div.container_login{
div.login_page { div.login_page {
width: 35%; width: 35%;
min-height: 600px; min-height: 600px;
float:left; float: left;
} }
div.login_page form { div.login_page form {
border-right:1px solid #868686; border-right: 1px solid #868686;
padding-top: 30px; padding-top: 30px;
padding-bottom: 50px; padding-bottom: 50px;
min-width: 400px; min-width: 400px;
@ -178,7 +175,7 @@ div.login_logo_icon {
text-align: center; text-align: center;
} }
div.login_logo_icon img{ div.login_logo_icon img {
margin: 0 auto; margin: 0 auto;
width: 150px; width: 150px;
} }
@ -189,22 +186,22 @@ div.login_pass {
margin: 0 auto; margin: 0 auto;
width: 70%; width: 70%;
height: 40px; height: 40px;
background-color: rgba(255, 255, 255, 0.20) !important; background-color: rgba(255, 255, 255, 0.2) !important;
margin-bottom: 25px; margin-bottom: 25px;
min-width: 260px; min-width: 260px;
} }
div.login_nick img, div.login_nick img,
div.login_pass img{ div.login_pass img {
vertical-align: middle; vertical-align: middle;
margin: 3px; margin: 3px;
} }
div.login_nick input, div.login_nick input,
div.login_pass input{ div.login_pass input {
background-color: rgba(255, 255, 255, 0.00) !important; background-color: rgba(255, 255, 255, 0) !important;
border:0px !important; border: 0px !important;
color:white !important; color: white !important;
border-radius: 0px; border-radius: 0px;
width: 89%; width: 89%;
height: 40px; height: 40px;
@ -213,7 +210,7 @@ div.login_pass input{
} }
div.login_nick input:focus, div.login_nick input:focus,
div.login_pass input:focus{ div.login_pass input:focus {
outline: none; outline: none;
} }
@ -228,27 +225,27 @@ div.login_pass input:-webkit-autofill:active {
transition: background-color 10000s ease-in-out 0s; transition: background-color 10000s ease-in-out 0s;
-webkit-box-shadow: 0 0 0px 0px transparent inset !important; -webkit-box-shadow: 0 0 0px 0px transparent inset !important;
-webkit-text-fill-color: white !important; -webkit-text-fill-color: white !important;
border:0px; border: 0px;
width: 89%; width: 89%;
} }
div.login_nick input::-webkit-input-placeholder, div.login_nick input::-webkit-input-placeholder,
div.login_pass input::-webkit-input-placeholder { div.login_pass input::-webkit-input-placeholder {
color:white; color: white;
} }
div.login_pass img, div.login_pass img,
div.login_nick img{ div.login_nick img {
width: 30px; width: 30px;
} }
div.login_pass div, div.login_pass div,
div.login_nick div{ div.login_nick div {
float: left; float: left;
width: 11%; width: 11%;
} }
div.login_button{ div.login_button {
margin: 0 auto; margin: 0 auto;
width: 70%; width: 70%;
height: 40px; height: 40px;
@ -261,7 +258,7 @@ div.login_button input {
width: 100%; width: 100%;
background-color: rgb(25, 25, 25) !important; background-color: rgb(25, 25, 25) !important;
text-align: center; text-align: center;
border:0px; border: 0px;
border-radius: 0px; border-radius: 0px;
height: 40px; height: 40px;
padding: 0px; padding: 0px;
@ -272,38 +269,38 @@ div.login_button input {
div.login_data { div.login_data {
width: 65%; width: 65%;
min-height: 600px; min-height: 600px;
float:left; float: left;
} }
div.text_banner_login{ div.text_banner_login {
width: 100%; width: 100%;
margin-bottom: 60px; margin-bottom: 60px;
color: white; color: white;
text-align: center; text-align: center;
} }
div.text_banner_login span{ div.text_banner_login span {
width: 100%; width: 100%;
} }
span.span1{ span.span1 {
font-size: 3vw; font-size: 3vw;
font-family: 'lato-thin'; font-family: "lato-thin";
color: white; color: white;
} }
span.span2{ span.span2 {
font-size: 3vw; font-size: 3vw;
font-family: 'lato-bolder'; font-family: "lato-bolder";
color: white; color: white;
} }
div.img_banner_login{ div.img_banner_login {
width: 100%; width: 100%;
text-align: center; text-align: center;
} }
div.img_banner_login img{ div.img_banner_login img {
max-width: 70%; max-width: 70%;
min-width: 70%; min-width: 70%;
max-height: 50%; max-height: 50%;
@ -311,58 +308,55 @@ div.img_banner_login img{
} }
@media all and (max-width: 1200px) { @media all and (max-width: 1200px) {
span.span1{ span.span1 {
font-size: 30pt; font-size: 30pt;
} }
span.span2{ span.span2 {
font-size: 30pt; font-size: 30pt;
} }
} }
/* --- Login page - modal windows --- */ /* --- Login page - modal windows --- */
div.content_alert{ div.content_alert {
width: 98%; width: 98%;
margin-top: 20px; margin-top: 20px;
} }
div.icon_message_alert{ div.icon_message_alert {
float: left; float: left;
width: 25%; width: 25%;
text-align: center; text-align: center;
} }
div.icon_message_alert img{ div.icon_message_alert img {
width: 85px; width: 85px;
} }
div.content_message_alert{ div.content_message_alert {
width: 75%; width: 75%;
float: right; float: right;
} }
div.text_message_alert{ div.text_message_alert {
width: 100%; width: 100%;
margin-top: 10px; margin-top: 10px;
} }
div.text_message_alert h1{ div.text_message_alert h1 {
margin: 0px; margin: 0px;
} }
div.text_message_alert p{ div.text_message_alert p {
margin: 0px; margin: 0px;
font-size: 10.3pt; font-size: 10.3pt;
line-height: 14pt; line-height: 14pt;
} }
div.button_message_alert{ div.button_message_alert {
width: 100%; width: 100%;
} }
div.button_message_alert input{ div.button_message_alert input {
float: right; float: right;
width: 87px; width: 87px;
height: 33px; height: 33px;
@ -374,19 +368,19 @@ div.button_message_alert input{
font-size: 10pt; font-size: 10pt;
} }
div.form_message_alert{ div.form_message_alert {
width: 90%; width: 90%;
clear: both; clear: both;
padding-top: 20px; padding-top: 20px;
padding-left: 40px; padding-left: 40px;
} }
div.form_message_alert ul li{ div.form_message_alert ul li {
display: inline-block; display: inline-block;
padding: 10px; padding: 10px;
} }
div.form_message_alert ul li input{ div.form_message_alert ul li input {
border: none; border: none;
background-color: #dadada !important; background-color: #dadada !important;
border-radius: 0px; border-radius: 0px;
@ -395,17 +389,17 @@ div.form_message_alert ul li input{
padding-left: 5px; padding-left: 5px;
} }
div.form_message_alert ul li label{ div.form_message_alert ul li label {
font-size: 10pt; font-size: 10pt;
padding-right: 20px; padding-right: 20px;
} }
div.form_message_alert h4{ div.form_message_alert h4 {
margin: 0px; margin: 0px;
margin-bottom: 10px; margin-bottom: 10px;
} }
div.button_message_alert_form input{ div.button_message_alert_form input {
float: right; float: right;
width: 87px; width: 87px;
height: 33px; height: 33px;

View File

@ -51,9 +51,13 @@ li:hover ul {
padding: 10.5px; padding: 10.5px;
margin-left: 0px; margin-left: 0px;
width: 100%; width: 100%;
<<<<<<< HEAD
color: #91a2a7; color: #91a2a7;
font-family: "Open Sans", sans-serif; font-family: "Open Sans", sans-serif;
font-size: 10pt; font-size: 10pt;
=======
color: #fff;
>>>>>>> 01fee147745dfd638487449f20211abd8e83b71e
} }
.menu li.subselected a { .menu li.subselected a {
@ -281,6 +285,12 @@ ul li a:hover {
* - MAIN LEFT MENU and SUBMENU - * - MAIN LEFT MENU and SUBMENU -
* --------------------------------------------------------------------- * ---------------------------------------------------------------------
*/ */
<<<<<<< HEAD
=======
.menu li.selected {
font-weight: bold;
}
>>>>>>> 01fee147745dfd638487449f20211abd8e83b71e
.menu_icon { .menu_icon {
transition-property: background-color; transition-property: background-color;
@ -310,7 +320,11 @@ ul li a:hover {
-o-transition-property: background-color; -o-transition-property: background-color;
-o-transition-duration: 0.5s; -o-transition-duration: 0.5s;
-o-transition-timing-function: ease-out; -o-transition-timing-function: ease-out;
<<<<<<< HEAD
background-color: #282828 !important; background-color: #282828 !important;
=======
background-color: #585858 !important;
>>>>>>> 01fee147745dfd638487449f20211abd8e83b71e
} }
.submenu_not_selected:hover { .submenu_not_selected:hover {
transition-property: background-color; transition-property: background-color;
@ -325,10 +339,17 @@ ul li a:hover {
-o-transition-property: background-color; -o-transition-property: background-color;
-o-transition-duration: 0.5s; -o-transition-duration: 0.5s;
-o-transition-timing-function: ease-out; -o-transition-timing-function: ease-out;
<<<<<<< HEAD
background-color: #202020 !important; background-color: #202020 !important;
} }
.submenu_selected:hover { .submenu_selected:hover {
background-color: #202020 !important; background-color: #202020 !important;
=======
background-color: #585858 !important;
}
.submenu_selected:hover {
background-color: #585858 !important;
>>>>>>> 01fee147745dfd638487449f20211abd8e83b71e
} }
.sub_subMenu { .sub_subMenu {
transition-property: background-color; transition-property: background-color;

View File

@ -441,6 +441,14 @@ textarea.conf_error {
background-position: top right; background-position: top right;
} }
input.button {
font-family: Arial, Sans-serif;
border: 4px solid #ccc;
background: #fff;
padding: 2px 3px;
margin: 10px 15px;
}
a.white_bold { a.white_bold {
color: #eee; color: #eee;
text-decoration: none; text-decoration: none;
@ -1554,6 +1562,9 @@ table.databox {
font-weight: normal; font-weight: normal;
color: #fff; color: #fff;
} }
.databox > td {
#border-bottom: 1px solid #e2e2e2;
}
.databox > th * { .databox > th * {
color: #fff; color: #fff;

View File

@ -0,0 +1,78 @@
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @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.
* ============================================================================
*/
table.header_table {
width: 100%;
}
table.header_table thead tr th,
table.header_table tbody tr td {
padding: 10px;
}
thead.header_tr tr {
background: #e6e6e6;
}
thead.header_tr tr th {
font-weight: normal;
text-align: right;
}
thead.header_tr tr th.th_first {
font-weight: bold;
text-align: left;
}
thead.header_tr tr th.th_description {
background-color: #f5f5f5;
color: #1c1c1c;
text-align: justify;
}
table.table_beauty {
border-collapse: collapse;
width: 100%;
}
table.table_beauty tbody tr td {
padding: 5px;
border: 0.1pt solid #acacac;
}
table.databox {
margin-bottom: 20px;
}
th.title_table_pdf {
background-color: #acacac;
padding: 15px;
}
table.table_agent_module tr td {
padding: 5px;
}

View File

@ -1,16 +1,32 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @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-2012 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.
?> ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
@ -112,8 +128,8 @@
</div> </div>
<div style='height: 10px'> <div style='height: 10px'>
<?php <?php
$version = '7.0NG.731'; $version = '7.0NG.731';
$build = '190207'; $build = '190225';
$banner = "v$version Build $build"; $banner = "v$version Build $build";
error_reporting(0); error_reporting(0);
@ -520,7 +536,7 @@ function install_step2()
echo '<h2>Checking software dependencies</h2>'; echo '<h2>Checking software dependencies</h2>';
echo '<table border=0 width=230>'; echo '<table border=0 width=230>';
$res = 0; $res = 0;
$res += check_variable(phpversion(), '5.2', 'PHP version >= 5.2', 1); $res += check_variable(phpversion(), '7.0', 'PHP version >= 7.0', 1);
$res += check_extension('gd', 'PHP GD extension'); $res += check_extension('gd', 'PHP GD extension');
$res += check_extension('ldap', 'PHP LDAP extension'); $res += check_extension('ldap', 'PHP LDAP extension');
$res += check_extension('snmp', 'PHP SNMP extension'); $res += check_extension('snmp', 'PHP SNMP extension');
@ -548,7 +564,6 @@ function install_step2()
font-size: 8.5pt;margin-top: 2px; font-weight: bolder;'>DB Engines</span>"; font-size: 8.5pt;margin-top: 2px; font-weight: bolder;'>DB Engines</span>";
echo '</td><td>'; echo '</td><td>';
echo '</td></tr>'; echo '</td></tr>';
check_extension('mysql', 'PHP MySQL extension');
check_extension('mysqli', 'PHP MySQL(mysqli) extension'); check_extension('mysqli', 'PHP MySQL(mysqli) extension');
echo '</table>'; echo '</table>';

View File

@ -313,7 +313,7 @@ class Alerts
$row = []; $row = [];
if (isset($this->columns['agent']) && $this->columns['agent']) { if (isset($this->columns['agent']) && $this->columns['agent']) {
$row[__('Agent')] = sprintf($disabled_style, io_safe_output($alert['agent_name'])); $row[__('Agent')] = sprintf($disabled_style, io_safe_output($alert['agent_alias']));
} }
$row[__('Module')] = sprintf( $row[__('Module')] = sprintf(

View File

@ -634,7 +634,7 @@ echo '</div>';
enterprise_hook('close_meta_frame'); enterprise_hook('close_meta_frame');
ui_require_css_file ('cluetip','include/styles/js/'); ui_require_css_file('cluetip', 'include/styles/js/');
ui_require_jquery_file('cluetip'); ui_require_jquery_file('cluetip');
?> ?>

View File

@ -323,7 +323,7 @@ ui_toggle(
} }
</script> </script>
<?php <?php
ui_require_css_file('cluetip','include/styles/js/'); ui_require_css_file('cluetip', 'include/styles/js/');
ui_require_jquery_file('cluetip'); ui_require_jquery_file('cluetip');
echo "<div id='module_details_dialog' style='display: none;'></div>"; echo "<div id='module_details_dialog' style='display: none;'></div>";

View File

@ -1,17 +1,32 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @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;
require_once 'include/functions_gis.php'; require_once 'include/functions_gis.php';
@ -48,16 +63,16 @@ if (is_ajax()) {
$id_group = (int) get_parameter('id_group'); $id_group = (int) get_parameter('id_group');
if ($get_agents_group_json) { if ($get_agents_group_json) {
$id_group = (int) get_parameter('id_group'); $id_group = (int) get_parameter('id_group');
$recursion = get_parameter('recursion'); $recursion = (bool) get_parameter('recursion');
$id_os = get_parameter('id_os', ''); $id_os = get_parameter('id_os', '');
$agent_name = get_parameter('name', ''); $agent_name = get_parameter('name', '');
$privilege = (string) get_parameter('privilege', 'AR'); $privilege = (string) get_parameter('privilege', 'AR');
// Is is possible add keys prefix to avoid auto sorting in js object conversion // Is is possible add keys prefix to avoid auto sorting in js object conversion.
$keys_prefix = (string) get_parameter('keys_prefix', ''); $keys_prefix = (string) get_parameter('keys_prefix', '');
$status_agents = (int) get_parameter('status_agents', AGENT_STATUS_ALL); $status_agents = (int) get_parameter('status_agents', AGENT_STATUS_ALL);
// Build filter // Build filter.
$filter = []; $filter = [];
if (!empty($id_os)) { if (!empty($id_os)) {
@ -104,13 +119,23 @@ if (is_ajax()) {
} }
} }
// Perform search // Perform search.
$agents = agents_get_group_agents($id_group, $filter, 'lower', false, $recursion, false, '|', $cluster_mode); $agents = agents_get_group_agents(
$id_group,
$filter,
'lower',
false,
$recursion,
false,
'|',
$cluster_mode
);
if (empty($agents)) { if (empty($agents)) {
$agents = []; $agents = [];
} }
// Add keys prefix // Add keys prefix.
if ($keys_prefix !== '') { if ($keys_prefix !== '') {
$i = 0; $i = 0;
foreach ($agents as $k => $v) { foreach ($agents as $k => $v) {
@ -139,7 +164,7 @@ if (is_ajax()) {
$id_agents = get_parameter('id_agents'); $id_agents = get_parameter('id_agents');
$selection = get_parameter('selection'); $selection = get_parameter('selection');
// No filter by module group // No filter by module group.
$modules = select_modules_for_agent_group(0, $id_agents, $selection, false, true); $modules = select_modules_for_agent_group(0, $id_agents, $selection, false, true);
echo json_encode($modules); echo json_encode($modules);
return; return;
@ -177,11 +202,14 @@ if (is_ajax()) {
$nameModules = get_parameter('module_name'); $nameModules = get_parameter('module_name');
$selection_mode = get_parameter('selection_mode', 'common') == 'all'; $selection_mode = get_parameter('selection_mode', 'common') == 'all';
$status_modulo = (int) get_parameter('status_module', -1); $status_modulo = (int) get_parameter('status_module', -1);
$tags_selected = (array) get_parameter('tags', []);
$names = select_agents_for_module_group( $names = select_agents_for_module_group(
$nameModules, $nameModules,
$selection_mode, $selection_mode,
['status' => $status_modulo], [
'status' => $status_modulo,
'tags' => $tags_selected,
],
'AW' 'AW'
); );
@ -311,28 +339,28 @@ if (is_ajax()) {
} }
if (!empty($module_name)) { if (!empty($module_name)) {
$filter .= " AND t1.nombre COLLATE utf8_general_ci LIKE '%$module_name%'"; $filter .= " AND t1.nombre COLLATE utf8_general_ci LIKE '%".$module_name."%'";
} }
// Status selector // Status selector.
if ($status_modulo == AGENT_MODULE_STATUS_NORMAL) { if ($status_modulo == AGENT_MODULE_STATUS_NORMAL) {
// Normal // Normal.
$sql_conditions .= ' estado = 0 AND utimestamp > 0 ) $sql_conditions .= ' estado = 0 AND utimestamp > 0 )
OR (t1.id_tipo_modulo IN(21,22,23,100)) '; OR (t1.id_tipo_modulo IN(21,22,23,100)) ';
} else if ($status_modulo == AGENT_MODULE_STATUS_CRITICAL_BAD) { } else if ($status_modulo == AGENT_MODULE_STATUS_CRITICAL_BAD) {
// Critical // Critical.
$sql_conditions .= ' estado = 1 AND utimestamp > 0 )'; $sql_conditions .= ' estado = 1 AND utimestamp > 0 )';
} else if ($status_modulo == AGENT_MODULE_STATUS_WARNING) { } else if ($status_modulo == AGENT_MODULE_STATUS_WARNING) {
// Warning // Warning.
$sql_conditions .= ' estado = 2 AND utimestamp > 0 )'; $sql_conditions .= ' estado = 2 AND utimestamp > 0 )';
} else if ($status_modulo == AGENT_MODULE_STATUS_NOT_NORMAL) { } else if ($status_modulo == AGENT_MODULE_STATUS_NOT_NORMAL) {
// Not normal // Not normal.
$sql_conditions .= ' estado <> 0)'; $sql_conditions .= ' estado <> 0)';
} else if ($status_modulo == AGENT_MODULE_STATUS_UNKNOWN) { } else if ($status_modulo == AGENT_MODULE_STATUS_UNKNOWN) {
// Unknown // Unknown.
$sql_conditions .= ' estado = 3 AND utimestamp <> 0 )'; $sql_conditions .= ' estado = 3 AND utimestamp <> 0 )';
} else if ($status_modulo == AGENT_MODULE_STATUS_NOT_INIT) { } else if ($status_modulo == AGENT_MODULE_STATUS_NOT_INIT) {
// Not init // Not init.
$sql_conditions .= ' utimestamp = 0 ) $sql_conditions .= ' utimestamp = 0 )
AND t1.id_tipo_modulo NOT IN (21,22,23,100)'; AND t1.id_tipo_modulo NOT IN (21,22,23,100)';
} }
@ -412,7 +440,7 @@ if (is_ajax()) {
foreach ($array_reduced as $server_name => $id_agents) { foreach ($array_reduced as $server_name => $id_agents) {
// Metaconsole db connection // Metaconsole db connection
// $server_name can be the server id (ugly hack, I know) // $server_name can be the server id (ugly hack, I know).
if (is_numeric($server_name)) { if (is_numeric($server_name)) {
$connection = metaconsole_get_connection_by_id($server_name); $connection = metaconsole_get_connection_by_id($server_name);
} else { } else {
@ -423,7 +451,7 @@ if (is_ajax()) {
continue; continue;
} }
// Get agent's modules // Get agent's modules.
$sql = sprintf( $sql = sprintf(
'SELECT t1.id_agente, t1.id_agente_modulo, t1.nombre 'SELECT t1.id_agente, t1.id_agente_modulo, t1.nombre
FROM tagente_modulo t1 %s FROM tagente_modulo t1 %s
@ -451,7 +479,7 @@ if (is_ajax()) {
$modules_aux = []; $modules_aux = [];
foreach ($modules as $key => $module) { foreach ($modules as $key => $module) {
// Don't change this order, is used in the serialization // Don't change this order, is used in the serialization.
$module_data = [ $module_data = [
'id_module' => $module['id_agente_modulo'], 'id_module' => $module['id_agente_modulo'],
'id_agent' => $module['id_agente'], 'id_agent' => $module['id_agente'],
@ -466,7 +494,7 @@ if (is_ajax()) {
$modules = $modules_aux; $modules = $modules_aux;
// Build the next array using the common values // Build the next array using the common values.
if (!empty($last_modules_set)) { if (!empty($last_modules_set)) {
$modules = array_intersect_key($modules, $last_modules_set); $modules = array_intersect_key($modules, $last_modules_set);
@ -480,7 +508,7 @@ if (is_ajax()) {
$last_modules_set = $modules; $last_modules_set = $modules;
// Restore db connection // Restore db connection.
metaconsole_restore_db(); metaconsole_restore_db();
} }
@ -490,7 +518,6 @@ if (is_ajax()) {
$module_data_processed = array_map( $module_data_processed = array_map(
function ($item) { function ($item) {
// data: -> id_module | id_agent | server_name;
return implode('|', $item); return implode('|', $item);
}, },
$module_data $module_data
@ -600,16 +627,16 @@ if (is_ajax()) {
if ($get_agent_modules_json) { if ($get_agent_modules_json) {
$id_agent = (int) get_parameter('id_agent'); $id_agent = (int) get_parameter('id_agent');
// Use -1 as not received // Use -1 as not received.
$disabled = (int) get_parameter('disabled', -1); $disabled = (int) get_parameter('disabled', -1);
$delete_pending = (int) get_parameter('delete_pending', -1); $delete_pending = (int) get_parameter('delete_pending', -1);
// Use 0 as not received // Use 0 as not received.
$id_tipo_modulo = (int) get_parameter('id_tipo_modulo', 0); $id_tipo_modulo = (int) get_parameter('id_tipo_modulo', 0);
$status_modulo = (int) get_parameter('status_module', -1); $status_modulo = (int) get_parameter('status_module', -1);
$tags = (array) get_parameter('tags', []); $tags = (array) get_parameter('tags', []);
// Filter // Filter.
$filter = []; $filter = [];
if ($disabled !== -1) { if ($disabled !== -1) {
$filter['disabled'] = $disabled; $filter['disabled'] = $disabled;
@ -627,30 +654,34 @@ if (is_ajax()) {
$filter = false; $filter = false;
} }
$get_only_string_modules = get_parameter('get_only_string_modules', false); $get_only_string_modules = get_parameter(
'get_only_string_modules',
false
);
if ($get_only_string_modules) { if ($get_only_string_modules) {
$filter['tagente_modulo.id_tipo_modulo IN'] = '(17,23,3,10,33)'; $filter['tagente_modulo.id_tipo_modulo IN'] = '(17,23,3,10,33)';
} }
// Status selector // Status selector.
if ($status_modulo == AGENT_MODULE_STATUS_NORMAL) { if ($status_modulo == AGENT_MODULE_STATUS_NORMAL) {
// Normal // Normal.
$sql_conditions .= ' estado = 0 AND utimestamp > 0 ) $sql_conditions .= ' estado = 0 AND utimestamp > 0 )
OR (tagente_modulo.id_tipo_modulo IN(21,22,23,100)) '; OR (tagente_modulo.id_tipo_modulo IN(21,22,23,100)) ';
} else if ($status_modulo == AGENT_MODULE_STATUS_CRITICAL_BAD) { } else if ($status_modulo == AGENT_MODULE_STATUS_CRITICAL_BAD) {
// Critical // Critical.
$sql_conditions .= ' estado = 1 AND utimestamp > 0 )'; $sql_conditions .= ' estado = 1 AND utimestamp > 0 )';
} else if ($status_modulo == AGENT_MODULE_STATUS_WARNING) { } else if ($status_modulo == AGENT_MODULE_STATUS_WARNING) {
// Warning // Warning.
$sql_conditions .= ' estado = 2 AND utimestamp > 0 )'; $sql_conditions .= ' estado = 2 AND utimestamp > 0 )';
} else if ($status_modulo == AGENT_MODULE_STATUS_NOT_NORMAL) { } else if ($status_modulo == AGENT_MODULE_STATUS_NOT_NORMAL) {
// Not normal // Not normal.
$sql_conditions .= ' estado <> 0 )'; $sql_conditions .= ' estado <> 0 )';
} else if ($status_modulo == AGENT_MODULE_STATUS_UNKNOWN) { } else if ($status_modulo == AGENT_MODULE_STATUS_UNKNOWN) {
// Unknown // Unknown.
$sql_conditions .= ' estado = 3 AND utimestamp <> 0 )'; $sql_conditions .= ' estado = 3 AND utimestamp <> 0 )';
} else if ($status_modulo == AGENT_MODULE_STATUS_NOT_INIT) { } else if ($status_modulo == AGENT_MODULE_STATUS_NOT_INIT) {
// Not init // Not init.
$sql_conditions .= ' utimestamp = 0 ) $sql_conditions .= ' utimestamp = 0 )
AND tagente_modulo.id_tipo_modulo NOT IN (21,22,23,100)'; AND tagente_modulo.id_tipo_modulo NOT IN (21,22,23,100)';
} }
@ -663,7 +694,7 @@ if (is_ajax()) {
$get_id_and_name = (bool) get_parameter('get_id_and_name'); $get_id_and_name = (bool) get_parameter('get_id_and_name');
$get_distinct_name = (bool) get_parameter('get_distinct_name'); $get_distinct_name = (bool) get_parameter('get_distinct_name');
// Fields // Fields.
$fields = '*'; $fields = '*';
if ($get_id_and_name) { if ($get_id_and_name) {
$fields = [ $fields = [
@ -680,7 +711,8 @@ if (is_ajax()) {
$agentName = (string) get_parameter('agent_name', null); $agentName = (string) get_parameter('agent_name', null);
$server_name = (string) get_parameter('server_name', null); $server_name = (string) get_parameter('server_name', null);
$server_id = (int) get_parameter('server_id', 0); $server_id = (int) get_parameter('server_id', 0);
// This will force to get local modules although metaconsole is active, by default get all modules from all nodes // This will force to get local modules although metaconsole is active,
// by default get all modules from all nodes.
$force_local_modules = (int) get_parameter('force_local_modules', 0); $force_local_modules = (int) get_parameter('force_local_modules', 0);
if ($agentName != null) { if ($agentName != null) {
@ -703,7 +735,7 @@ if (is_ajax()) {
} }
if (metaconsole_load_external_db($connection) == NOERR) { if (metaconsole_load_external_db($connection) == NOERR) {
// Get all agents if no agent was given // Get all agents if no agent was given.
if ($id_agent == 0) { if ($id_agent == 0) {
$id_agent = array_keys( $id_agent = array_keys(
agents_get_group_agents( agents_get_group_agents(
@ -717,11 +749,11 @@ if (is_ajax()) {
$agent_modules = agents_get_modules($id_agent, $fields, $filter, $indexed, true, $force_tags); $agent_modules = agents_get_modules($id_agent, $fields, $filter, $indexed, true, $force_tags);
} }
// Restore db connection // Restore db connection.
metaconsole_restore_db(); metaconsole_restore_db();
} }
} else { } else {
// Get all agents if no agent was given // Get all agents if no agent was given.
if ($id_agent == 0) { if ($id_agent == 0) {
$id_agent = array_keys( $id_agent = array_keys(
agents_get_group_agents( agents_get_group_agents(
@ -765,7 +797,7 @@ if (is_ajax()) {
$id_agent = (int) get_parameter('id_agent'); $id_agent = (int) get_parameter('id_agent');
$metaconsole = (bool) get_parameter('metaconsole', false); $metaconsole = (bool) get_parameter('metaconsole', false);
$id_server = (int) get_parameter('id_server', 0); $id_server = (int) get_parameter('id_server', 0);
// Metaconsole // Metaconsole.
$server = null; $server = null;
if ($metaconsole) { if ($metaconsole) {
$filter = []; $filter = [];
@ -802,7 +834,7 @@ if (is_ajax()) {
echo '<strong>'.__('Last remote contact').':</strong> '.human_time_comparation($agent['ultimo_contacto_remoto']).'<br />'; echo '<strong>'.__('Last remote contact').':</strong> '.human_time_comparation($agent['ultimo_contacto_remoto']).'<br />';
if (!$metaconsole) { if (!$metaconsole) {
// Fix : Only show agents with module with tags of user profile // Fix : Only show agents with module with tags of user profile.
$_user_tags = tags_get_user_tags($config['id_user'], 'RR'); $_user_tags = tags_get_user_tags($config['id_user'], 'RR');
$_sql_post = ''; $_sql_post = '';
@ -839,10 +871,10 @@ if (is_ajax()) {
if ($bad_modules === false) { if ($bad_modules === false) {
$size_bad_modules = 0; $size_bad_modules = 0;
} else { } else {
$size_bad_modules = sizeof($bad_modules); $size_bad_modules = count($bad_modules);
} }
// Modules down // Modules down.
if ($size_bad_modules > 0) { if ($size_bad_modules > 0) {
echo '<strong>'.__('Monitors down').':</strong> '.$size_bad_modules.' / '.$total_modules; echo '<strong>'.__('Monitors down').':</strong> '.$size_bad_modules.' / '.$total_modules;
echo '<ul>'; echo '<ul>';
@ -855,7 +887,7 @@ if (is_ajax()) {
echo '</ul>'; echo '</ul>';
} }
// Alerts (if present) // Alerts (if present).
$sql = sprintf( $sql = sprintf(
'SELECT COUNT(talert_template_modules.id) 'SELECT COUNT(talert_template_modules.id)
FROM talert_template_modules, tagente_modulo, tagente FROM talert_template_modules, tagente_modulo, tagente
@ -937,8 +969,8 @@ if (is_ajax()) {
if ($module['id_tipo_modulo'] == 18) { if ($module['id_tipo_modulo'] == 18) {
echo '<strong>'.__('Address').':</strong> '; echo '<strong>'.__('Address').':</strong> ';
// Get the IP/IPs from the module description // Get the IP/IPs from the module description Always the IP
// Always the IP is the last part of the description (after the last space) // is the last part of the description (after the last space).
$ips = explode(' ', $module['descripcion']); $ips = explode(' ', $module['descripcion']);
$ips = $ips[(count($ips) - 1)]; $ips = $ips[(count($ips) - 1)];
@ -948,7 +980,7 @@ if (is_ajax()) {
} else { } else {
echo '<ul style="display:inline;">'; echo '<ul style="display:inline;">';
foreach ($ips as $ip) { foreach ($ips as $ip) {
echo "<li>$ip</li>"; echo '<li>'.$ip.'</li>';
} }
echo '</ul>'; echo '</ul>';
@ -1033,7 +1065,7 @@ $agent_a = check_acl($config['id_user'], 0, 'AR');
$agent_w = check_acl($config['id_user'], 0, 'AW'); $agent_w = check_acl($config['id_user'], 0, 'AW');
$access = ($agent_a == true) ? 'AR' : (($agent_w == true) ? 'AW' : 'AR'); $access = ($agent_a == true) ? 'AR' : (($agent_w == true) ? 'AW' : 'AR');
$agent = db_get_row('tagente', 'id_agente', $id_agente); $agent = db_get_row('tagente', 'id_agente', $id_agente);
// get group for this id_agente // Get group for this id_agente.
$id_grupo = $agent['id_grupo']; $id_grupo = $agent['id_grupo'];
$is_extra = enterprise_hook('policies_is_agent_extra_policy', [$id_agente]); $is_extra = enterprise_hook('policies_is_agent_extra_policy', [$id_agente]);
@ -1053,7 +1085,7 @@ if (! check_acl_one_of_groups($config['id_user'], $all_groups, 'AR') && ! check_
return; return;
} }
// Check for Network FLAG change request // Check for Network FLAG change request.
$flag = get_parameter('flag', ''); $flag = get_parameter('flag', '');
if ($flag !== '') { if ($flag !== '') {
if ($flag == 1 && check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) { if ($flag == 1 && check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
@ -1067,7 +1099,7 @@ if ($flag !== '') {
} }
} }
// Check for Network FLAG change request // Check for Network FLAG change request.
$flag_agent = get_parameter('flag_agent', ''); $flag_agent = get_parameter('flag_agent', '');
if ($flag_agent !== '') { if ($flag_agent !== '') {
if ($flag_agent == 1 && check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) { if ($flag_agent == 1 && check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
@ -1082,10 +1114,10 @@ if ($agent['icon_path']) {
} }
// -------------Code for the tabs in the header of agent page----------- // Code for the tabs in the header of agent page.
$tab = get_parameter('tab', 'main'); $tab = get_parameter('tab', 'main');
// Manage tab // Manage tab.
$managetab = []; $managetab = [];
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') || $is_extra) { if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') || $is_extra) {
@ -1101,7 +1133,7 @@ if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') || $is_extra)
} }
// Main tab // Main tab.
$maintab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'">'.html_print_image('images/agent_mc.png', true, ['title' => __('Main')]).'</a>'; $maintab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'">'.html_print_image('images/agent_mc.png', true, ['title' => __('Main')]).'</a>';
if ($tab == 'main') { if ($tab == 'main') {
@ -1112,7 +1144,7 @@ if ($tab == 'main') {
// Alert tab // Alert tab.
$alerttab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'&tab=alert">'.html_print_image('images/op_alerts.png', true, ['title' => __('Alerts')]).'</a>'; $alerttab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'&tab=alert">'.html_print_image('images/op_alerts.png', true, ['title' => __('Alerts')]).'</a>';
if ($tab == 'alert') { if ($tab == 'alert') {
@ -1121,27 +1153,27 @@ if ($tab == 'alert') {
$alerttab['active'] = false; $alerttab['active'] = false;
} }
// Inventory // Inventory.
$inventorytab = enterprise_hook('inventory_tab'); $inventorytab = enterprise_hook('inventory_tab');
if ($inventorytab == -1) { if ($inventorytab == -1) {
$inventorytab = ''; $inventorytab = '';
} }
// Collection // Collection.
$collectiontab = enterprise_hook('collection_tab'); $collectiontab = enterprise_hook('collection_tab');
if ($collectiontab == -1) { if ($collectiontab == -1) {
$collectiontab = ''; $collectiontab = '';
} }
// Policy // Policy.
$policyTab = enterprise_hook('policy_tab'); $policyTab = enterprise_hook('policy_tab');
if ($policyTab == -1) { if ($policyTab == -1) {
$policyTab = ''; $policyTab = '';
} }
// WUX Console // WUX Console.
$modules_wux = enterprise_hook('get_wux_modules', [$id_agente]); $modules_wux = enterprise_hook('get_wux_modules', [$id_agente]);
if ($modules_wux) { if ($modules_wux) {
$wux_console_tab = enterprise_hook('wux_console_tab'); $wux_console_tab = enterprise_hook('wux_console_tab');
@ -1158,7 +1190,7 @@ if ($url_route_analyzer) {
} }
} }
// GIS tab // GIS tab.
$gistab = []; $gistab = [];
if ($config['activate_gis']) { if ($config['activate_gis']) {
$gistab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=gis&id_agente='.$id_agente.'">'.html_print_image('images/op_gis.png', true, [ 'title' => __('GIS data')]).'</a>'; $gistab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=gis&id_agente='.$id_agente.'">'.html_print_image('images/op_gis.png', true, [ 'title' => __('GIS data')]).'</a>';
@ -1171,7 +1203,7 @@ if ($config['activate_gis']) {
} }
// Incident tab // Incident tab.
$total_incidents = agents_get_count_incidents($id_agente); $total_incidents = agents_get_count_incidents($id_agente);
if ($total_incidents > 0) { if ($total_incidents > 0) {
$incidenttab['text'] = '<a href="index.php?sec=gagente&amp;sec2=operation/agentes/ver_agente&tab=incident&id_agente='.$id_agente.'">'.html_print_image('images/book_edit.png', true, ['title' => __('Incidents')]).'</a>'; $incidenttab['text'] = '<a href="index.php?sec=gagente&amp;sec2=operation/agentes/ver_agente&tab=incident&id_agente='.$id_agente.'">'.html_print_image('images/book_edit.png', true, ['title' => __('Incidents')]).'</a>';
@ -1184,7 +1216,7 @@ if ($total_incidents > 0) {
} }
// Url address tab // Url address tab.
if ($agent['url_address'] != '') { if ($agent['url_address'] != '') {
$urladdresstab['text'] = '<a href="index.php?sec=gagente&amp;sec2=operation/agentes/ver_agente&tab=url_address&id_agente='.$id_agente.'">'.html_print_image('images/link.png', true, ['title' => __('Url address')]).'</a>'; $urladdresstab['text'] = '<a href="index.php?sec=gagente&amp;sec2=operation/agentes/ver_agente&tab=url_address&id_agente='.$id_agente.'">'.html_print_image('images/link.png', true, ['title' => __('Url address')]).'</a>';
} }
@ -1196,7 +1228,7 @@ if ($tab == 'url_address') {
} }
// Custom fields tab // Custom fields tab.
$custom_fields['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=custom_fields&id_agente='.$id_agente.'">'.html_print_image('images/custom_field.png', true, ['title' => __('Custom fields')]).'</a>'; $custom_fields['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=custom_fields&id_agente='.$id_agente.'">'.html_print_image('images/custom_field.png', true, ['title' => __('Custom fields')]).'</a>';
if ($tab == 'custom_fields') { if ($tab == 'custom_fields') {
$custom_fields['active'] = true; $custom_fields['active'] = true;
@ -1205,7 +1237,7 @@ if ($tab == 'custom_fields') {
} }
// Graphs tab // Graphs tab.
$graphs['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=graphs&id_agente='.$id_agente.'">'.html_print_image('images/chart.png', true, ['title' => __('Graphs')]).'</a>'; $graphs['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=graphs&id_agente='.$id_agente.'">'.html_print_image('images/chart.png', true, ['title' => __('Graphs')]).'</a>';
if ($tab == 'graphs') { if ($tab == 'graphs') {
$graphs['active'] = true; $graphs['active'] = true;
@ -1214,7 +1246,7 @@ if ($tab == 'graphs') {
} }
// Log viewer tab // Log viewer tab.
if (enterprise_installed() && $config['log_collector']) { if (enterprise_installed() && $config['log_collector']) {
$is_windows = strtoupper(substr(PHP_OS, 0, 3)) == 'WIN'; $is_windows = strtoupper(substr(PHP_OS, 0, 3)) == 'WIN';
$agent_has_logs = (bool) db_get_value('id_agent', 'tagent_module_log', 'id_agent', $id_agente); $agent_has_logs = (bool) db_get_value('id_agent', 'tagent_module_log', 'id_agent', $id_agente);
@ -1226,7 +1258,7 @@ if (enterprise_installed() && $config['log_collector']) {
} }
} }
// eHorus tab // EHorus tab.
if ($config['ehorus_enabled'] && !empty($config['ehorus_custom_field']) if ($config['ehorus_enabled'] && !empty($config['ehorus_custom_field'])
&& (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') || is_user_admin($config['id_user'])) && (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') || is_user_admin($config['id_user']))
) { ) {
@ -1235,7 +1267,7 @@ if ($config['ehorus_enabled'] && !empty($config['ehorus_custom_field'])
$tab_url = 'index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=ehorus&id_agente='.$id_agente; $tab_url = 'index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=ehorus&id_agente='.$id_agente;
$ehorus_tab['text'] = '<a href="'.$tab_url.'" class="ehorus_tab">'.html_print_image('images/ehorus/ehorus.png', true, [ 'title' => __('eHorus')]).'</a>'; $ehorus_tab['text'] = '<a href="'.$tab_url.'" class="ehorus_tab">'.html_print_image('images/ehorus/ehorus.png', true, [ 'title' => __('eHorus')]).'</a>';
// Hidden subtab layer // Hidden subtab layer.
$ehorus_tab['sub_menu'] = '<ul class="mn subsubmenu" style="float:none;">'; $ehorus_tab['sub_menu'] = '<ul class="mn subsubmenu" style="float:none;">';
$ehorus_tab['sub_menu'] .= '<a class="tab_terminal" href="'.$tab_url.'&client_tab=terminal">'; $ehorus_tab['sub_menu'] .= '<a class="tab_terminal" href="'.$tab_url.'&client_tab=terminal">';
$ehorus_tab['sub_menu'] .= '<li class="nomn tab_godmode" style="text-align: center;">'.html_print_image('images/ehorus/terminal.png', true, [ 'title' => __('Terminal')]); $ehorus_tab['sub_menu'] .= '<li class="nomn tab_godmode" style="text-align: center;">'.html_print_image('images/ehorus/terminal.png', true, [ 'title' => __('Terminal')]);
@ -1279,7 +1311,7 @@ $onheader = [
]; ];
// Added after it exists // Added after it exists
// If the agent has incidents associated // If the agent has incidents associated.
if ($total_incidents) { if ($total_incidents) {
$onheader['incident'] = $incidenttab; $onheader['incident'] = $incidenttab;
} }
@ -1288,23 +1320,23 @@ if ($agent['url_address'] != '') {
$onheader['url_address'] = $urladdresstab; $onheader['url_address'] = $urladdresstab;
} }
// If the log viewer tab exists // If the log viewer tab exists.
if (isset($log_viewer_tab) && !empty($log_viewer_tab)) { if (isset($log_viewer_tab) && !empty($log_viewer_tab)) {
$onheader['log_viewer'] = $log_viewer_tab; $onheader['log_viewer'] = $log_viewer_tab;
} }
// If the ehorus id exists // If the ehorus id exists.
if (isset($ehorus_tab) && !empty($ehorus_tab)) { if (isset($ehorus_tab) && !empty($ehorus_tab)) {
$onheader['ehorus'] = $ehorus_tab; $onheader['ehorus'] = $ehorus_tab;
} }
// Tabs for extensions // Tabs for extensions.
foreach ($config['extensions'] as $extension) { foreach ($config['extensions'] as $extension) {
if (isset($extension['extension_ope_tab']) && !isset($extension['extension_god_tab'])) { if (isset($extension['extension_ope_tab']) && !isset($extension['extension_god_tab'])) {
if (check_acl_one_of_groups($config['id_user'], $all_groups, $extension['extension_ope_tab']['acl'])) { if (check_acl_one_of_groups($config['id_user'], $all_groups, $extension['extension_ope_tab']['acl'])) {
// VMware extension is only available for VMware OS // VMware extension is only available for VMware OS.
if ($extension['extension_ope_tab']['id'] === 'vmware_manager') { if ($extension['extension_ope_tab']['id'] === 'vmware_manager') {
// Check if OS is vmware // Check if OS is vmware.
$id_remote_field = db_get_value( $id_remote_field = db_get_value(
'id_field', 'id_field',
'tagent_custom_fields', 'tagent_custom_fields',
@ -1326,13 +1358,13 @@ foreach ($config['extensions'] as $extension) {
} }
} }
// RHEV extension is only available for RHEV Virtual Machines // RHEV extension is only available for RHEV Virtual Machines.
if ($extension['extension_ope_tab']['id'] === 'rhev_manager') { if ($extension['extension_ope_tab']['id'] === 'rhev_manager') {
// Get id for remote field "rhev_type" // Get id for remote field "rhev_type".
$id_remote_field = db_get_value('id_field', 'tagent_custom_fields', 'name', 'rhev_type'); $id_remote_field = db_get_value('id_field', 'tagent_custom_fields', 'name', 'rhev_type');
// Get rhev type for this agent // Get rhev type for this agent.
$rhev_type = db_get_value_filter('description', 'tagent_custom_data', ['id_field' => $id_remote_field, 'id_agent' => $agent['id_agente']]); $rhev_type = db_get_value_filter('description', 'tagent_custom_data', ['id_field' => $id_remote_field, 'id_agent' => $agent['id_agente']]);
// Check if rhev type is a vm // Check if rhev type is a vm.
if ($rhev_type != 'vm') { if ($rhev_type != 'vm') {
continue; continue;
} }

View File

@ -1,16 +1,18 @@
<?php <?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.
*/
// 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.
if (check_acl($id_user, 0, 'ER')) { if (check_acl($id_user, 0, 'ER')) {
$groups = users_get_groups($id_user, 'ER'); $groups = users_get_groups($id_user, 'ER');
} else if (check_acl($id_user, 0, 'EW')) { } else if (check_acl($id_user, 0, 'EW')) {
@ -19,7 +21,6 @@ if (check_acl($id_user, 0, 'ER')) {
$groups = users_get_groups($id_user, 'EM'); $groups = users_get_groups($id_user, 'EM');
} }
$propagate = db_get_value('propagate', 'tgrupo', 'id_grupo', $id_group); $propagate = db_get_value('propagate', 'tgrupo', 'id_grupo', $id_group);
if ($id_group > 0) { if ($id_group > 0) {
@ -41,24 +42,67 @@ if ($id_group > 0) {
$childrens_ids = array_keys($groups); $childrens_ids = array_keys($groups);
} }
// Group selection if (!isset($date_from)) {
$date_from = '';
}
if (!isset($date_to)) {
$date_to = '';
}
if (($date_from === '') && ($date_to === '')) {
if ($event_view_hr > 0) {
$filter_resume['hours_max'] = $event_view_hr;
$unixtime = (get_system_time() - ($event_view_hr * SECONDS_1HOUR));
$sql_post .= ' AND (utimestamp > '.$unixtime.')';
}
} else {
// Some of this values will have the user's timezone,
// so we need to reverse it to the system's timezone
// before using it into the db.
$fixed_offset = get_fixed_offset();
if (!empty($date_from)) {
if (empty($time_from)) {
$time_from = '00:00:00';
}
$utimestamp_from = (strtotime($date_from.' '.$time_from) - $fixed_offset);
$filter_resume['time_from'] = date(DATE_FORMAT.' '.TIME_FORMAT, $utimestamp_from);
$sql_post .= ' AND (utimestamp >= '.$utimestamp_from.')';
}
if (!empty($date_to)) {
if (empty($time_to)) {
$time_to = '23:59:59';
}
$utimestamp_to = (strtotime($date_to.' '.$time_to) - $fixed_offset);
$filter_resume['time_to'] = date(DATE_FORMAT.' '.TIME_FORMAT, $utimestamp_to);
$sql_post .= ' AND (utimestamp <= '.$utimestamp_to.')';
}
}
// Group selection.
if ($id_group > 0 && in_array($id_group, array_keys($groups))) { if ($id_group > 0 && in_array($id_group, array_keys($groups))) {
if ($propagate) { if ($propagate) {
$childrens_str = implode(',', $childrens_ids); $childrens_str = implode(',', $childrens_ids);
$sql_post = " AND (id_grupo IN ($childrens_str) OR id_group IN ($childrens_str))"; $sql_post .= " AND (id_grupo IN ($childrens_str) OR id_group IN ($childrens_str))";
} else { } else {
// If a group is selected and it's in the groups allowed // If a group is selected and it's in the groups allowed.
$sql_post = " AND (id_grupo = $id_group OR id_group = $id_group)"; $sql_post .= " AND (id_grupo = $id_group OR id_group = $id_group)";
} }
} else { } else {
$sql_post = sprintf( if (!users_is_admin() && !users_can_manage_group_all('ER')) {
$sql_post .= sprintf(
' AND (id_grupo IN (%s) OR id_group IN (%s)) ', ' AND (id_grupo IN (%s) OR id_group IN (%s)) ',
implode(',', array_keys($groups)), implode(',', array_keys($groups)),
implode(',', array_keys($groups)) implode(',', array_keys($groups))
); );
}
} }
// Skip system messages if user is not PM // Skip system messages if user is not PM.
if (!check_acl($id_user, 0, 'PM')) { if (!check_acl($id_user, 0, 'PM')) {
$sql_post .= ' AND id_grupo != 0'; $sql_post .= ' AND id_grupo != 0';
} }
@ -164,13 +208,13 @@ if ($source != '') {
$sql_post .= " AND source LIKE '%$source%'"; $sql_post .= " AND source LIKE '%$source%'";
} }
// In metaconsole mode the agent search is performed by name // In metaconsole mode the agent search is performed by name.
if ($meta) { if ($meta) {
$text_agent = get_parameter('text_agent', ''); $text_agent = get_parameter('text_agent', '');
$id_agent = get_parameter('id_agent', 0); $id_agent = get_parameter('id_agent', 0);
if ($id_agent) { if ($id_agent) {
$sql_post .= ' AND agent_name IN (SELECT nombre FROM tmetaconsole_agent WHERE $sql_post .= ' AND agent_name IN (SELECT nombre FROM tmetaconsole_agent WHERE
id_tagente ='.$id_agent." AND alias LIKE '".io_safe_input($text_agent)."')"; id_tagente ='.$id_agent." AND alias LIKE '".$text_agent."')";
$filter_resume['agent'] = $text_agent; $filter_resume['agent'] = $text_agent;
} }
} else { } else {
@ -179,7 +223,7 @@ if ($meta) {
break; break;
case -1: case -1:
// Agent doesnt exist. No results will returned // Agent doesnt exist. No results will returned.
$sql_post .= ' AND 1 = 0'; $sql_post .= ' AND 1 = 0';
break; break;
@ -192,9 +236,7 @@ if ($meta) {
if ($meta) { if (!$meta) {
// There is another filter.
} else {
if (!empty($text_module)) { if (!empty($text_module)) {
$filter_resume['module'] = $text_module; $filter_resume['module'] = $text_module;
$sql_post .= " AND id_agentmodule IN ( $sql_post .= " AND id_agentmodule IN (
@ -210,48 +252,7 @@ if ($id_user_ack != '0') {
$sql_post .= " AND id_usuario = '".$id_user_ack."'"; $sql_post .= " AND id_usuario = '".$id_user_ack."'";
} }
if (!isset($date_from)) { // Search by tag.
$date_from = '';
}
if (!isset($date_to)) {
$date_to = '';
}
if (($date_from == '') && ($date_to == '')) {
if ($event_view_hr > 0) {
$filter_resume['hours_max'] = $event_view_hr;
$unixtime = (get_system_time() - ($event_view_hr * SECONDS_1HOUR));
$sql_post .= ' AND (utimestamp > '.$unixtime.')';
}
} else {
// Some of this values will have the user's timezone,
// so we need to reverse it to the system's timezone
// before using it into the db
$fixed_offset = get_fixed_offset();
if (!empty($date_from)) {
if (empty($time_from)) {
$time_from = '00:00:00';
}
$utimestamp_from = (strtotime($date_from.' '.$time_from) - $fixed_offset);
$filter_resume['time_from'] = date(DATE_FORMAT.' '.TIME_FORMAT, $utimestamp_from);
$sql_post .= ' AND (utimestamp >= '.$utimestamp_from.')';
}
if (!empty($date_to)) {
if (empty($time_to)) {
$time_to = '23:59:59';
}
$utimestamp_to = (strtotime($date_to.' '.$time_to) - $fixed_offset);
$filter_resume['time_to'] = date(DATE_FORMAT.' '.TIME_FORMAT, $utimestamp_to);
$sql_post .= ' AND (utimestamp <= '.$utimestamp_to.')';
}
}
// Search by tag
if (!empty($tag_with)) { if (!empty($tag_with)) {
if (!users_is_admin()) { if (!users_is_admin()) {
$user_tags = array_flip(tags_get_tags_for_module_search()); $user_tags = array_flip(tags_get_tags_for_module_search());
@ -305,7 +306,7 @@ if (!empty($tag_without)) {
$sql_post .= ' ) '; $sql_post .= ' ) ';
} }
// Filter/Only alerts // Filter/Only alerts.
if (isset($filter_only_alert)) { if (isset($filter_only_alert)) {
if ($filter_only_alert == 0) { if ($filter_only_alert == 0) {
$filter_resume['alerts'] = $filter_only_alert; $filter_resume['alerts'] = $filter_only_alert;
@ -316,7 +317,7 @@ if (isset($filter_only_alert)) {
} }
} }
// Tags ACLS // Tags ACLS.
if ($id_group > 0 && in_array($id_group, array_keys($groups))) { if ($id_group > 0 && in_array($id_group, array_keys($groups))) {
$group_array = (array) $id_group; $group_array = (array) $id_group;
} else { } else {
@ -335,7 +336,7 @@ if (check_acl($id_user, 0, 'ER')) {
[], [],
true true
); );
// FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)" // FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)".
} else if (check_acl($id_user, 0, 'EW')) { } else if (check_acl($id_user, 0, 'EW')) {
$tags_acls_condition = tags_get_acl_tags( $tags_acls_condition = tags_get_acl_tags(
$id_user, $id_user,
@ -348,7 +349,7 @@ if (check_acl($id_user, 0, 'ER')) {
[], [],
true true
); );
// FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)" // FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)".
} else if (check_acl($id_user, 0, 'EM')) { } else if (check_acl($id_user, 0, 'EM')) {
$tags_acls_condition = tags_get_acl_tags( $tags_acls_condition = tags_get_acl_tags(
$id_user, $id_user,
@ -361,14 +362,14 @@ if (check_acl($id_user, 0, 'ER')) {
[], [],
true true
); );
// FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)" // FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)".
} }
if (($tags_acls_condition != ERR_WRONG_PARAMETERS) && ($tags_acls_condition != ERR_ACL) && ($tags_acls_condition != -110000)) { if (($tags_acls_condition != ERR_WRONG_PARAMETERS) && ($tags_acls_condition != ERR_ACL) && ($tags_acls_condition != -110000)) {
$sql_post .= $tags_acls_condition; $sql_post .= $tags_acls_condition;
} }
// Metaconsole fitlers // Metaconsole fitlers.
if ($meta) { if ($meta) {
if ($server_id) { if ($server_id) {
$filter_resume['server'] = $server_id; $filter_resume['server'] = $server_id;

View File

@ -983,7 +983,11 @@ if ($group_rep == 2) {
html_print_button(__('Execute event response'), 'submit_event_response', false, 'execute_event_response(true);', 'class="sub next"'); html_print_button(__('Execute event response'), 'submit_event_response', false, 'execute_event_response(true);', 'class="sub next"');
echo "<span id='response_loading_dialog' style='display:none'>".html_print_image('images/spinner.gif', true).'</span>'; echo "<span id='response_loading_dialog' style='display:none'>".html_print_image('images/spinner.gif', true).'</span>';
echo '</form>'; echo '</form>';
echo '<span id="max_custom_event_resp_msg" style="display:none; color:#FC4444; line-height: 200%;">'.__('A maximum of 10 event custom responses can be selected').'</span>'; echo '<span id="max_custom_event_resp_msg" style="display:none; color:#FC4444; line-height: 200%;">';
echo __(
'A maximum of %s event custom responses can be selected',
$config['max_execution_event_response']
).'</span>';
echo '</div>'; echo '</div>';
} }
} }
@ -1012,7 +1016,7 @@ if ($group_rep == 2) {
var total_checked = $(".chk_val:checked").length; var total_checked = $(".chk_val:checked").length;
// Limit number of events to apply custom responses to for performance reasons // Limit number of events to apply custom responses to for performance reasons
if (total_checked > 10) { if (total_checked > <?php echo $config['max_execution_event_response']; ?> ) {
$('#max_custom_event_resp_msg').show(); $('#max_custom_event_resp_msg').show();
return; return;
} }
@ -1022,18 +1026,22 @@ if ($group_rep == 2) {
$('#response_loading_dialog').show(function() { $('#response_loading_dialog').show(function() {
$(".chk_val").each(function() { $(".chk_val").each(function() {
if ($(this).is(":checked")) { if ($(this).is(":checked")) {
//var server_id = $('#hidden-server_id_'+).
event_id = $(this).val(); event_id = $(this).val();
server_id = $('#hidden-server_id_'+event_id).val(); server_id = $('#hidden-server_id_'+event_id).val();
response['target'] = get_response_target(
response['target'] = get_response_target(event_id, response_id, server_id); event_id,
response_id,
server_id
);
if (total_checked-1 === counter) end=1; if (total_checked-1 === counter) end=1;
show_massive_response_dialog(
show_massive_response_dialog(event_id, response_id, response, counter, end); event_id,
response_id,
response,
counter,
end
);
counter++; counter++;
} }
}); });
@ -1087,4 +1095,3 @@ if ($group_rep == 2) {
echo '</div>'; echo '</div>';
} }

View File

@ -681,7 +681,7 @@ if (empty($traps)) {
ui_require_css_file('pandora_enterprise', ENTERPRISE_DIR.'/include/styles/'); ui_require_css_file('pandora_enterprise', ENTERPRISE_DIR.'/include/styles/');
ui_require_css_file('pandora_dashboard', ENTERPRISE_DIR.'/include/styles/'); ui_require_css_file('pandora_dashboard', ENTERPRISE_DIR.'/include/styles/');
ui_require_css_file('cluetip','include/styles/js/'); ui_require_css_file('cluetip', 'include/styles/js/');
ui_require_jquery_file('countdown'); ui_require_jquery_file('countdown');
ui_require_javascript_file('pandora_dashboard', ENTERPRISE_DIR.'/include/javascript/'); ui_require_javascript_file('pandora_dashboard', ENTERPRISE_DIR.'/include/javascript/');

View File

@ -11,7 +11,6 @@
// 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.
ui_require_css_file('tree'); ui_require_css_file('tree');
ui_require_css_file('fixed-bottom-box'); ui_require_css_file('fixed-bottom-box');

View File

@ -1,17 +1,32 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @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,38 +44,54 @@ 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;
} }
// Header // Header.
if ($meta) { if ($meta) {
user_meta_print_header(); user_meta_print_header();
$url = 'index.php?sec=advanced&amp;sec2=advanced/users_setup&amp;tab=user_edit'; $url = 'index.php?sec=advanced&amp;sec2=advanced/users_setup&amp;tab=user_edit';
} else { } else {
ui_print_page_header(__('User detail editor'), 'images/op_workspace.png', false, '', false, ''); ui_print_page_header(
__('User detail editor'),
'images/op_workspace.png',
false,
'',
false,
''
);
$url = 'index.php?sec=workspace&amp;sec2=operation/users/user_edit'; $url = 'index.php?sec=workspace&amp;sec2=operation/users/user_edit';
} }
// Update user info // Update user info.
if (isset($_GET['modified']) && !$view_mode) { if (isset($_GET['modified']) && !$view_mode) {
if (html_print_csrf_error()) { if (html_print_csrf_error()) {
return; return;
@ -78,7 +109,7 @@ if (isset($_GET['modified']) && !$view_mode) {
$upd_info['language'] = get_parameter_post('language', $user_info['language']); $upd_info['language'] = get_parameter_post('language', $user_info['language']);
$upd_info['timezone'] = get_parameter_post('timezone', ''); $upd_info['timezone'] = get_parameter_post('timezone', '');
$upd_info['id_skin'] = get_parameter('skin', $user_info['id_skin']); $upd_info['id_skin'] = get_parameter('skin', $user_info['id_skin']);
$upd_info['id_filter'] = get_parameter('event_filter', null); $upd_info['default_event_filter'] = get_parameter('event_filter', null);
$upd_info['block_size'] = get_parameter('block_size', $config['block_size']); $upd_info['block_size'] = get_parameter('block_size', $config['block_size']);
$upd_info['firstname'] = get_parameter('newsletter_reminder', $user_info['first_name']); $upd_info['firstname'] = get_parameter('newsletter_reminder', $user_info['first_name']);
$default_block_size = get_parameter('default_block_size', 0); $default_block_size = get_parameter('default_block_size', 0);
@ -91,7 +122,7 @@ if (isset($_GET['modified']) && !$view_mode) {
$dashboard = get_parameter('dashboard', ''); $dashboard = get_parameter('dashboard', '');
$visual_console = get_parameter('visual_console', ''); $visual_console = get_parameter('visual_console', '');
// save autorefresh list // Save autorefresh list.
$autorefresh_list = get_parameter_post('autorefresh_list'); $autorefresh_list = get_parameter_post('autorefresh_list');
if (($autorefresh_list[0] === '') || ($autorefresh_list[0] === '0')) { if (($autorefresh_list[0] === '') || ($autorefresh_list[0] === '0')) {
$upd_info['autorefresh_white_list'] = ''; $upd_info['autorefresh_white_list'] = '';
@ -105,7 +136,10 @@ if (isset($_GET['modified']) && !$view_mode) {
$section = io_safe_output($upd_info['section']); $section = io_safe_output($upd_info['section']);
if (($section == 'Event list') || ($section == 'Group view') || ($section == 'Alert detail') || ($section == 'Tactical view') || ($section == 'Default')) { if (($section == 'Event list') || ($section == 'Group view')
|| ($section == 'Alert detail') || ($section == 'Tactical view')
|| ($section == 'Default')
) {
$upd_info['data_section'] = ''; $upd_info['data_section'] = '';
} else if ($section == 'Dashboard') { } else if ($section == 'Dashboard') {
$upd_info['data_section'] = $dashboard; $upd_info['data_section'] = $dashboard;
@ -115,7 +149,9 @@ if (isset($_GET['modified']) && !$view_mode) {
if (!empty($password_new)) { if (!empty($password_new)) {
if ($config['user_can_update_password'] && $password_confirm == $password_new) { if ($config['user_can_update_password'] && $password_confirm == $password_new) {
if ((!$is_admin || $config['enable_pass_policy_admin']) && $config['enable_pass_policy']) { if ((!$is_admin || $config['enable_pass_policy_admin'])
&& $config['enable_pass_policy']
) {
$pass_ok = login_validate_pass($password_new, $id, true); $pass_ok = login_validate_pass($password_new, $id, true);
if ($pass_ok != 1) { if ($pass_ok != 1) {
ui_print_error_message($pass_ok); ui_print_error_message($pass_ok);
@ -124,21 +160,11 @@ if (isset($_GET['modified']) && !$view_mode) {
if ($return) { if ($return) {
$return2 = save_pass_history($id, $password_new); $return2 = save_pass_history($id, $password_new);
} }
/*
ui_print_result_message ($return,
__('Password successfully updated'),
__('Error updating passwords: %s', $config['auth_error']));*/
} }
} else { } else {
$return = update_user_password($id, $password_new); $return = update_user_password($id, $password_new);
/*
ui_print_result_message ($return,
__('Password successfully updated'),
__('Error updating passwords: %s', $config['auth_error']));*/
} }
} else if ($password_new !== 'NON-INIT') { } else if ($password_new !== 'NON-INIT') {
// ui_print_error_message (__('Passwords didn\'t match or other problem encountered while updating passwords'));
$error_msg = __('Passwords didn\'t match or other problem encountered while updating passwords'); $error_msg = __('Passwords didn\'t match or other problem encountered while updating passwords');
} }
} else if (empty($password_new) && empty($password_confirm)) { } else if (empty($password_new) && empty($password_confirm)) {
@ -147,16 +173,18 @@ if (isset($_GET['modified']) && !$view_mode) {
$return = false; $return = false;
} }
// No need to display "error" here, because when no update is needed (no changes in data) // No need to display "error" here, because when no update is needed
// SQL function returns 0 (FALSE), but is not an error, just no change. Previous error // (no changes in data) SQL function returns 0 (FALSE), but is not an error,
// message could be confussing to the user. // just no change. Previous error message could be confussing to the user.
if ($return) { if ($return) {
if (!empty($password_new) && !empty($password_confirm)) { if (!empty($password_new) && !empty($password_confirm)) {
$success_msg = __('Password successfully updated'); $success_msg = __('Password successfully updated');
} }
// if info is valid then proceed with update // If info is valid then proceed with update.
if ((filter_var($upd_info['email'], FILTER_VALIDATE_EMAIL) || $upd_info['email'] == '') && (preg_match('/^[0-9- ]+$/D', $upd_info['phone']) || $upd_info['phone'] == '')) { if ((filter_var($upd_info['email'], FILTER_VALIDATE_EMAIL) || $upd_info['email'] == '')
&& (preg_match('/^[0-9- ]+$/D', $upd_info['phone']) || $upd_info['phone'] == '')
) {
$return_update_user = update_user($id, $upd_info); $return_update_user = update_user($id, $upd_info);
if ($return_update_user === false) { if ($return_update_user === false) {
@ -172,7 +200,12 @@ if (isset($_GET['modified']) && !$view_mode) {
} }
} }
ui_print_result_message($return, $success_msg, $error_msg, $user_auth_error); ui_print_result_message(
$return,
$success_msg,
$error_msg,
$user_auth_error
);
} else if (!filter_var($upd_info['email'], FILTER_VALIDATE_EMAIL)) { } else if (!filter_var($upd_info['email'], FILTER_VALIDATE_EMAIL)) {
ui_print_error_message(__('Please enter a valid email')); ui_print_error_message(__('Please enter a valid email'));
} else if (!preg_match('/^[0-9- ]+$/D', $upd_info['phone'])) { } else if (!preg_match('/^[0-9- ]+$/D', $upd_info['phone'])) {
@ -187,11 +220,16 @@ if (isset($_GET['modified']) && !$view_mode) {
$user_auth_error = $config['auth_error']; $user_auth_error = $config['auth_error'];
ui_print_result_message($return, $success_msg, $error_msg, $user_auth_error); ui_print_result_message(
$return,
$success_msg,
$error_msg,
$user_auth_error
);
} }
} }
// Prints action status for current message // Prints action status for current message.
if ($status != -1) { if ($status != -1) {
ui_print_result_message( ui_print_result_message(
$status, $status,
@ -221,7 +259,20 @@ $data = [];
$data[0] = '<span style="width:50%;float:left;"><b>'.__('User ID').'</b></span>'; $data[0] = '<span style="width:50%;float:left;"><b>'.__('User ID').'</b></span>';
$data[0] .= $jump.'<span style="font-weight: normal;width:20%;float:left;">'.$id.'</span>'; $data[0] .= $jump.'<span style="font-weight: normal;width:20%;float:left;">'.$id.'</span>';
$data[1] = '<span style="width:40%;float:left;line-height:20px;"><b>'.__('Full (display) name').'</b></span>'; $data[1] = '<span style="width:40%;float:left;line-height:20px;"><b>'.__('Full (display) name').'</b></span>';
$data[1] .= $jump.'<span style="width:20%;float:left;line-height:20px;">'.html_print_input_text_extended('fullname', $user_info['fullname'], 'fullname', '', 20, 100, $view_mode, '', 'class="input"', true).'</span>'; $data[1] .= $jump.'<span style="width:20%;float:left;line-height:20px;">';
$data[1] .= html_print_input_text_extended(
'fullname',
$user_info['fullname'],
'fullname',
'',
20,
100,
$view_mode,
'',
'class="input"',
true
).'</span>';
// Show "Picture" (in future versions, why not, allow users to upload it's own avatar here. // Show "Picture" (in future versions, why not, allow users to upload it's own avatar here.
if (is_user_admin($id)) { if (is_user_admin($id)) {
$data[2] = html_print_image('images/people_1.png', true); $data[2] = html_print_image('images/people_1.png', true);
@ -368,7 +419,7 @@ if (!$meta) {
// User only can change skins if has more than one group // User only can change skins if has more than one group.
$data[1] = ''; $data[1] = '';
if (function_exists('skins_print_select')) { if (function_exists('skins_print_select')) {
if (count($usr_groups) > 1) { if (count($usr_groups) > 1) {
@ -388,18 +439,21 @@ $table->rowclass[] = '';
$table->rowstyle[] = 'font-weight: bold;'; $table->rowstyle[] = 'font-weight: bold;';
$table->data[] = $data; $table->data[] = $data;
// Double auth // Double auth.
$double_auth_enabled = (bool) db_get_value('id', 'tuser_double_auth', 'id_user', $config['id_user']); $double_auth_enabled = (bool) db_get_value('id', 'tuser_double_auth', 'id_user', $config['id_user']);
$data = []; $data = [];
$data[0] = '<span style="width:50%;float:left;">'.__('Double authentication').'</span>'; if ($config['double_auth_enabled']) {
$data[0] .= $jump; $data[0] = '<span style="width:50%;float:left;">'.__('Double authentication').'</span>';
$data[0] .= '<span style="width:20%;float:left;line-height:20px;">'.html_print_checkbox('double_auth', 1, $double_auth_enabled, true).'</span>'; $data[0] .= $jump;
$data[0] .= '<span style="width:20%;float:left;line-height:20px;">'.html_print_checkbox('double_auth', 1, $double_auth_enabled, true).'</span>';
}
if ($double_auth_enabled) { if ($double_auth_enabled) {
$data[0] .= $jump; $data[0] .= $jump;
$data[0] .= html_print_button(__('Show information'), 'show_info', false, 'javascript:show_double_auth_info();', '', true); $data[0] .= html_print_button(__('Show information'), 'show_info', false, 'javascript:show_double_auth_info();', '', true);
} }
// Dialog // Dialog.
$data[0] .= '<div id="dialog-double_auth"><div id="dialog-double_auth-container"></div></div>'; $data[0] .= '<div id="dialog-double_auth"><div id="dialog-double_auth-container"></div></div>';
if (check_acl($config['id_user'], 0, 'ER')) { if (check_acl($config['id_user'], 0, 'ER')) {
@ -407,14 +461,13 @@ if (check_acl($config['id_user'], 0, 'ER')) {
$data[1] .= $jump.'<span style="width:20%;float:left;line-height:20px;">'.html_print_select_from_sql( $data[1] .= $jump.'<span style="width:20%;float:left;line-height:20px;">'.html_print_select_from_sql(
'SELECT id_filter, id_name FROM tevent_filter', 'SELECT id_filter, id_name FROM tevent_filter',
'event_filter', 'event_filter',
$user_info['id_filter'], $user_info['default_event_filter'],
'', '',
__('None'), __('None'),
null, null,
true true
).'</span>'; ).'</span>';
}//end if } else if (license_free()) {
else if (license_free()) {
$data[1] = __('Newsletter Subscribed').':'; $data[1] = __('Newsletter Subscribed').':';
if ($user_info['middlename']) { if ($user_info['middlename']) {
$data[1] .= $jump.'<span style="font-weight:initial;">'.__('Already subscribed to %s newsletter', get_product_name()).'</span>'; $data[1] .= $jump.'<span style="font-weight:initial;">'.__('Already subscribed to %s newsletter', get_product_name()).'</span>';
@ -465,7 +518,8 @@ if (!isset($autorefresh_list)) {
$autorefresh_list[0] = __('None'); $autorefresh_list[0] = __('None');
} else { } else {
$aux = []; $aux = [];
for ($i = 0; $i < count($autorefresh_list); $i++) { $count_autorefresh_list = count($autorefresh_list);
for ($i = 0; $i < $count_autorefresh_list; $i++) {
$aux[$autorefresh_list[$i]] = $autorefresh_list_out[$autorefresh_list[$i]]; $aux[$autorefresh_list[$i]] = $autorefresh_list_out[$autorefresh_list[$i]];
unset($autorefresh_list_out[$autorefresh_list[$i]]); unset($autorefresh_list_out[$autorefresh_list[$i]]);
$autorefresh_list[$i] = $aux; $autorefresh_list[$i] = $aux;
@ -478,7 +532,8 @@ if (!isset($autorefresh_list)) {
$autorefresh_list[0] = __('None'); $autorefresh_list[0] = __('None');
} else { } else {
$aux = []; $aux = [];
for ($i = 0; $i < count($autorefresh_list); $i++) { $count_autorefresh_list = count($autorefresh_list);
for ($i = 0; $i < $count_autorefresh_list; $i++) {
$aux[$autorefresh_list[$i]] = $autorefresh_list_out[$autorefresh_list[$i]]; $aux[$autorefresh_list[$i]] = $autorefresh_list_out[$autorefresh_list[$i]];
unset($autorefresh_list_out[$autorefresh_list[$i]]); unset($autorefresh_list_out[$autorefresh_list[$i]]);
$autorefresh_list[$i] = $aux; $autorefresh_list[$i] = $aux;
@ -488,10 +543,39 @@ if (!isset($autorefresh_list)) {
} }
} }
$data[0] = _('Autorefresh').ui_print_help_tip(__('This will activate autorefresh in selected pages'), true); $data[0] = _('Autorefresh').ui_print_help_tip(
$select_out = html_print_select($autorefresh_list_out, 'autorefresh_list_out[]', '', '', '', '', true, true, true, '', false, 'width:200px'); __('This will activate autorefresh in selected pages'),
true
);
$select_out = html_print_select(
$autorefresh_list_out,
'autorefresh_list_out[]',
'',
'',
'',
'',
true,
true,
true,
'',
false,
'width:200px'
);
$arrows = ' '; $arrows = ' ';
$select_in = html_print_select($autorefresh_list, 'autorefresh_list[]', '', '', '', '', true, true, true, '', false, 'width:200px'); $select_in = html_print_select(
$autorefresh_list,
'autorefresh_list[]',
'',
'',
'',
'',
true,
true,
true,
'',
false,
'width:200px'
);
$table_ichanges = '<table style="position:relative;left:160px;"> $table_ichanges = '<table style="position:relative;left:160px;">
<tr> <tr>
@ -502,19 +586,50 @@ $table_ichanges = '<table style="position:relative;left:160px;">
<tr> <tr>
<td>'.$select_out.'</td> <td>'.$select_out.'</td>
<td> <td>
<a href="javascript:">'.html_print_image('images/darrowright.png', true, ['id' => 'right_autorefreshlist', 'alt' => __('Push selected pages into autorefresh list'), 'title' => __('Push selected pages into autorefresh list')]).'</a> <a href="javascript:">'.html_print_image(
'images/darrowright.png',
true,
[
'id' => 'right_autorefreshlist',
'alt' => __('Push selected pages into autorefresh list'),
'title' => __('Push selected pages into autorefresh list'),
]
).'</a>
<br><br> <br><br>
<a href="javascript:">'.html_print_image('images/darrowleft.png', true, ['id' => 'left_autorefreshlist', 'alt' => __('Pop selected pages out of autorefresh list'), 'title' => __('Pop selected pages out of autorefresh list')]).'</a> <a href="javascript:">'.html_print_image(
'images/darrowleft.png',
true,
[
'id' => 'left_autorefreshlist',
'alt' => __('Pop selected pages out of autorefresh list'),
'title' => __('Pop selected pages out of autorefresh list'),
]
).'</a>
</td> </td>
<td>'.$select_in.'</td> <td>'.$select_in.'</td>
</tr> </tr>
</table>'; </table>';
$data[0] .= $table_ichanges; $data[0] .= $table_ichanges;
// time autorefresh // Time autorefresh.
$times = get_refresh_time_array(); $times = get_refresh_time_array();
$data[1] = '<span style="width:40%;float:left;">'.__('Time autorefresh').ui_print_help_tip(__('Interval of autorefresh of the elements, by default they are 30 seconds, needing to enable the autorefresh first'), true).'</span>'; $data[1] = '<span style="width:40%;float:left;">'.__('Time autorefresh');
$data[1] .= $jump.'<span style="width:20%;float:left;">'.html_print_select($times, 'time_autorefresh', $user_info['time_autorefresh'], '', '', '', true, false, false).'</span>'; $data[1] .= ui_print_help_tip(
__('Interval of autorefresh of the elements, by default they are 30 seconds, needing to enable the autorefresh first'),
true
).'</span>';
$data[1] .= $jump.'<span style="width:20%;float:left;">';
$data[1] .= html_print_select(
$times,
'time_autorefresh',
$user_info['time_autorefresh'],
'',
'',
'',
true,
false,
false
).'</span>';
$table->rowclass[] = ''; $table->rowclass[] = '';
$table->rowstyle[] = 'font-weight: bold;vertical-align: top'; $table->rowstyle[] = 'font-weight: bold;vertical-align: top';
@ -528,7 +643,16 @@ $table->rowstyle[] = 'font-weight: bold;';
$table->data[] = $data; $table->data[] = $data;
$data = []; $data = [];
$data[0] = '<div style="width:98%">'.html_print_textarea('comments', 2, 60, $user_info['comments'], ($view_mode ? 'readonly="readonly"' : ''), true).'</div>'; $data[0] = '<div style="width:98%">';
$data[0] .= html_print_textarea(
'comments',
2,
60,
$user_info['comments'],
(($view_mode) ? 'readonly="readonly"' : ''),
true
);
$data[0] .= '</div>';
$data[0] .= html_print_input_hidden('quick_language_change', 1, true); $data[0] .= html_print_input_hidden('quick_language_change', 1, true);
$table->colspan[count($table->data)][0] = 3; $table->colspan[count($table->data)][0] = 3;
$table->rowclass[] = ''; $table->rowclass[] = '';
@ -594,9 +718,15 @@ if ($result === false) {
foreach ($result as $profile) { foreach ($result as $profile) {
$data[0] = '<b>'.profile_get_name($profile['id_perfil']).'</b>'; $data[0] = '<b>'.profile_get_name($profile['id_perfil']).'</b>';
if ($config['show_group_name']) { if ($config['show_group_name']) {
$data[1] = ui_print_group_icon($profile['id_grupo'], true).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'">'.'&nbsp;'.'</a>'; $data[1] = ui_print_group_icon(
$profile['id_grupo'],
true
).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'">&nbsp;</a>';
} else { } else {
$data[1] = ui_print_group_icon($profile['id_grupo'], true).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'">'.'&nbsp;'.ui_print_truncate_text(groups_get_name($profile['id_grupo'], true), GENERIC_SIZE_TEXT).'</a>'; $data[1] = ui_print_group_icon(
$profile['id_grupo'],
true
).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'">&nbsp;'.ui_print_truncate_text(groups_get_name($profile['id_grupo'], true), GENERIC_SIZE_TEXT).'</a>';
} }
$tags_ids = explode(',', $profile['tags']); $tags_ids = explode(',', $profile['tags']);

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.731 %define version 7.0NG.731
%define release 190207 %define release 190225
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd
@ -26,7 +26,7 @@ BuildRoot: %{_tmppath}/%{name}
BuildArch: noarch BuildArch: noarch
AutoReq: 0 AutoReq: 0
Requires: %{httpd_name} >= 2.0.0 Requires: %{httpd_name} >= 2.0.0
Requires: mod_php >= 5.2.0 Requires: mod_php >= 7.0
Requires: php-gd, php-ldap, php-snmp, php-session, php-gettext Requires: php-gd, php-ldap, php-snmp, php-session, php-gettext
Requires: php-mysqlnd, php-mbstring, php-zip, php-zlib, php-curl Requires: php-mysqlnd, php-mbstring, php-zip, php-zlib, php-curl
Requires: xorg-x11-fonts-75dpi, xorg-x11-fonts-misc, php-pecl-zip Requires: xorg-x11-fonts-75dpi, xorg-x11-fonts-misc, php-pecl-zip

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.731 %define version 7.0NG.731
%define release 190207 %define release 190225
%define httpd_name httpd %define httpd_name httpd
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name apache2 %define httpd_name apache2
@ -29,7 +29,7 @@ BuildArch: noarch
AutoReq: 0 AutoReq: 0
Requires: apache2 Requires: apache2
Requires: apache2-mod_php7 Requires: apache2-mod_php7
Requires: php >= 4.3.0 Requires: php >= 7.0
Requires: php-gd, php-snmp, php-json, php-gettext Requires: php-gd, php-snmp, php-json, php-gettext
Requires: php-mysqlnd, php-ldap, php-mbstring, php Requires: php-mysqlnd, php-ldap, php-mbstring, php
Requires: graphviz, xorg-x11-fonts-core, graphviz-gd Requires: graphviz, xorg-x11-fonts-core, graphviz-gd

View File

@ -1,5 +1,5 @@
package: pandorafms-server package: pandorafms-server
Version: 7.0NG.731-190207 Version: 7.0NG.731-190225
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

Some files were not shown because too many files have changed in this diff Show More