From 7f7916a18d4a7379d75425ea553fea665e4fed98 Mon Sep 17 00:00:00 2001 From: enriquecd <enrique.camargo@artica.com> Date: Tue, 13 Feb 2018 12:29:55 +0100 Subject: [PATCH] Add new fileds to massive module edition - #1735 --- .../godmode/massive/massive_edit_modules.php | 209 +++++++++++++++++- .../include/javascript/pandora_modules.js | 2 +- 2 files changed, 209 insertions(+), 2 deletions(-) diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index db07eee465..77df7f3fe4 100755 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -640,6 +640,53 @@ $table->data['edit11'][3] = html_print_input_text( 'max_timeout', '', '', 5, 10, true) . ' ' . ui_print_help_tip ( __('Seconds that agent will wait for the execution of the module.'), true); + +$table->data['edit16'][0] = __('Retries'); +$table->data['edit16'][1] = html_print_input_text ('max_retries', '', '', 5, 10, true) . ' ' . + ui_print_help_tip ( + __('Number of retries that the module will attempt to run.'), true); + + + $table->data['edit22'][0] = __('Web checks').ui_print_help_icon ("web_checks", true);; + $table->data['edit22'][1] = '<textarea id="textarea_plugin_parameter" name="plugin_parameter" cols="65" rows="15"></textarea>'; + +$table->data['edit16'][2] = __('Port'); +$table->data['edit16'][3] = html_print_input_text ('tcp_port', '', '', 5, 20, true); + +$table->data['edit17'][0] = __('TCP send') . ' ' . ui_print_help_icon ("tcp_send", true); +$table->data['edit17'][1] = html_print_textarea ('tcp_send', 2, 65, '', '', true); + +$table->data['edit17'][2] = __('TCP receive'); +$table->data['edit17'][3] = html_print_textarea ('tcp_rcv', 2, 65, '', '', true); + +$table->data['edit18'][0] = __('WMI query') . ui_print_help_icon ('wmiquery', true); +$table->data['edit18'][1] = html_print_input_text ('snmp_oid', '', '', 35, 255, true); + +$table->data['edit18'][2] = __('Key string'); +$table->data['edit18'][3] = html_print_input_text ('snmp_community', '', '', 20, 60, true); + +$table->data['edit19'][0] = __('Field number') . ui_print_help_icon ('wmifield', true); +$table->data['edit19'][1] = html_print_input_text ('tcp_port', '', '', 5, 15, true); + +$table->data['edit20'][0] = __('Plugin') . ui_print_help_icon ('plugin_macros', true); +$table->data['edit20'][1] = html_print_select_from_sql ('SELECT id, name FROM tplugin ORDER BY name', + 'id_plugin', '', 'changePluginSelect();', __('None'), 0, true, false, false); + + + // Store the macros in base64 into a hidden control to move between pages + $table->data['edit21'][0] = html_print_input_hidden('macros',base64_encode($macros),true); + + if (!empty($id_plugin)) { + $preload = db_get_sql ("SELECT description FROM tplugin WHERE id = $id_plugin"); + $preload = io_safe_output ($preload); + $preload = str_replace ("\n", "<br>", $preload); + } + else { + $preload = ""; + } + + $table->data['edit21'][1] = '<span style="font-weight: normal;" id="plugin_description">'.$preload.'</span>'; + echo '<form method="post" ' . 'action="index.php?sec=gmassive&sec2=godmode/massive/massive_operations&option=edit_modules" ' . @@ -667,6 +714,8 @@ else { } ?> +<script type="text/javascript">flag_load_plugin_component = false;</script> +<script type="text/javascript" src="include/javascript/pandora_modules.js"></script> <script type="text/javascript"> /* <![CDATA[ */ @@ -739,6 +788,13 @@ $(document).ready (function () { "tr#delete_table-edit12, " + "tr#delete_table-edit13, " + "tr#delete_table-edit14, " + + "tr#delete_table-edit16, " + + "tr#delete_table-edit17, " + + "tr#delete_table-edit18, " + + "tr#delete_table-edit19, " + + "tr#delete_table-edit20, " + + "tr#delete_table-edit21, " + + "tr#delete_table-edit22, " + "tr#delete_table-edit15").hide (); var params = { @@ -804,6 +860,13 @@ $(document).ready (function () { "tr#delete_table-edit12, " + "tr#delete_table-edit13, " + "tr#delete_table-edit14, " + + "tr#delete_table-edit16, " + + "tr#delete_table-edit17, " + + "tr#delete_table-edit18, " + + "tr#delete_table-edit19, " + + "tr#delete_table-edit20, " + + "tr#delete_table-edit21, " + + "tr#delete_table-edit22, " + "tr#delete_table-edit15").show (); switch($('#module_type').val()) { @@ -892,6 +955,13 @@ $(document).ready (function () { "tr#delete_table-edit12, " + "tr#delete_table-edit13, " + "tr#delete_table-edit14, " + + "tr#delete_table-edit16, " + + "tr#delete_table-edit17, " + + "tr#delete_table-edit18, " + + "tr#delete_table-edit19, " + + "tr#delete_table-edit20, " + + "tr#delete_table-edit21, " + + "tr#delete_table-edit22, " + "tr#delete_table-edit15").hide (); $('input[type=checkbox]').attr('checked', false); $('input[type=checkbox]').attr('disabled', true); @@ -941,6 +1011,13 @@ $(document).ready (function () { "tr#delete_table-edit12, " + "tr#delete_table-edit13, " + "tr#delete_table-edit14, " + + "tr#delete_table-edit16, " + + "tr#delete_table-edit17, " + + "tr#delete_table-edit18, " + + "tr#delete_table-edit19, " + + "tr#delete_table-edit20, " + + "tr#delete_table-edit21, " + + "tr#delete_table-edit22, " + "tr#delete_table-edit15").hide (); } } @@ -984,6 +1061,13 @@ $(document).ready (function () { "tr#delete_table-edit12, " + "tr#delete_table-edit13, " + "tr#delete_table-edit14, " + + "tr#delete_table-edit16, " + + "tr#delete_table-edit17, " + + "tr#delete_table-edit18, " + + "tr#delete_table-edit19, " + + "tr#delete_table-edit20, " + + "tr#delete_table-edit21, " + + "tr#delete_table-edit22, " + "tr#delete_table-edit15").show (); } else { @@ -1008,6 +1092,13 @@ $(document).ready (function () { "tr#delete_table-edit12, " + "tr#delete_table-edit13, " + "tr#delete_table-edit14, " + + "tr#delete_table-edit16, " + + "tr#delete_table-edit17, " + + "tr#delete_table-edit18, " + + "tr#delete_table-edit19, " + + "tr#delete_table-edit20, " + + "tr#delete_table-edit21, " + + "tr#delete_table-edit22, " + "tr#delete_table-edit15").hide (); } } @@ -1091,6 +1182,13 @@ $(document).ready (function () { "tr#delete_table-edit12, " + "tr#delete_table-edit13, " + "tr#delete_table-edit14, " + + "tr#delete_table-edit16, " + + "tr#delete_table-edit17, " + + "tr#delete_table-edit18, " + + "tr#delete_table-edit19, " + + "tr#delete_table-edit20, " + + "tr#delete_table-edit21, " + + "tr#delete_table-edit22, " + "tr#delete_table-edit15").hide (); jQuery.post ("ajax.php", @@ -1183,6 +1281,56 @@ $(document).ready (function () { }); +function changePluginSelect() { + if (flag_load_plugin_component) { + flag_load_plugin_component = false; + + return; + } + + load_plugin_description($("#id_plugin").val()); + + load_plugin_macros_fields_massive('simple-macro'); + + forced_title_callback(); + } + + function load_plugin_macros_fields_massive(row_model_id) { + // Get plugin macros when selected and load macros fields + var id_plugin = $('#id_plugin').val(); + + var params = []; + params.push("page=include/ajax/module"); + params.push("get_plugin_macros=1"); + params.push("id_plugin=" + id_plugin); + + jQuery.ajax ({ + data: params.join ("&"), + type: 'POST', + url: action = get_php_value('absolute_homeurl') + "ajax.php", + dataType: 'json', + success: function (data) { + // Delete all the macro fields + $('.macro_field').remove(); + + if (data['array'] != null) { + $('#hidden-macros').val(data['base64']); + + jQuery.each (data['array'], function (i, macro) { + console.log(macro); + if (macro['desc'] != '') { + $("#delete_table-edit21").after("<tr class='macro_field' id='delete_table-edit"+(80+parseInt(i))+"'><td style='font-weight:bold;'>"+macro['desc']+"<input type='hidden' name='desc"+macro['macro']+"' value='"+macro['desc']+"'></td><td><input type='text' name='"+macro['macro']+"'></td></tr>"); + } + }); + //Plugin text can be larger + $(".macro_field").find(":input").attr("maxlength", 1023); + // Add again the hover event to the 'force_callback' elements + forced_title_callback(); + } + } + }); + } + function disabled_status () { if($('#dynamic_interval_select').val() != 0){ $('#text-min_warning').prop('readonly', true); @@ -1231,13 +1379,71 @@ function process_manage_edit ($module_name, $agents_select = null, $module_statu 'id_category', 'disabled_types_event', 'ip_target', "custom_ip_target", 'descripcion', 'min_ff_event_normal', 'min_ff_event_warning', 'min_ff_event_critical', 'each_ff', 'module_ff_interval', - 'ff_timeout', 'max_timeout'); + 'ff_timeout', 'max_timeout','tcp_port','max_retries','tcp_rcv','id_plugin'); $values = array (); foreach ($fields as $field) { $value = get_parameter ($field, ''); switch ($field) { + case 'id_plugin': + if ($value != 0) { + + $value_field_1 = get_parameter ('_field1_', ''); + $value_field_1_desc = get_parameter ('desc_field1_', ''); + + $value_field_2 = get_parameter ('_field2_', ''); + $value_field_2_desc = get_parameter ('desc_field2_', ''); + + $value_field_3 = get_parameter ('_field3_', ''); + $value_field_3_desc = get_parameter ('desc_field3_', ''); + + $value_field_4 = get_parameter ('_field4_', ''); + $value_field_4_desc = get_parameter ('desc_field4_', ''); + + $value_field_5 = get_parameter ('_field5_', ''); + $value_field_5_desc = get_parameter ('desc_field5_', ''); + + $values['macros'] = '{"1":{"macro":"_field1_","desc":"'.io_safe_input($value_field_1_desc).'","help":"'.io_safe_input($value_field_1_desc).'","value":"'.$value_field_1.'"}'; + + if($value_field_2_desc != ''){ + $values['macros'] .= ',"2":{"macro":"_field2_","desc":"'.io_safe_input($value_field_2_desc).'","help":"'.io_safe_input($value_field_2_desc).'","value":"'.$value_field_2.'"}'; + + if($value_field_3_desc != ''){ + $values['macros'] .= ',"3":{"macro":"_field3_","desc":"'.io_safe_input($value_field_3_desc).'","help":"'.io_safe_input($value_field_3_desc).'","value":"'.$value_field_3.'"}'; + + if($value_field_4_desc != ''){ + $values['macros'] .= ',"4":{"macro":"_field4_","desc":"'.io_safe_input($value_field_4_desc).'","help":"'.io_safe_input($value_field_4_desc).'","value":"'.$value_field_4.'"}'; + + if($value_field_5_desc != ''){ + $values['macros'] .= ',"5":{"macro":"_field5_","desc":"'.io_safe_input($value_field_5_desc).'","help":"'.io_safe_input($value_field_5_desc).'","value":"'.$value_field_5.'"}'; + } + else{ + $values['macros'] .= '}'; + } + + } + else{ + $values['macros'] .= '}'; + } + + } + else{ + $values['macros'] .= '}'; + } + + } + else{ + $values['macros'] .= '}'; + } + + + + } + + + + break; case 'module_interval': if ($value != 0) { $values[$field] = $value; @@ -1347,6 +1553,7 @@ function process_manage_edit ($module_name, $agents_select = null, $module_statu } foreach ($modules as $module) { + $result = modules_update_agent_module( $module['id_agente_modulo'], $values, true, $update_tags); diff --git a/pandora_console/include/javascript/pandora_modules.js b/pandora_console/include/javascript/pandora_modules.js index 06b9f5485f..e4c6c3f708 100644 --- a/pandora_console/include/javascript/pandora_modules.js +++ b/pandora_console/include/javascript/pandora_modules.js @@ -930,4 +930,4 @@ function delete_macro (num) { } // Do not decrease the macro counter or new macros may overlap existing ones! -} +} \ No newline at end of file