fixed ace editor on message edition

This commit is contained in:
Julien Chanséaume
2014-08-13 11:29:25 +02:00
parent 9a43f5aa3c
commit 8044736f34

View File

@@ -116,7 +116,7 @@
{form_field form=$form field='html_template_file_name'} {form_field form=$form field='html_template_file_name'}
<div class="form-group {if $error}has-error{/if}"> <div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} : </label> <label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} : </label>
<select data-toggle-textarea="thelia_message_modification[html_message]" id="{$label_attr.for}" name="{$name}" {if $required}required="required"{/if} title="{$label}" class="textarea-toggle form-control"> <select data-toggle-textarea="html_message" id="{$label_attr.for}" name="{$name}" {if $required}required="required"{/if} title="{$label}" class="textarea-toggle form-control">
<option value="">{intl l='Use HTML message defined below'}</option> <option value="">{intl l='Use HTML message defined below'}</option>
{foreach $html_template_list as $template} {foreach $html_template_list as $template}
<option value="{$template}" {if $template == $value}selected="selected"{/if}>{$template}</option> <option value="{$template}" {if $template == $value}selected="selected"{/if}>{$template}</option>
@@ -168,7 +168,7 @@
{form_field form=$form field='text_template_file_name'} {form_field form=$form field='text_template_file_name'}
<div class="form-group {if $error}has-error{/if}"> <div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} : </label> <label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} : </label>
<select data-toggle-textarea="thelia_message_modification[text_message]" id="{$label_attr.for}" name="{$name}" {if $required}required="required"{/if} title="{$label}" class="textarea-toggle form-control"> <select data-toggle-textarea="text_message" id="{$label_attr.for}" name="{$name}" {if $required}required="required"{/if} title="{$label}" class="textarea-toggle form-control">
<option value="">{intl l='Use Text message defined below'}</option> <option value="">{intl l='Use Text message defined below'}</option>
{foreach $text_template_list as $template} {foreach $text_template_list as $template}
<option value="{$template}" {if $template == $value}selected="selected"{/if}>{$template}</option> <option value="{$template}" {if $template == $value}selected="selected"{/if}>{$template}</option>
@@ -230,34 +230,38 @@
<script> <script>
(function($) { (function($) {
var editor; var editor = {
"text_message": null,
"html_message": null
};
$('select.textarea-toggle').change(function(ev) { $('select.textarea-toggle').change(function(ev) {
var aceEditor = editor[$(this).data('toggle-textarea')];
if ($(this).val() != '') { if ($(this).val() != '') {
editor = ace.edit($(this).data('toggle-textarea')); aceEditor.setReadOnly(true);
editor.setReadOnly(true);
} }
else { else {
editor = ace.edit($(this).data('toggle-textarea')); aceEditor.setReadOnly(false);
editor.setReadOnly(true);
} }
}); });
var elems = ["thelia_message_modification[html_message]", "thelia_message_modification[text_message]"] var elems = ["html_message", "text_message"]
$.each(elems, function(index, value){ $.each(elems, function(index, value){
editor = ace.edit(value); editor[value] = ace.edit('thelia_message_modification[' + value + ']');
var textarea = $('textarea[name="' + value + '"]').hide(); var textarea = $('textarea[name="thelia_message_modification[' + value + ']"]').hide();
editor.setTheme("ace/theme/monokai"); editor[value].setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/smarty"); editor[value].getSession().setMode("ace/mode/smarty");
editor.getSession().on("change", function () { editor[value].getSession().on("change", function () {
textarea.val(editor.getSession().getValue()); textarea.val(editor[value].getSession().getValue());
}); });
textarea.val(editor.getSession().getValue()); textarea.val(editor[value].getSession().getValue());
}); });
$('select.textarea-toggle').change();
})(jQuery); })(jQuery);
</script> </script>
{/block} {/block}