#10598 V2 wizard welcome

This commit is contained in:
Jonathan 2023-06-02 13:32:47 +02:00
parent 99b274d362
commit ebdc735bd4
10 changed files with 1329 additions and 1427 deletions

View File

@ -38,7 +38,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
if (check_acl($config['id_user'], $group, 'AW')) {
$header_welcome .= '<div id="welcome-icon-header">';
$header_welcome .= html_print_image(
'images/computer@groups.svg',
'images/wizard@svg.svg',
true,
[
'class' => 'main_menu_icon invert_filter',

View File

@ -172,16 +172,7 @@ if ($access_console_node === true) {
$sub['wizard']['text'] = __('Configuration wizard');
$sub['wizard']['id'] = 'conf_wizard';
$sub['wizard']['type'] = 'direct';
$sub['wizard']['subtype'] = 'nolink';
$sub2 = [];
if ((bool) check_acl($config['id_user'], 0, 'PM') === true) {
$sub2['godmode/wizards/mini_diagnosis']['text'] = __('Mini-diagnosis');
$sub2['godmode/wizards/mini_diagnosis']['id'] = 'mini_diagnosis';
}
$sub2['godmode/wizards/task_to_perform']['text'] = __('Tasks to perform');
$sub2['godmode/wizards/task_to_perform']['id'] = 'task_to_perform';
$sub['wizard']['sub2'] = $sub2;
$sub['wizard']['subtype'] = 'nolink_no_arrow';
}
if ((bool) check_acl($config['id_user'], 0, 'PM') === true) {
@ -629,3 +620,55 @@ if ((bool) $config['pure'] === false) {
}
echo '<div id="about-div"></div>';
// Need to be here because the translate string.
if (check_acl($config['id_user'], $group, 'AW')) {
?>
<script type="text/javascript">
$("#conf_wizard").click(function() {
$("#conf_wizard").addClass("selected");
if (!$("#welcome_modal_window").length) {
$(document.body).append('<div id="welcome_modal_window"></div>');
$(document.body).append(
$('<link rel="stylesheet" type="text/css" />').attr(
"href",
"include/styles/new_installation_welcome_window.css"
)
);
}
load_modal({
target: $('#welcome_modal_window'),
url: '<?php echo ui_get_full_url('ajax.php', false, false, false); ?>',
modal: {
title: "<?php echo __('Welcome to').' '.io_safe_output(get_product_name()); ?>",
cancel: '<?php echo __('Do not show anymore'); ?>',
ok: '<?php echo __('Close'); ?>'
},
onshow: {
page: 'include/ajax/welcome_window',
method: 'loadWelcomeWindow',
},
oncancel: {
page: 'include/ajax/welcome_window',
title: "<?php echo __('Cancel Configuration Window'); ?>",
method: 'cancelWelcome',
confirm: function (fn) {
confirmDialog({
title: '<?php echo __('Are you sure?'); ?>',
message: '<?php echo __('Are you sure you want to cancel this tutorial?'); ?>',
ok: '<?php echo __('OK'); ?>',
cancel: '<?php echo __('Cancel'); ?>',
onAccept: function() {
// Continue execution.
fn();
}
})
}
}
});
});
</script>
<?php
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,181 @@
<?php
/**
* Extension to schedule tasks on Pandora FMS Console
*
* @category Wizard
* @package Pandora FMS
* @subpackage Host&Devices
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2023 PandoraFMS S.L.
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Begin.
require_once '../functions.php';
require_once '../functions_welcome_wizard.php';
global $config;
$check_web = get_parameter('check_web', 0);
$check_connectivity = get_parameter('check_connectivity', 0);
$create_net_scan = get_parameter('create_net_scan', 0);
$create_mail_alert = get_parameter('create_mail_alert', 0);
// Begin.
global $config;
if ($check_web) {
include_once '../functions_api.php';
include_once '../functions_servers.php';
$status_webserver = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_WEB], 'status')['status'];
if ($status_webserver === '1') {
$name = array_keys(servers_get_names())[0];
$id_group = get_parameter('id_group', 4);
$array_other['data'] = [
'Web monitoring',
'',
2,
$id_group,
0,
30,
30,
9,
$name,
0,
0,
0,
__('Agent Web monitoring created on welcome'),
];
$id_agent = api_set_new_agent(0, '', $array_other, '', true);
if ($id_agent > 0) {
$module_name = get_parameter('module_name', 'Web_monitoring_module');
$text_to_search = get_parameter('text_to_search', '');
$url_goliat = get_parameter('url_goliat', 'https://pandorafms.com/en/');
$module_latency = create_module_latency_goliat($id_agent, $module_name, $id_group, $url_goliat, $text_to_search);
$module_status = create_module_status_goliat($id_agent, $module_name, $id_group, $url_goliat, $text_to_search);
if ($module_latency > 0 && $module_status > 0) {
ui_print_success_message(__('Your check has been created, <a href='.ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&id_agente='.$id_agent).'>click here to view the data</a>. Please note that it may take a few seconds to see data if your server is busy'));
}
} else {
ui_print_error_message(__('The Name is not valid for the modules.'));
}
} else {
ui_print_error_message(__('Web server is not enabled.'));
}
}
if ($check_connectivity) {
include_once '../functions_api.php';
include_once '../functions_servers.php';
$status_newtwork = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_NETWORK], 'status')['status'];
$status_pluggin = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_PLUGIN], 'status')['status'];
if ($status_newtwork === '1' && $status_pluggin === '1') {
$name = array_keys(servers_get_names())[0];
$id_group = get_parameter('id_group', 4);
$agent_name = get_parameter('agent_name', __('Agent check connectivity'));
$array_other['data'] = [
$agent_name,
'',
2,
$id_group,
0,
30,
30,
9,
$name,
0,
0,
0,
__('Basic connectivity'),
];
$id_agent = api_set_new_agent(0, '', $array_other, '', true);
if ($id_agent > 0) {
$ip_target = get_parameter('ip_target', '127.0.0.1');
$basic_network = create_module_basic_network($id_agent, $id_group, $ip_target);
$latency_network = create_module_latency_network($id_agent, $id_group, $ip_target);
$packet_lost = create_module_packet_lost($id_agent, $id_group, $ip_target);
if ($basic_network > 0 && $latency_network > 0 && $packet_lost > 0) {
ui_print_success_message(__('Your check has been created, <a href='.ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&id_agente='.$id_agent).'>click here to view the data</a>. Please note that it may take a few seconds to see data if your server is busy'));
}
} else {
ui_print_error_message(__('The Name is not valid for the modules.'));
}
} else {
ui_print_error_message(__('Web server is not enabled.'));
}
}
if ($create_net_scan) {
$ip_target = get_parameter('ip_target', '192.168.10.0/24');
$id_net_scan = create_net_scan($ip_target);
if ($id_net_scan > 0) {
$id_recon_server = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_DISCOVERY], 'id_server')['id_server'];
ui_print_success_message(__('Basic net created and scan in progress. <a href='.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=tasklist&server_id='.$id_recon_server.'&force='.$id_net_scan).'>Click here to view the data</a>. Please note that it may take a few seconds to see data if your server is busy'));
} else {
ui_print_error_message(__('Basic net already exists. <a href='.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=tasklist').'>Click here to view the data</a>'));
}
}
if ($create_mail_alert) {
include_once '../functions_alerts.php';
$id_action = db_get_row_filter('talert_actions', ['name' => 'Email to '.$config['id_user']], 'id')['id'];
if (!$id_action) {
$al_action = alerts_get_alert_action($id);
$id_action = alerts_clone_alert_action(1, $al_action['id_group'], 'Email to '.$config['id_user']);
}
$id_alert_template = get_parameter('id_condition', 0);
$id_agent_module = get_parameter('id_agent_module', 0);
$exist = db_get_value_sql(
sprintf(
'SELECT COUNT(id)
FROM talert_template_modules
WHERE id_agent_module = %d
AND id_alert_template = %d
AND id_policy_alerts = 0
',
$id_agent_module,
$id_alert_template
)
);
if ($exist > 0) {
ui_print_error_message(__('Alert already exists. <a href='.ui_get_full_url('index.php?sec=galertas&sec2=godmode/alerts/alert_list&tab=list&pure=0').'>Click here to view the data</a>'));
} else {
$id = alerts_create_alert_agent_module($id_agent_module, $id_alert_template);
if ($id !== false) {
$values = [];
$values['fires_min'] = (int) get_parameter('fires_min');
$values['fires_max'] = (int) get_parameter('fires_max');
$values['module_action_threshold'] = (int) 300;
$alert_created = alerts_add_alert_agent_module_action($id, $id_action, $values);
}
}
if ($alert_created === true) {
ui_print_success_message(__('Congratulations, you have already created a simple alert. <a href='.ui_get_full_url('index.php?sec=galertas&sec2=godmode/alerts/alert_list&tab=list&pure=0').'>You can see it.</a> Pandora FMS alerts are very flexible, you can do many more things with them, we recommend you to read the <a href="https://pandorafms.com/manual/start?id=en/documentation/04_using/01_alerts">documentation</a> for more information. You can create advanced alerts from <a href='.ui_get_full_url('index.php?sec=galertas&sec2=godmode/alerts/alert_actions').'>here</a>.'));
}
}

View File

@ -374,34 +374,37 @@ class WelcomeWindow extends Wizard
$flag_su = false;
$flag_lv = false;
$btn_update_manager_class = ' pending';
$btn_configure_mail_class = ' pending';
$btn_servers_up_class = ' pending';
$btn_license_valid_class = ' pending';
$btn_update_manager_class = ' fail';
$btn_configure_mail_class = ' fail';
$btn_servers_up_class = ' fail';
$btn_license_valid_class = ' fail';
$li_update_manager_class = 'row_grey';
$li_configure_mail_class = 'row_grey';
$li_servers_up_class = 'row_grey';
$li_license_valid_class = 'row_grey';
if ($config['pandora_uid'] === 'ONLINE') {
$btn_update_manager_class = ' completed';
include_once 'include/functions_update_manager.php';
if (update_manager_verify_registration()) {
$btn_update_manager_class = '';
$li_update_manager_class = 'row_green';
$flag_um = true;
}
if (empty($config['welcome_mail_configured']) === false) {
$btn_configure_mail_class = ' completed';
$btn_configure_mail_class = '';
$li_configure_mail_class = 'row_green';
$flag_cm = true;
}
include_once 'include/functions_servers.php';
if (check_all_servers_up() === true) {
$btn_servers_up_class = ' completed';
$btn_servers_up_class = '';
$li_servers_up_class = 'row_green';
$flag_su = true;
}
$show_license = true;
if (enterprise_installed()) {
$license_valid = true;
enterprise_include_once('include/functions_license.php');
@ -412,10 +415,12 @@ class WelcomeWindow extends Wizard
}
if ($license_valid === true) {
$btn_license_valid_class = ' completed';
$btn_license_valid_class = '';
$li_license_valid_class = 'row_green';
$flag_lv = true;
}
} else {
$show_license = false;
}
$inputs[] = [
@ -425,7 +430,7 @@ class WelcomeWindow extends Wizard
'direct' => 1,
'block_content' => [
[
'label' => __('Mini-diagnosis'),
'label' => __('Post-installation status diagnostic'),
'arguments' => [
'class' => 'first_lbl',
'name' => 'lbl_diagnosis',
@ -443,7 +448,7 @@ class WelcomeWindow extends Wizard
'direct' => 1,
'block_content' => [
[
'label' => __('Verification update manager register'),
'label' => __('Warp Update registration'),
'arguments' => [
'class' => 'first_lbl',
'name' => 'lbl_update_manager',
@ -471,7 +476,7 @@ class WelcomeWindow extends Wizard
'direct' => 1,
'block_content' => [
[
'label' => __('Please ensure mail configuration matches your needs'),
'label' => __('Default mail to send alerts'),
'arguments' => [
'class' => 'first_lbl',
'name' => 'lbl_create_agent',
@ -499,7 +504,7 @@ class WelcomeWindow extends Wizard
'direct' => 1,
'block_content' => [
[
'label' => __('All servers up'),
'label' => __('All servers running'),
'arguments' => [
'class' => 'first_lbl',
'name' => 'lbl_servers_up',
@ -520,36 +525,37 @@ class WelcomeWindow extends Wizard
],
],
];
$inputs[] = [
'wrapper' => 'div',
'block_id' => 'div_license_valid',
'class' => 'hole flex-row flex-items-center w98p '.$li_license_valid_class,
'direct' => 1,
'block_content' => [
[
'label' => __('Valid license verification and expiration greater than 30 days'),
'arguments' => [
'class' => 'first_lbl',
'name' => 'lbl_license_valid',
'id' => 'lbl_license_valid',
],
],
[
'arguments' => [
'label' => '',
'type' => 'button',
'attributes' => [
'class' => (empty($btn_license_valid_class) === false) ? $btn_license_valid_class : 'invisible_important',
'mode' => 'onlyIcon',
if ($show_license) {
$inputs[] = [
'wrapper' => 'div',
'block_id' => 'div_license_valid',
'class' => 'hole flex-row flex-items-center w98p '.$li_license_valid_class,
'direct' => 1,
'block_content' => [
[
'label' => __('Enterprise licence valid'),
'arguments' => [
'class' => 'first_lbl',
'name' => 'lbl_license_valid',
'id' => 'lbl_license_valid',
],
],
[
'arguments' => [
'label' => '',
'type' => 'button',
'attributes' => [
'class' => (empty($btn_license_valid_class) === false) ? $btn_license_valid_class : 'invisible_important',
'mode' => 'onlyIcon',
],
'name' => 'btn_license_valid_conf',
'id' => 'btn_license_valid_conf',
],
'name' => 'btn_license_valid_conf',
'id' => 'btn_license_valid_conf',
],
],
],
];
];
}
} else {
$key = db_get_value_sql('SELECT `value` FROM tupdate_settings WHERE `key` = "customer_key"');
$inputs[] = [
'wrapper' => 'div',
'block_id' => 'div_all_correct',
@ -557,7 +563,7 @@ class WelcomeWindow extends Wizard
'direct' => 1,
'block_content' => [
[
'label' => __('It seems that your Pandora FMS is working correctly and registered with ID:<br> #'.$key.'.<br>For more information use the self-diagnosis tool.'),
'label' => __('It seems that your Pandora FMS is working correctly and registered with ID:<br> #'.$config['pandora_uid'].'.<br>For more information use the self-diagnosis tool.'),
'arguments' => [
'class' => 'first_lbl w98p',
'name' => 'lbl_all_correct',
@ -591,159 +597,39 @@ class WelcomeWindow extends Wizard
],
];
$fields['wizard_agent'] = __('Agent installation wizard');
$fields['check_web'] = __('Create WEB monitoring');
$fields['check_connectivity'] = __('Create network monitoring');
$fields['check_net'] = __('Discover my network');
$fields['check_mail_alert'] = __('Create email alert');
$inputs[] = [
'wrapper' => 'div',
'block_id' => 'div_wizard_agent',
'class' => 'hole flex-row flex-items-center w98p row_grey',
'class' => 'flex space-between w98p',
'direct' => 1,
'block_content' => [
[
'label' => __('Wizard install agent'),
'arguments' => [
'class' => 'first_lbl row_grey',
'name' => 'lbl_wizard_agent',
'id' => 'lbl_wizard_agent',
'type' => 'select',
'fields' => $fields,
'name' => 'task_to_perform',
'selected' => '',
'return' => true,
'nothing' => \__('Please select one'),
'nothing_value' => '',
],
],
[
'arguments' => [
'label' => '',
'label' => __('Let`s do it!'),
'type' => 'button',
'attributes' => [
'class' => 'completed',
'mode' => 'onlyIcon',
'class' => 'secondary',
'icon' => 'next',
],
'name' => 'btn_wizard_agent_conf',
'id' => 'btn_wizard_agent_conf',
],
],
],
];
$status_webserver = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_WEB], 'status')['status'];
$check_web_color = 'row_grey';
if ($status_webserver === '1') {
$check_web_color = 'row_green';
}
$inputs[] = [
'wrapper' => 'div',
'block_id' => 'div_check_web',
'class' => 'hole flex-row flex-items-center w98p '.$check_web_color,
'direct' => 1,
'block_content' => [
[
'label' => __('Create check web'),
'arguments' => [
'class' => 'first_lbl row_grey',
'name' => 'lbl_check_web',
'id' => 'lbl_check_web',
],
],
[
'arguments' => [
'label' => '',
'type' => 'button',
'attributes' => [
'class' => 'completed',
'mode' => 'onlyIcon',
],
'name' => 'btn_check_web_conf',
'id' => 'btn_check_web_conf',
],
],
],
];
$status_newtwork = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_NETWORK], 'status')['status'];
$status_pluggin = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_PLUGIN], 'status')['status'];
$check_connectivity = 'row_grey';
if ($status_newtwork === '1' && $status_pluggin === '1') {
$check_connectivity = 'row_green';
}
$inputs[] = [
'wrapper' => 'div',
'block_id' => 'div_check_connectivity',
'class' => 'hole flex-row flex-items-center w98p '.$check_connectivity,
'direct' => 1,
'block_content' => [
[
'label' => __('Create basic connectivity'),
'arguments' => [
'class' => 'first_lbl row_grey',
'name' => 'lbl_check_connectivity',
'id' => 'lbl_check_connectivity',
],
],
[
'arguments' => [
'label' => '',
'type' => 'button',
'attributes' => [
'class' => 'completed',
'mode' => 'onlyIcon',
],
'name' => 'btn_check_connectivity_conf',
'id' => 'btn_check_connectivity_conf',
],
],
],
];
$inputs[] = [
'wrapper' => 'div',
'block_id' => 'div_check_net',
'class' => 'hole flex-row flex-items-center w98p row_green',
'direct' => 1,
'block_content' => [
[
'label' => __('Create basic net'),
'arguments' => [
'class' => 'first_lbl row_grey',
'name' => 'lbl_check_net',
'id' => 'lbl_check_net',
],
],
[
'arguments' => [
'label' => '',
'type' => 'button',
'attributes' => [
'class' => 'completed',
'mode' => 'onlyIcon',
],
'name' => 'btn_check_net_conf',
'id' => 'btn_check_net_conf',
],
],
],
];
$inputs[] = [
'wrapper' => 'div',
'block_id' => 'div_check_mail_alert',
'class' => 'hole flex-row flex-items-center w98p row_green',
'direct' => 1,
'block_content' => [
[
'label' => __('Create Alert Mail'),
'arguments' => [
'class' => 'first_lbl row_grey',
'name' => 'lbl_check_mail_alert',
'id' => 'lbl_check_mail_alert',
],
],
[
'arguments' => [
'label' => '',
'type' => 'button',
'attributes' => [
'class' => 'completed',
'mode' => 'onlyIcon',
],
'name' => 'btn_check_mail_alert_conf',
'id' => 'btn_check_mail_alert_conf',
'name' => 'go_wizard',
'id' => 'go_wizard',
],
],
],
@ -759,7 +645,233 @@ class WelcomeWindow extends Wizard
$output .= $this->loadJS($flag_task);
echo $output;
?>
<div id="dialog_goliat" class="invisible">
<?php
echo html_print_input_hidden('check_web', 1);
echo html_print_label_input_block(
__('URL'),
html_print_input_text(
'url_goliat',
'',
'',
false,
255,
true,
false,
true,
'',
'w100p'
)
);
echo html_print_label_input_block(
__('Text to search'),
html_print_input_text(
'text_to_search',
'',
'',
false,
255,
true,
false,
false,
'',
'w100p'
)
);
echo html_print_label_input_block(
__('Modules name'),
html_print_input_text(
'module_name',
'',
'',
false,
255,
true,
false,
false,
'',
'w100p'
)
);
echo html_print_label_input_block(
__('Module group'),
html_print_select_from_sql(
'SELECT * FROM tgrupo ORDER BY nombre',
'id_group',
'',
'',
'',
false,
true,
false,
true,
false,
'width: 100%;'
)
);
echo html_print_submit_button(__('Create'), 'create_goliat', false, ['icon' => 'next', 'style' => 'margin-top:15px; float:right;']);
?>
</div>
<div id="dialog_connectivity" class="invisible">
<?php
echo html_print_input_hidden('check_connectivity', 1);
echo html_print_label_input_block(
__('Ip target'),
html_print_input_text(
'ip_target',
'',
'',
false,
15,
true,
false,
true,
'',
'w100p'
)
);
echo html_print_label_input_block(
__('Agent name'),
html_print_input_text(
'agent_name',
'',
'',
false,
255,
true,
false,
false,
'',
'w100p'
)
);
echo html_print_label_input_block(
__('Module group'),
html_print_select_from_sql(
'SELECT * FROM tgrupo ORDER BY nombre',
'id_group',
'',
'',
'',
false,
true,
false,
true,
false,
'width: 100%;'
)
);
echo html_print_submit_button(__('Create'), 'create_conectivity', false, ['icon' => 'next', 'style' => 'margin-top:15px; float:right;']);
?>
</div>
<div id="dialog_basic_net" class="invisible">
<?php
echo html_print_input_hidden('create_net_scan', 1);
echo html_print_label_input_block(
__('Ip target'),
html_print_input_text(
'ip_target',
'192.168.10.0/24',
'192.168.10.0/24',
false,
18,
true,
false,
true,
'',
'w100p',
'',
'off',
false,
'',
'',
'',
false,
'',
'192.168.10.0/24'
)
);
echo html_print_submit_button(__('Create'), 'basic_net', false, ['icon' => 'next', 'style' => 'margin-top:15px; float:right;']);
?>
</div>
<div id="dialog_alert_mail" class="invisible">
<?php
echo html_print_input_hidden('create_mail_alert', 1);
$params = [];
$params['return'] = true;
$params['show_helptip'] = true;
$params['input_name'] = 'id_agent';
$params['selectbox_id'] = 'id_agent_module';
$params['javascript_is_function_select'] = true;
$params['metaconsole_enabled'] = false;
$params['use_hidden_input_idagent'] = true;
$params['print_hidden_input_idagent'] = true;
echo html_print_label_input_block(
__('Agent'),
ui_print_agent_autocomplete_input($params)
);
echo html_print_label_input_block(
__('Module'),
html_print_select(
$modules,
'id_agent_module',
'',
true,
'',
'',
true,
false,
true,
'w100p',
false,
'width: 100%;',
false,
false,
false,
'',
false,
false,
true
).'<span id="latest_value" class="invisible">'.__('Latest value').':
<span id="value">&nbsp;</span></span>
<span id="module_loading" class="invisible">'.html_print_image('images/spinner.gif', true).'</span>'
);
$condition = alerts_get_alert_templates(['id IN (1,3)'], ['id', 'name']);
echo html_print_label_input_block(
__('Contition'),
html_print_select(
index_array($condition, 'id', 'name'),
'id_condition',
'',
'',
__('Select'),
'',
true,
false,
true,
'w100p',
false,
'width: 100%;',
false,
false,
false,
'',
false,
false,
true
)
);
echo html_print_submit_button(__('Create'), 'alert_mail', false, ['icon' => 'next', 'style' => 'margin-top:15px; float:right;']);
?>
</div>
<?php
// Ajax methods does not continue.
exit();
}
@ -1011,30 +1123,104 @@ class WelcomeWindow extends Wizard
<?php } ?>
// Task to do buttons.
document.getElementById("button-btn_wizard_agent_conf").setAttribute(
'onclick',
'deployAgent()'
);
$('#button-go_wizard').click(function(){
if ($('#task_to_perform :selected').val() === '') {
alert("<?php echo __('You must chose an option'); ?>");
} else {
switch($('#task_to_perform :selected').val()) {
case 'wizard_agent':
deployAgent();
break;
case 'check_mail_alert':
openCreateAlertMailDialog();
break;
case 'check_connectivity':
openCreateConnectivityDialog();
break;
case 'check_web':
openCreateModulesDialog();
break;
case 'check_net':
openCreateBasicNetDialog();
break;
};
}
});
document.getElementById("button-btn_check_web_conf").setAttribute(
'onclick',
'openCreateModulesDialog()'
);
// Task to do buttons.
$('#button-go_wizard').click(function(){
if ($('#task_to_perform :selected').val() === '') {
alert("<?php echo __('You must chose an option'); ?>");
} else {
switch($('#task_to_perform :selected').val()) {
case 'wizard_agent':
deployAgent();
break;
case 'check_mail_alert':
openCreateAlertMailDialog();
break;
case 'check_connectivity':
openCreateConnectivityDialog();
break;
case 'check_web':
openCreateModulesDialog();
break;
case 'check_net':
openCreateBasicNetDialog();
break;
};
}
});
document.getElementById("button-btn_check_connectivity_conf").setAttribute(
'onclick',
'openCreateConnectivityDialog()'
);
// Task to do buttons.
$('#button-go_wizard').click(function(){
if ($('#task_to_perform :selected').val() === '') {
alert("<?php echo __('You must chose an option'); ?>");
} else {
switch($('#task_to_perform :selected').val()) {
case 'wizard_agent':
deployAgent();
break;
case 'check_mail_alert':
openCreateAlertMailDialog();
break;
case 'check_connectivity':
openCreateConnectivityDialog();
break;
case 'check_web':
openCreateModulesDialog();
break;
case 'check_net':
openCreateBasicNetDialog();
break;
};
}
});
document.getElementById("button-btn_check_net_conf").setAttribute(
'onclick',
'openCreateBasicNetDialog()'
);
document.getElementById("button-btn_check_mail_alert_conf").setAttribute(
'onclick',
'openCreateAlertMailDialog()'
);
// Task to do buttons.
$('#button-go_wizard').click(function(){
if ($('#task_to_perform :selected').val() === '') {
alert("<?php echo __('You must chose an option'); ?>");
} else {
switch($('#task_to_perform :selected').val()) {
case 'wizard_agent':
deployAgent();
break;
case 'check_mail_alert':
openCreateAlertMailDialog();
break;
case 'check_connectivity':
openCreateConnectivityDialog();
break;
case 'check_web':
openCreateModulesDialog();
break;
case 'check_net':
openCreateBasicNetDialog();
break;
};
}
});
function configureUpdateManager() {
window.location = '<?php echo ui_get_full_url('index.php?sec=messages&sec2=godmode/update_manager/update_manager&tab=online'); ?>';
@ -1052,29 +1238,173 @@ class WelcomeWindow extends Wizard
window.location = '<?php echo ui_get_full_url('index.php?sec=message_list&sec2=operation/messages/message_list'); ?>';
}
// Task to do actions.
function deployAgent() {
window.location = '<?php echo ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&show_deploy_agent=1'); ?>';
}
function openCreateModulesDialog() {
window.location = '<?php echo ui_get_full_url('index.php?sec=wizard&sec2=godmode/wizards/task_to_perform&create_modules_dialog=1'); ?>';
$('#dialog_goliat').dialog({
title: '<?php echo __('Create WEB monitoring'); ?>',
resizable: true,
draggable: true,
modal: true,
close: false,
height: 375,
width: 480,
overlay: {
opacity: 0.5,
background: "black"
}
})
.show();
}
function openCreateConnectivityDialog() {
window.location = '<?php echo ui_get_full_url('index.php?sec=wizard&sec2=godmode/wizards/task_to_perform&create_connectivity_dialog=1'); ?>';
$('#dialog_connectivity').dialog({
title: '<?php echo __('Create network monitoring'); ?>',
resizable: true,
draggable: true,
modal: true,
close: false,
height: 350,
width: 480,
overlay: {
opacity: 0.5,
background: "black"
}
})
.show();
}
function openCreateBasicNetDialog() {
window.location = '<?php echo ui_get_full_url('index.php?sec=wizard&sec2=godmode/wizards/task_to_perform&create_net_scan_dialog=1'); ?>';
$('#dialog_basic_net').dialog({
title: '<?php echo __('Discover my network'); ?>',
resizable: true,
draggable: true,
modal: true,
close: false,
height: 200,
width: 480,
overlay: {
opacity: 0.5,
background: "black"
}
})
.show();
}
function openCreateAlertMailDialog() {
window.location = '<?php echo ui_get_full_url('index.php?sec=wizard&sec2=godmode/wizards/task_to_perform&create_alert_mail_dialog=1'); ?>';
$('#dialog_alert_mail').dialog({
title: '<?php echo __('Create email alert'); ?>',
resizable: true,
draggable: true,
modal: true,
close: false,
height: 350,
width: 480,
overlay: {
opacity: 0.5,
background: "black"
}
})
.show();
}
function cierre_dialog(){
this.dialog("close");
}
$('#button-create_goliat').click(function(){
$.ajax({
async: false,
type: "POST",
url: "include/ajax/task_to_perform.php",
data: {
check_web: 1,
id_group: $('#id_group :selected').val(),
module_name: $('#text-module_name').val(),
text_to_search: $('#text-text_to_search').val(),
url_goliat: $('#text-url_goliat').val(),
},
success: function(data) {
if (data !== 0) {
data = data.replace(/(\r\n|\n|\r)/gm, "");
console.log(data);
$('body').append(data);
// Close dialog
$('.ui-dialog-titlebar-close').trigger('click');
return false;
}
}
});
});
$('#button-create_conectivity').click(function(){
$.ajax({
async: false,
type: "POST",
url: "include/ajax/task_to_perform.php",
data: {
check_connectivity: 1,
id_group: $('#id_group :selected').val(),
ip_target: $('#text-ip_target').val(),
agent_name: $('#text-agent_name').val(),
},
success: function(data) {
if (data !== 0) {
data = data.replace(/(\r\n|\n|\r)/gm, "");
console.log(data);
$('body').append(data);
// Close dialog
$('.ui-dialog-titlebar-close').trigger('click');
return false;
}
}
});
});
$('#button-basic_net').click(function(){
$.ajax({
async: false,
type: "POST",
url: "include/ajax/task_to_perform.php",
data: {
create_net_scan: 1,
ip_target: $('#text-ip_target').val(),
},
success: function(data) {
if (data !== 0) {
data = data.replace(/(\r\n|\n|\r)/gm, "");
console.log(data);
$('body').append(data);
// Close dialog
$('.ui-dialog-titlebar-close').trigger('click');
return false;
}
}
});
});
$('#button-alert_mail').click(function(){
$.ajax({
async: false,
type: "POST",
url: "include/ajax/task_to_perform.php",
data: {
create_mail_alert: 1,
id_condition: $('#text-ip_target').val(),
id_agent_module: $('#text-ip_target').val(),
},
success: function(data) {
if (data !== 0) {
data = data.replace(/(\r\n|\n|\r)/gm, "");
console.log(data);
$('body').append(data);
// Close dialog
$('.ui-dialog-titlebar-close').trigger('click');
return false;
}
}
});
});
</script>
<?php
return ob_get_clean();

View File

@ -326,6 +326,8 @@ function menu_print_menu(&$menu)
if (isset($sub['subtype']) && $sub['subtype'] == 'nolink') {
$submenu_output .= '<div class=" SubNoLink '.$sub_tree_class.'"><span class="w70p span_has_menu_text">'.$sub['text'].'</span><div class="w21p arrow_menu_down"></div></div>';
} else if (isset($sub['subtype']) && $sub['subtype'] == 'nolink_no_arrow') {
$submenu_output .= '<div class=" SubNoLink '.$sub_tree_class.'"><span class="w70p span_has_menu_text">'.$sub['text'].'</span><div class="w21p"></div></div>';
} else if (isset($sub['subtype']) && $sub['subtype'] == 'new_blank') {
$submenu_output .= '<a href="'.$subsec2.'" target="_blank"><div class="'.$sub_tree_class.'">'.$sub['text'].'</div></a>';
} else {

View File

@ -0,0 +1,537 @@
<?php
/**
* Agents Functions.
*
* @category Agents functions.
* @package Pandora FMS
* @subpackage User interface.
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2023 PandoraFMS Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Begin.
/**
* Create_module_latency_goliat and return module id.
*
* @param mixed $id_agent Id agent.
* @param mixed $module_name Module name.
* @param mixed $id_group Id group.
* @param mixed $url_search Url to search.
* @param mixed $string_search Text to search.
*
* @return interger Module id.
*/
function create_module_latency_goliat($id_agent, $module_name, $id_group, $url_search, $string_search='')
{
if ($string_search !== '') {
$str_search = 'check_string '.$string_search.'';
}
include_once 'include/functions_modules.php';
$array_values = [
'id_tipo_modulo' => '30',
'descripcion' => '',
'max' => '0',
'min' => '0',
'snmp_oid' => '',
'snmp_community' => 'public',
'id_module_group' => $id_group,
'module_interval' => '300',
'module_ff_interval' => '0',
'ip_target' => '',
'tcp_port' => '0',
'tcp_rcv' => '',
'tcp_send' => '',
'id_export' => '0',
'plugin_user' => '',
'plugin_pass' => '0',
'plugin_parameter' => 'task_begin
get '.$url_search.'
resource 1
'.$str_search.'
task_end',
'id_plugin' => '0',
'post_process' => '0',
'prediction_module' => '0',
'max_timeout' => '0',
'max_retries' => '0',
'disabled' => '',
'id_modulo' => '7',
'custom_id' => '',
'history_data' => '1',
'dynamic_interval' => '0',
'dynamic_max' => '0',
'dynamic_min' => '0',
'dynamic_two_tailed' => '0',
'parent_module_id' => '0',
'min_warning' => '0',
'max_warning' => '0',
'str_warning' => '',
'min_critical' => '0',
'max_critical' => '0',
'str_critical' => '',
'custom_string_1' => '',
'custom_string_2' => '',
'custom_string_3' => '',
'custom_integer_1' => '0',
'custom_integer_2' => '0',
'min_ff_event' => '0',
'min_ff_event_normal' => '0',
'min_ff_event_warning' => '0',
'min_ff_event_critical' => '0',
'ff_type' => '0',
'each_ff' => '0',
'ff_timeout' => '0',
'unit' => '',
'macros' => '',
'quiet' => '0',
'cps' => '0',
'critical_instructions' => '',
'warning_instructions' => '',
'unknown_instructions' => '',
'critical_inverse' => '0',
'warning_inverse' => '0',
'percentage_critical' => '0',
'percentage_warning' => '0',
'cron_interval' => '* * * * *',
'id_category' => '0',
'disabled_types_event' => '{\"going_unknown\":0}',
'module_macros' => 'W10=',
'warning_time' => '0',
];
return modules_create_agent_module($id_agent, $module_name.'_latency', $array_values);
}
/**
* Create_module_status_goliat and return module id.
*
* @param mixed $id_agent Id agent.
* @param mixed $module_name Module name.
* @param mixed $id_group Id group.
* @param mixed $url_search Url to search.
* @param mixed $string_search Text to search.
*
* @return interger Module id.
*/
function create_module_status_goliat($id_agent, $module_name, $id_group, $url_search, $string_search='')
{
if ($string_search !== '') {
$str_search = 'check_string '.$string_search.' ';
}
include_once 'include/functions_modules.php';
$array_values = [
'id_tipo_modulo' => '31',
'descripcion' => '',
'max' => '0',
'min' => '0',
'snmp_oid' => '',
'snmp_community' => 'public',
'id_module_group' => $id_group,
'module_interval' => '300',
'module_ff_interval' => '0',
'ip_target' => '',
'tcp_port' => '0',
'tcp_rcv' => '',
'tcp_send' => '',
'id_export' => '0',
'plugin_user' => '',
'plugin_pass' => '0',
'plugin_parameter' => 'task_begin
get '.$url_search.'
resource 1
'.$str_search.'
task_end',
'id_plugin' => '0',
'post_process' => '0',
'prediction_module' => '0',
'max_timeout' => '0',
'max_retries' => '0',
'disabled' => '',
'id_modulo' => '7',
'custom_id' => '',
'history_data' => '1',
'dynamic_interval' => '0',
'dynamic_max' => '0',
'dynamic_min' => '0',
'dynamic_two_tailed' => '0',
'parent_module_id' => '0',
'min_warning' => '0',
'max_warning' => '0',
'str_warning' => '',
'min_critical' => '0',
'max_critical' => '0',
'str_critical' => '',
'custom_string_1' => '',
'custom_string_2' => '',
'custom_string_3' => '',
'custom_integer_1' => '0',
'custom_integer_2' => '0',
'min_ff_event' => '0',
'min_ff_event_normal' => '0',
'min_ff_event_warning' => '0',
'min_ff_event_critical' => '0',
'ff_type' => '0',
'each_ff' => '0',
'ff_timeout' => '0',
'unit' => '',
'macros' => '',
'quiet' => '0',
'cps' => '0',
'critical_instructions' => '',
'warning_instructions' => '',
'unknown_instructions' => '',
'critical_inverse' => '0',
'warning_inverse' => '0',
'percentage_critical' => '0',
'percentage_warning' => '0',
'cron_interval' => '* * * * *',
'id_category' => '0',
'disabled_types_event' => '{\"going_unknown\":0}',
'module_macros' => 'W10=',
'warning_time' => '0',
];
return modules_create_agent_module($id_agent, $module_name.'_status', $array_values);
}
/**
* Create module basic network and return module id.
*
* @param mixed $id_agent Id agent.
* @param mixed $id_group Id group.
* @param mixed $ip_target Ip target.
*
* @return interger Module id.
*/
function create_module_basic_network($id_agent, $id_group, $ip_target)
{
include_once 'include/functions_modules.php';
$array_values = [
'id_tipo_modulo' => '6',
'descripcion' => 'Basic network check (ping)',
'max' => '0',
'min' => '0',
'snmp_oid' => '',
'snmp_community' => 'public',
'id_module_group' => $id_group,
'module_interval' => '300',
'module_ff_interval' => '0',
'ip_target' => $ip_target,
'tcp_port' => '0',
'tcp_rcv' => '',
'tcp_send' => '',
'id_export' => '0',
'plugin_user' => '',
'plugin_pass' => '0',
'plugin_parameter' => '',
'id_plugin' => '0',
'post_process' => '0',
'prediction_module' => '0',
'max_timeout' => '0',
'max_retries' => '0',
'disabled' => '',
'id_modulo' => '2',
'custom_id' => '',
'history_data' => '1',
'dynamic_interval' => '0',
'dynamic_max' => '0',
'dynamic_min' => '0',
'dynamic_two_tailed' => '0',
'parent_module_id' => '0',
'min_warning' => '0',
'max_warning' => '0',
'str_warning' => '',
'min_critical' => '0',
'max_critical' => '0',
'str_critical' => '',
'custom_string_1' => '',
'custom_string_2' => '',
'custom_string_3' => '',
'custom_integer_1' => '0',
'custom_integer_2' => '0',
'min_ff_event' => '0',
'min_ff_event_normal' => '0',
'min_ff_event_warning' => '0',
'min_ff_event_critical' => '0',
'ff_type' => '0',
'each_ff' => '0',
'ff_timeout' => '0',
'unit' => '',
'macros' => '',
'quiet' => '0',
'cps' => '0',
'critical_instructions' => '',
'warning_instructions' => '',
'unknown_instructions' => '',
'critical_inverse' => '0',
'warning_inverse' => '0',
'percentage_critical' => '0',
'percentage_warning' => '0',
'cron_interval' => '* * * * *',
'id_category' => '0',
'disabled_types_event' => '{\"going_unknown\":0}',
'module_macros' => 'W10=',
'warning_time' => '0',
];
return modules_create_agent_module($id_agent, 'Basic_Network_Check', $array_values);
}
/**
* Create module latency network and return module id.
*
* @param mixed $id_agent Id agent.
* @param mixed $id_group Id group.
* @param mixed $ip_target Ip target.
*
* @return interger Module id.
*/
function create_module_latency_network($id_agent, $id_group, $ip_target)
{
include_once 'include/functions_modules.php';
$array_values = [
'id_tipo_modulo' => '7',
'descripcion' => 'Basic network connectivity check to measure network latency in miliseconds',
'max' => '0',
'min' => '0',
'snmp_oid' => '',
'snmp_community' => 'public',
'id_module_group' => $id_group,
'module_interval' => '300',
'module_ff_interval' => '0',
'ip_target' => $ip_target,
'tcp_port' => '0',
'tcp_rcv' => '',
'tcp_send' => '',
'id_export' => '0',
'plugin_user' => '',
'plugin_pass' => '0',
'plugin_parameter' => '',
'id_plugin' => '0',
'post_process' => '0',
'prediction_module' => '0',
'max_timeout' => '0',
'max_retries' => '0',
'disabled' => '',
'id_modulo' => '2',
'custom_id' => '',
'history_data' => '1',
'dynamic_interval' => '0',
'dynamic_max' => '0',
'dynamic_min' => '0',
'dynamic_two_tailed' => '1',
'parent_module_id' => '0',
'min_warning' => '0',
'max_warning' => '0',
'str_warning' => '',
'min_critical' => '0',
'max_critical' => '0',
'str_critical' => '',
'custom_string_1' => '',
'custom_string_2' => '',
'custom_string_3' => '',
'custom_integer_1' => '0',
'custom_integer_2' => '0',
'min_ff_event' => '0',
'min_ff_event_normal' => '0',
'min_ff_event_warning' => '0',
'min_ff_event_critical' => '0',
'ff_type' => '0',
'each_ff' => '0',
'ff_timeout' => '0',
'unit' => '',
'macros' => '',
'quiet' => '0',
'cps' => '0',
'critical_instructions' => '',
'warning_instructions' => '',
'unknown_instructions' => '',
'critical_inverse' => '0',
'warning_inverse' => '0',
'percentage_critical' => '0',
'percentage_warning' => '0',
'cron_interval' => '* * * * *',
'id_category' => '0',
'disabled_types_event' => '{\"going_unknown\":0}',
'module_macros' => 'W10=',
'warning_time' => '0',
];
return modules_create_agent_module($id_agent, 'Basic_Network_Latency', $array_values);
}
/**
* Create module packet lost and return module id.
*
* @param mixed $id_agent Id agent.
* @param mixed $id_group Id group.
* @param mixed $ip_target Ip target.
*
* @return interger Module id.
*/
function create_module_packet_lost($id_agent, $id_group, $ip_target)
{
include_once 'include/functions_modules.php';
$array_values = [
'id_tipo_modulo' => '1',
'descripcion' => 'Basic network connectivity check to measure packet loss in %',
'max' => '0',
'min' => '0',
'snmp_oid' => '',
'snmp_community' => 'public',
'id_module_group' => $id_group,
'module_interval' => '300',
'module_ff_interval' => '0',
'ip_target' => '',
'tcp_port' => '0',
'tcp_rcv' => '',
'tcp_send' => '',
'id_export' => '0',
'plugin_user' => '',
'plugin_pass' => '0',
'plugin_parameter' => '',
'id_plugin' => '9',
'post_process' => '0',
'prediction_module' => '0',
'max_timeout' => '0',
'max_retries' => '0',
'disabled' => '',
'id_modulo' => '4',
'custom_id' => '',
'history_data' => '1',
'dynamic_interval' => '0',
'dynamic_max' => '0',
'dynamic_min' => '0',
'dynamic_two_tailed' => '1',
'parent_module_id' => '0',
'min_warning' => '0',
'max_warning' => '0',
'str_warning' => '',
'min_critical' => '0',
'max_critical' => '0',
'str_critical' => '',
'custom_string_1' => '',
'custom_string_2' => '',
'custom_string_3' => '',
'custom_integer_1' => '0',
'custom_integer_2' => '0',
'min_ff_event' => '0',
'min_ff_event_normal' => '0',
'min_ff_event_warning' => '0',
'min_ff_event_critical' => '0',
'ff_type' => '0',
'each_ff' => '0',
'ff_timeout' => '0',
'unit' => '',
'macros' => '{"1":{"macro":"_field1_","desc":"Test time","help":"","value":"8","hide":""},"2":{"macro":"_field2_","desc":"Target IP","help":"","value":"'.$ip_target.'","hide":""}}',
'quiet' => '0',
'cps' => '0',
'critical_instructions' => '',
'warning_instructions' => '',
'unknown_instructions' => '',
'critical_inverse' => '0',
'warning_inverse' => '0',
'percentage_critical' => '0',
'percentage_warning' => '0',
'cron_interval' => '* * * * *',
'id_category' => '0',
'disabled_types_event' => '{\"going_unknown\":0}',
'module_macros' => 'W10=',
'warning_time' => '0',
];
return modules_create_agent_module($id_agent, 'Basic_Network_Packetloss', $array_values);
}
/**
* Create module packet lost and return module id.
*
* @param string $ip_target Ip and red mask.
*
* @return interger Module id.
*/
function create_net_scan($ip_target)
{
global $config;
include_once 'HostDevices.class.php';
$HostDevices = new HostDevices(1);
$id_recon_server = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_DISCOVERY], 'id_server')['id_server'];
$_POST = [
'page' => '1',
'interval_manual_defined' => '1',
'interval_select' => '-1',
'interval_text' => '0',
'interval' => '0',
'interval_units' => '1',
'taskname' => __('Basic network'),
'id_recon_server' => $id_recon_server,
'network' => $ip_target,
'id_group' => '8',
'comment' => __('Created on welcome'),
];
$task_created = $HostDevices->parseNetScan();
if ($task_created === true) {
$HostDevicesFinal = new HostDevices(2);
$_POST = [
'task' => $HostDevices->task['id_rt'],
'page' => '2',
'recon_ports' => '',
'auto_monitor' => 'on',
'id_network_profile' => ['0' => '2'],
'review_results' => 'on',
'review_limited' => '0',
'snmp_enabled' => 'on',
'snmp_version' => '1',
'snmp_skip_non_enabled_ifs' => 'on',
'community' => '',
'snmp_context' => '',
'snmp_auth_user' => '',
'snmp_security_level' => 'authNoPriv',
'snmp_auth_method' => 'MD5',
'snmp_auth_pass' => '',
'snmp_privacy_method' => 'AES',
'snmp_privacy_pass' => '',
'os_detect' => 'on',
'resolve_names' => 'on',
'parent_detection' => 'on',
'parent_recursion' => 'on',
'vlan_enabled' => 'on',
];
$task_final_created = $HostDevicesFinal->parseNetScan();
if ($task_final_created === true) {
$net_scan_id = $HostDevices->task['id_rt'];
unset($HostDevices, $HostDevicesFinal);
return $net_scan_id;
}
} else {
return 0;
}
}

View File

@ -88,7 +88,8 @@
}
#li-div_diagnosis,
#li-div_task_todo {
#li-div_task_todo,
#li-div_wizard_agent {
border-left: unset !important;
}
@ -96,3 +97,18 @@
#div_task_todo > label {
font-weight: bold;
}
button.buttonButton.onlyIcon.fail,
button.submitButton.onlyIcon.fail {
mask: url(../../images/fail@svg.svg) no-repeat center / contain;
-webkit-mask: url(../../images/fail@svg.svg) no-repeat center / contain;
}
.select2-container .select2-container--default .select2-container--open {
z-index: 2000;
}
#div_wizard_agent > .select2 {
width: 75% !important;
max-width: 75% !important;
}

View File

@ -11841,10 +11841,6 @@ span.help_icon_15px > img {
height: 15px !important;
}
.select2-dropdown {
z-index: 1116 !important;
}
.icon_connection_check {
width: 65px !important;
height: 65px !important;

View File

@ -71,7 +71,7 @@
position: absolute;
left: -100000px;
width: 100%;
z-index: 1115;
z-index: 1118;
}
.select2-results {
display: block;