Fixed the preview alert action in the form editor. TICKET: #1944

This commit is contained in:
mdtrooper 2015-03-10 15:13:14 +01:00
parent ce108bb54c
commit b7264f61c3
3 changed files with 80 additions and 30 deletions

View File

@ -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] .
' <br><span style="font-size:xx-small; font-weight:normal;">' . sprintf(__('Field %s'), $i) . '</span>';
' <br><span style="font-size:xx-small; font-weight:normal;">' .
sprintf(__('Field %s'), $i) . '</span>';
}
else {
// If the macro hasn't description and doesnt appear in command, set with empty description to dont show it
@ -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);
}

View File

@ -51,14 +51,18 @@ if ($al_action !== false) {
if (defined('METACONSOLE'))
alerts_meta_print_header();
else
ui_print_page_header (__('Alerts').' &raquo; '.__('Configure alert action'), "images/gm_alerts.png", false, "alert_config", true);
ui_print_page_header (__('Alerts') . ' &raquo; ' .
__('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').' &raquo; '.__('Configure alert action'), "images/gm_alerts.png", false, "alert_config", true);
ui_print_page_header (__('Alerts') . ' &raquo; ' .
__('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 '<form method="post" action="index.php?sec=' . $sec . '&sec2=godmode/alerts/alert_actions&pure='.$pure.'">';
echo '<form method="post" action="' .
'index.php?sec=' . $sec . '&' .
'sec2=godmode/alerts/alert_actions&' .
'pure=' . $pure . '">';
$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();
@ -289,6 +313,12 @@ $(document).ready (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);
});
},
"json"
);

View File

@ -8,28 +8,39 @@ 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");
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) {