From b7264f61c34c12f95dbfd0d67cf354740bf27a6e Mon Sep 17 00:00:00 2001 From: mdtrooper Date: Tue, 10 Mar 2015 15:13:14 +0100 Subject: [PATCH] Fixed the preview alert action in the form editor. TICKET: #1944 --- .../godmode/alerts/alert_commands.php | 27 +++++--- .../godmode/alerts/configure_alert_action.php | 62 ++++++++++++++----- .../include/javascript/pandora_alerts.js | 21 +++++-- 3 files changed, 80 insertions(+), 30 deletions(-) diff --git a/pandora_console/godmode/alerts/alert_commands.php b/pandora_console/godmode/alerts/alert_commands.php index 532866631c..941300975a 100644 --- a/pandora_console/godmode/alerts/alert_commands.php +++ b/pandora_console/godmode/alerts/alert_commands.php @@ -61,16 +61,19 @@ if (is_ajax ()) { // Get the html rows of the fields form // Descriptions are stored in json - $fields_descriptions = empty($command['fields_descriptions']) ? '' : json_decode(io_safe_output($command['fields_descriptions']), true); + $fields_descriptions = empty($command['fields_descriptions']) ? + '' : json_decode(io_safe_output($command['fields_descriptions']), true); // Fields values are stored in json - $fields_values = empty($command['fields_values']) ? '' : io_safe_output(json_decode($command['fields_values'], true)); + $fields_values = empty($command['fields_values']) ? + '' : io_safe_output(json_decode($command['fields_values'], true)); $fields_rows = array(); for ($i = 1; $i <= 10; $i++) { if (!empty($fields_descriptions[$i - 1])) { $fdesc = $fields_descriptions[$i - 1] . - '
' . sprintf(__('Field %s'), $i) . ''; + '
' . + sprintf(__('Field %s'), $i) . ''; } else { // If the macro hasn't description and doesnt appear in command, set with empty description to dont show it @@ -82,9 +85,9 @@ if (is_ajax ()) { } } - if (!empty($fields_values[$i-1])) { + if (!empty($fields_values[$i - 1])) { $fields_value_select = array(); - $fv = $fields_values[$i-1]; + $fv = $fields_values[$i - 1]; $fv = explode(';', $fv); if (empty($fv)) { @@ -96,12 +99,18 @@ if (is_ajax ()) { $fields_value_select[$fv_option[0]] = $fv_option[1]; } - $ffield = html_print_select($fields_value_select, 'field'.$i.'_value', '', '', '', 0, true, false, false); - $rfield = html_print_select($fields_value_select, 'field'.$i.'_recovery_value', '', '', '', 0, true, false, false); + + $ffield = html_print_select($fields_value_select, + 'field' . $i . '_value', '', '', '', 0, true, false, false, 'fields'); + $rfield = html_print_select($fields_value_select, + 'field' . $i . '_recovery_value', '', '', '', 0, true, false, false, 'fields_recovery'); } else { - $ffield = html_print_textarea ('field'.$i.'_value', 1, 1, '', 'style="min-height:40px" class="fields"', true); - $rfield = html_print_textarea ('field'.$i.'_recovery_value', 1, 1, '', 'style="min-height:40px" class="fields_recovery"', true); + $ffield = html_print_textarea ('field' . $i . '_value', + 1, 1, '', 'style="min-height:40px" class="fields"', true); + $rfield = html_print_textarea ( + 'field' . $i . '_recovery_value', 1, 1, '', + 'style="min-height:40px" class="fields_recovery"', true); } diff --git a/pandora_console/godmode/alerts/configure_alert_action.php b/pandora_console/godmode/alerts/configure_alert_action.php index 549fa29c29..4631b1bf0e 100644 --- a/pandora_console/godmode/alerts/configure_alert_action.php +++ b/pandora_console/godmode/alerts/configure_alert_action.php @@ -51,14 +51,18 @@ if ($al_action !== false) { if (defined('METACONSOLE')) alerts_meta_print_header(); else - ui_print_page_header (__('Alerts').' » '.__('Configure alert action'), "images/gm_alerts.png", false, "alert_config", true); + ui_print_page_header (__('Alerts') . ' » ' . + __('Configure alert action'), "images/gm_alerts.png", false, + "alert_config", true); } else { // Header if (defined('METACONSOLE')) alerts_meta_print_header(); else - ui_print_page_header (__('Alerts').' » '.__('Configure alert action'), "images/gm_alerts.png", false, "alert_config", true); + ui_print_page_header (__('Alerts') . ' » ' . + __('Configure alert action'), "images/gm_alerts.png", false, + "alert_config", true); } enterprise_hook('open_meta_frame'); @@ -78,7 +82,10 @@ if ($id) { } // Hidden div with help hint to fill with javascript -html_print_div(array('id' => 'help_alert_macros_hint', 'content' => ui_print_help_icon ('alert_macros', true), 'hidden' => true)); +html_print_div( + array('id' => 'help_alert_macros_hint', + 'content' => ui_print_help_icon ('alert_macros', true), + 'hidden' => true)); $table->id = 'table_macros'; $table->width = '98%'; @@ -136,19 +143,30 @@ $table->data[5][2] = html_print_textarea ('command_recovery_preview', 5, 30, '', $row = 6; for ($i = 1; $i <= 10; $i++) { - $table->data['field' . $i][0] = html_print_image('images/spinner.gif', true); - $table->data['field' . $i][1] = html_print_image('images/spinner.gif', true); - $table->data['field' . $i][2] = html_print_image('images/spinner.gif', true); + $table->data['field' . $i][0] = html_print_image( + 'images/spinner.gif', true); + $table->data['field' . $i][1] = html_print_image( + 'images/spinner.gif', true); + $table->data['field' . $i][2] = html_print_image( + 'images/spinner.gif', true); + // Store the value in a hidden to keep it on first execution - $table->data['field' . $i][1] .= html_print_input_hidden('field' . $i . '_value', + $table->data['field' . $i][1] .= html_print_input_hidden( + 'field' . $i . '_value', !empty($action['field' . $i]) ? - $action['field' . $i] : '', true); - $table->data['field' . $i][2] .= html_print_input_hidden('field' . $i . '_recovery_value', + $action['field' . $i] : '', + true); + $table->data['field' . $i][2] .= html_print_input_hidden( + 'field' . $i . '_recovery_value', !empty($action['field' . $i . '_recovery']) ? - $action['field' . $i . '_recovery'] : '', true); + $action['field' . $i . '_recovery'] : '', + true); } -echo '
'; +echo ''; $table_html = html_print_table ($table, true); //////////////////////////////////////////////////////////////////////// @@ -248,12 +266,15 @@ $(document).ready (function () { // Only keep the value if is provided from hidden (first time) if (($("[name=field" + i + "_value]").attr('id')) == ("hidden-field" + i + "_value")) { + old_value = $("[name=field" + i + "_value]").val(); } if (($("[name=field" + i + "_recovery_value]").attr('id')) == ("hidden-field" + i + "_recovery_value")) { - old_recovery_value = $("[name=field" + i + "_recovery_value]").val(); + + old_recovery_value = + $("[name=field" + i + "_recovery_value]").val(); } // If the row is empty, hide de row @@ -263,7 +284,8 @@ $(document).ready (function () { else { $('#table_macros-field' + i).replaceWith(field_row); $("[name=field" + i + "_value]").val(old_value); - $("[name=field" + i + "_recovery_value]").val(old_recovery_value); + $("[name=field" + i + "_recovery_value]") + .val(old_recovery_value); // Add help hint only in first field @@ -273,7 +295,9 @@ $(document).ready (function () { $(td_content) .html( - $(td_content).html() + $('#help_alert_macros_hint').html()); + $(td_content).html() + + $('#help_alert_macros_hint').html() + ); } $('#table_macros-field' + i).show(); @@ -283,10 +307,16 @@ $(document).ready (function () { render_command_preview(original_command); render_command_recovery_preview(original_command); - $(".fields").keyup (function() { + $(".fields").keyup(function() { render_command_preview(original_command); }); - $(".fields_recovery").keyup (function() { + $(".fields_recovery").keyup(function() { + render_command_recovery_preview(original_command); + }); + $("select.fields").change(function() { + render_command_preview(original_command); + }); + $("select.fields_recovery").change(function() { render_command_recovery_preview(original_command); }); }, diff --git a/pandora_console/include/javascript/pandora_alerts.js b/pandora_console/include/javascript/pandora_alerts.js index e9b7c64727..f91bbabfe8 100644 --- a/pandora_console/include/javascript/pandora_alerts.js +++ b/pandora_console/include/javascript/pandora_alerts.js @@ -8,33 +8,44 @@ function parse_alert_command (command, classs) { classs = 'fields'; } + + var nfield = 1; $('.' + classs).each(function() { + // Only render values different from '' if ($(this).val() == '') { + nfield++; + return; } var field = '_field' + nfield + '_'; - nfield++; - var regex = new RegExp(field,"gi"); + + var regex = new RegExp(field, "gi"); + + command = command.replace (regex, $(this).val()); + + nfield++; }); return command; } function render_command_preview (original_command) { - $("#textarea_command_preview").text (parse_alert_command (original_command, '')); + $("#textarea_command_preview") + .text(parse_alert_command (original_command, '')); } function render_command_recovery_preview (original_command) { - $("#textarea_command_recovery_preview").text (parse_alert_command (original_command, 'recovery')); + $("#textarea_command_recovery_preview") + .text(parse_alert_command (original_command, 'recovery')); } function render_command_description (command_description) { if (command_description != '') { - command_description = '
'+command_description; + command_description = '
' + command_description; } $("#command_description").html(command_description); }