You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
428 lines
16 KiB
428 lines
16 KiB
9 years ago
|
<div class="title">
|
||
|
<h5>{if !$smarty.request.id}{#MAILER_MAILS_ADD_TITLE#}{else}{#MAILER_MAILS_EDIT_TITLE#}{/if}</h5>
|
||
|
</div>
|
||
|
{*<div class="widget" style="margin-top: 0px;">
|
||
|
<div class="body">
|
||
|
{#MAILER_MAILS_ADD_INFO#}
|
||
|
</div>
|
||
|
</div>*}
|
||
|
<div class="breadCrumbHolder module">
|
||
|
<div class="breadCrumb module">
|
||
|
<ul>
|
||
|
<li class="firstB">
|
||
|
<a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=1&cp={$sess}">{#MAILER_MODULE_NAME#}</a>
|
||
|
</li>
|
||
|
<li>{if !$smarty.request.id}{#MAILER_MAILS_ADD_TITLE#}{else}{#MAILER_MAILS_EDIT_TITLE#}{/if}</li>
|
||
|
<li><strong class="code">{if !$smarty.request.id}{#MAILER_MAILS_NEW_TITLE#}{else}{$mail->subject}{/if}</strong></li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
</div>
|
||
|
<form action="index.php?do=modules&action=modedit&mod=mailer&moduleaction=savemail&act=go&id={$smarty.request.id}&cp={$sess}" method="post" enctype="multipart/form-data" class="mainForm" id="mail_form">
|
||
|
<div class="widget first">
|
||
|
<div class="head">
|
||
|
<h5 class="iFrames">{#MAILER_MAILS_HEAD_MAIL#}</h5>
|
||
|
</div>
|
||
|
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||
|
<col width="250">
|
||
|
<tr class="noborder">
|
||
|
<td>{#MAILER_MAILS_SUBJECT#}</td>
|
||
|
<td><div class="pr12">
|
||
|
<input class="mousetrap" name="subject" type="text" id="subject" style="width:300px" value="{$mail->subject}" />
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_FORMAT#}</td>
|
||
|
<td><div class="pr12">
|
||
|
<input type="radio" name="type" value="html" {if $mail->type!='text'}checked="checked"{/if}/>
|
||
|
<label>HTML</label>
|
||
|
<input id="radio_text" type="radio" name="type" value="text" {if $mail->type=='text'}checked="checked"{/if}/>
|
||
|
<label>{#MAILER_MAILS_TEXT#}</label>
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_TEXT#}<br /><small>{#MAILER_MAILS_TEXT_I#}</small></td>
|
||
|
<td>
|
||
|
<div class="pr12" id="html">
|
||
|
<textarea class="mousetrap" name="body" id="codemirror" style="width:100%;height:300px">{$mail->body}</textarea>
|
||
|
</div>
|
||
|
<div class="pr12" id="text">
|
||
|
<textarea class="mousetrap" name="body" style="width:100%;height:300px">{$mail->body}</textarea>
|
||
|
</div>
|
||
|
<div class="pr12" style="margin-top:4px;">
|
||
|
<a style="float:left; margin:6px 3px 0;" class="icon_sprite ico_list" target="_blank" href="/index.php?module=mailer&action=show&id={$mail->id}&onlycontent=1"></a>
|
||
|
<strong><a {if !$smarty.request.id}onClick="jAlert('{#MAILER_MAILS_SHOW_ALERT#}','{#MAILER_SHOWING#}');return false;"{/if} style="float:left; padding:4px 0" target="_blank" href="/index.php?module=mailer&action=show&id={$smarty.request.id}&onlycontent=1">{#MAILER_MAILS_SHOW#} »</a></strong>
|
||
|
</div>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_APPEAL#}<br /><small>{#MAILER_MAILS_APPEAL_I#}</small></td>
|
||
|
<td><div class="pr12" id="ed1">
|
||
|
<input class="mousetrap" type="text" name="appeal" value="{$mail->appeal}" style="width:300px" />
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_ATTACH#}<br /><small>{#MAILER_MAILS_ATTACH_I#}</small></td>
|
||
|
<td id="attach_td">
|
||
|
<div style="clear:both;margin:4px 0;">
|
||
|
<input name="attach[]" type="file" class="fileInput multi" />
|
||
|
</div>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_SAVEATTACH#}</td>
|
||
|
<td><div class="pr12">
|
||
|
<input type="radio" name="saveattach" value="1" {if $mail->saveattach}checked="checked"{/if} />
|
||
|
<label>{#MAILER_YES#}</label>
|
||
|
<input type="radio" name="saveattach" value="0" {if !$mail->saveattach}checked="checked"{/if} />
|
||
|
<label>{#MAILER_NO#}</label>
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<div class="rowElem">
|
||
|
<input onclick="save_func(false);" class="basicBtn" type="button" value="{#MAILER_MAILS_SAVE_BTN#}" />
|
||
|
|
||
|
<input class="blackBtn SaveEdit" type="button" value="{#MAILER_MAILS_SAVE_BTN_C#}" />
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div class="widget first">
|
||
|
<div class="head">
|
||
|
<h5 class="iFrames">{#MAILER_MAILS_HEAD_SET#}</h5>
|
||
|
</div>
|
||
|
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||
|
<col width="250">
|
||
|
<tr class="noborder">
|
||
|
<td>{#MAILER_MAILS_FROM_NAME#}</td>
|
||
|
<td><div class="pr12">
|
||
|
<input class="mousetrap" name="from_name" type="text" id="from_name" value="{$mail->from_name}" style="width:300px" />
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_FROM_EMAIL#}</td>
|
||
|
<td><div class="pr12">
|
||
|
<input class="mousetrap" name="from_email" type="text" id="from_email" value="{$mail->from_email}" style="width:300px" onchange="if($(this).val()) checkemail($(this).val());" />
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_FROM_COPY#}</td>
|
||
|
<td><div class="pr12">
|
||
|
<input class="mousetrap" id="from_copy" name="from_copy" type="checkbox" value="1"{if $mail->from_copy} checked{/if} />
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_RECIEVERS#}: {#MAILER_MAILS_REC_GROUPS#} "{$mail->site_name}"<br />
|
||
|
<small>{#MAILER_MAILS_CTRL#}</small></td>
|
||
|
<td><div class="pr12">
|
||
|
<select class="mousetrap" id="groups" name="to_groups[]" size="{if $mail->usergroups|@count < 8}{$mail->usergroups|@count}{else}8{/if}" multiple="multiple" style="min-width:310px">
|
||
|
{foreach from=$mail->usergroups item=usergroup}
|
||
|
<option value="{$usergroup->user_group}" {if $usergroup->user_group|in_array:$mail->to_groups} selected="selected"{/if}>{$usergroup->user_group_name|escape}</option>
|
||
|
{/foreach}
|
||
|
</select>
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_RECIEVERS#}: {#MAILER_MAILS_REC_LISTS#}<br />
|
||
|
<small>{#MAILER_MAILS_CTRL#}</small></td>
|
||
|
<td><div class="pr12">
|
||
|
<select class="mousetrap" id="lists" name="to_lists[]" size="{if $mail->lists|@count < 8}{$mail->lists|@count}{else}8{/if}" multiple="multiple" style="min-width:310px">
|
||
|
{foreach from=$mail->lists item=title key=id}
|
||
|
<option value="{$id}" {if $id|in_array:$mail->to_lists} selected="selected"{/if}>{$title|escape}</option>
|
||
|
{/foreach}
|
||
|
</select>
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_REC_ADD#}<br /><small>{#MAILER_MAILS_REC_ADD_I#}</small></td>
|
||
|
<td><div class="pr12">
|
||
|
<textarea class="mousetrap" name="to_add" id="to_add" style="width:300px; height:50px" onchange="if($(this).val()) checkemail($(this).val());">{$mail->to_add}</textarea>
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_FINAL_REC#}</td>
|
||
|
<td><div class="pr12">
|
||
|
<input type="button" class="greenBtn" onclick="countMail();" value="{#MAILER_MAILS_MAKE_FIN#}"/> ({#MAILER_MAILS_FINAL_TXT#})
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>{#MAILER_MAILS_TIMING#}</td>
|
||
|
<td><div class="pr12">
|
||
|
<select name="timing" id="timing">
|
||
|
<option value="" {if $mail->timing==''}selected=selected{/if}>{#MAILER_MAILS_TIM_ALL#}</option>
|
||
|
<option value="100" {if $mail->timing=='100'}selected=selected{/if}>{#MAILER_MAILS_TIM_100#}</option>
|
||
|
<option value="200" {if $mail->timing=='200'}selected=selected{/if}>{#MAILER_MAILS_TIM_200#}</option>
|
||
|
<option value="300" {if $mail->timing=='300'}selected=selected{/if}>{#MAILER_MAILS_TIM_300#}</option>
|
||
|
</select>
|
||
|
</div></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<div class="rowElem">
|
||
|
<input onclick="save_func(false);" class="basicBtn" type="button" value="{#MAILER_MAILS_SAVE_BTN#}" />
|
||
|
|
||
|
<input class="blackBtn SaveEdit" type="button" value="{#MAILER_MAILS_SAVE_BTN_C#}" />
|
||
|
|
||
|
<input type="button" onclick="test();" class="greenBtn" value="{#MAILER_MAILS_TEST_BTN#}" />
|
||
|
|
||
|
<input type="button" onclick="presend();" id="butt_send" class="redBtn" value="{#MAILER_MAILS_SEND_BTN#}" /><span id="send_stop" style="display:none"> {#MAILER_MAILS_STOP#}</span>
|
||
|
<div id="progressbar" style="display:none;clear:both;margin-top:10px;"></div>
|
||
|
<div id="delay" class="highlight yellow" style="display:none;margin-top:10px;">{#MAILER_MAILS_DELAY#}</div>
|
||
|
<div id="sent_ok" class="highlight yellow" style="{if !$mail->sent}display:none;{/if}margin-top:10px;">{if $mail->sent}{$mail->date|date_format:$TIME_FORMAT|pretty_date} {/if}{#MAILER_SENT_OK_TEXT#}
|
||
|
<strong><a href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=1&cp={$sess}">» {#MAILER_SENT_OK_LINK#}</a></strong></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</form>
|
||
|
<script>
|
||
|
{if $mail->sent} $(':input').attr('disabled','disabled');{/if}
|
||
|
|
||
|
function test() {ldelim}
|
||
|
if (full_check(false)) {ldelim}
|
||
|
jPrompt('{#MAILER_MAILS_SEND_TEST#}','{$test_email}','{#MAILER_SENDING_TEST#}',function(emails){ldelim}
|
||
|
if(!emails) return false;
|
||
|
$("#mail_form").ajaxSubmit({ldelim}
|
||
|
url: 'index.php?do=modules&action=modedit&mod=mailer&moduleaction=testsend&id={$smarty.request.id}&cp={$sess}',
|
||
|
data: ({ldelim}'emails': emails{rdelim}),
|
||
|
beforeSubmit: function() {ldelim}$.alerts._overlay('show');{rdelim},
|
||
|
success: function(data) {ldelim}
|
||
|
$.alerts._overlay('hide');
|
||
|
$.jGrowl('{#MAILER_MAILS_TEST_OK#} '+data);
|
||
|
{rdelim}
|
||
|
{rdelim});
|
||
|
{rdelim});
|
||
|
{rdelim}
|
||
|
{rdelim}
|
||
|
|
||
|
function presend() {ldelim}
|
||
|
if (full_check(true)) {ldelim}
|
||
|
jConfirm('{#MAILER_MAILS_SEND_Q#}','{#MAILER_SENDING#}',function(b){ldelim}
|
||
|
if (b){ldelim}
|
||
|
$("#mail_form").ajaxSubmit({ldelim}
|
||
|
url: 'index.php?do=modules&action=modedit&mod=mailer&moduleaction=savemail&id={$smarty.request.id}&cp={$sess}',
|
||
|
data: ({ldelim}act:'send'{rdelim}),
|
||
|
beforeSubmit: function() {ldelim}
|
||
|
$("#progressbar").show().progressbar({ldelim}value: 0{rdelim});
|
||
|
$('#send_stop').fadeIn();
|
||
|
$.alerts._overlay('show');
|
||
|
{rdelim},
|
||
|
success: function(data) {ldelim}
|
||
|
$(':input').attr('disabled','disabled');
|
||
|
mail_id = Number(data);
|
||
|
send();
|
||
|
{rdelim}
|
||
|
{rdelim});
|
||
|
{rdelim}
|
||
|
{rdelim});
|
||
|
{rdelim}
|
||
|
{rdelim}
|
||
|
|
||
|
function send() {ldelim}
|
||
|
if(delay) {ldelim}
|
||
|
$('#delay').fadeOut();
|
||
|
$.alerts._overlay('show');
|
||
|
delay = false;
|
||
|
{rdelim}
|
||
|
$("#mail_form").ajaxSubmit({ldelim}
|
||
|
url: 'index.php?do=modules&action=modedit&mod=mailer&moduleaction=sendmail&id={$smarty.request.id}&cp={$sess}',
|
||
|
data: ({ldelim}mail_id: mail_id{rdelim}),
|
||
|
success: function(data) {ldelim}
|
||
|
if (data == 'finish') {ldelim}
|
||
|
$.alerts._overlay('hide');
|
||
|
$.jGrowl("{#MAILER_SENT_OK#}");
|
||
|
$("#sent_ok").show();
|
||
|
location.reload();
|
||
|
{rdelim}
|
||
|
else if (data == 'pause') {ldelim}
|
||
|
// считаем время + час
|
||
|
var current = new Date();
|
||
|
var hour = current.getTime() + 3600000;
|
||
|
var d = new Date(hour);
|
||
|
var month = d.getMonth()+1;
|
||
|
var date_str = d.getDate()+'.'+month+'.'+d.getFullYear()+' '+d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
|
||
|
// вставляем в сообщение и показываем
|
||
|
$('#delay_time').text(date_str);
|
||
|
$('#delay').fadeIn();
|
||
|
$.alerts._overlay('hide');
|
||
|
delay = true;
|
||
|
send_delay = setTimeout(function(){ldelim}send(){rdelim},3600000);
|
||
|
{rdelim}
|
||
|
else {ldelim}
|
||
|
$("#progressbar").progressbar({ldelim}value: Number(data){rdelim});
|
||
|
send();
|
||
|
{rdelim}
|
||
|
{rdelim}
|
||
|
{rdelim});
|
||
|
{rdelim}
|
||
|
|
||
|
var save_form = {ldelim}
|
||
|
url: 'index.php?do=modules&action=modedit&mod=mailer&moduleaction=savemail&id={$smarty.request.id}&cp={$sess}',
|
||
|
beforeSubmit: function() {ldelim}$.alerts._overlay('show');{rdelim},
|
||
|
data: ({ldelim}act:'ajaxsave'{rdelim}),
|
||
|
success: function(data) {ldelim}
|
||
|
$.jGrowl('{#MAILS_SAVED#}');
|
||
|
{if !$smarty.request.id} location.href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&id="+data+"&cp={$sess}";
|
||
|
{else}$.alerts._overlay('hide');{/if}
|
||
|
{rdelim}
|
||
|
{rdelim}
|
||
|
|
||
|
function save_func(ajax) {ldelim}
|
||
|
if (!$("#subject").val()) {ldelim}
|
||
|
jAlert('{#MAILER_ERR_SUBJECT#}','{#MAILER_SENDING#}',
|
||
|
function() {ldelim}$("#subject").focus();{rdelim});
|
||
|
return false;
|
||
|
{rdelim}
|
||
|
|
||
|
if ($(".fileInput").val()) {ldelim}
|
||
|
jAlert('{#MAILER_ALERT_ATTACH#}','{#MAILER_SAVING#}',
|
||
|
function() {ldelim}
|
||
|
if(!ajax) $("#mail_form").submit();
|
||
|
else {ldelim}
|
||
|
$("#mail_form").ajaxSubmit(save_form);
|
||
|
{rdelim}
|
||
|
{rdelim});
|
||
|
{rdelim}
|
||
|
else {ldelim}
|
||
|
if(!ajax) $("#mail_form").submit();
|
||
|
else $("#mail_form").ajaxSubmit(save_form);
|
||
|
{rdelim}
|
||
|
{rdelim}
|
||
|
|
||
|
{if !$mail->sent}
|
||
|
{literal}
|
||
|
$(document).ready(function() {
|
||
|
delay = false;
|
||
|
|
||
|
Mousetrap.bind(['ctrl+s', 'meta+s'], function(e) {
|
||
|
if (e.preventDefault) e.preventDefault();
|
||
|
else e.returnValue = false;
|
||
|
save_func(true);
|
||
|
return false;
|
||
|
});
|
||
|
|
||
|
Mousetrap.bind(['ctrl+g', 'meta+g'], function(e) {
|
||
|
if (e.preventDefault) e.preventDefault();
|
||
|
else e.returnValue = false;
|
||
|
if(delay) {
|
||
|
clearInterval(send_delay);
|
||
|
send();
|
||
|
}
|
||
|
return false;
|
||
|
});
|
||
|
|
||
|
Mousetrap.bind(['ctrl+q', 'meta+q'], function(e) {
|
||
|
if (e.preventDefault) e.preventDefault();
|
||
|
else e.returnValue = false;
|
||
|
location.reload();
|
||
|
return false;
|
||
|
});
|
||
|
|
||
|
$(".SaveEdit").click(function(e) {
|
||
|
if (e.preventDefault) e.preventDefault();
|
||
|
else e.returnValue = false;
|
||
|
save_func(true);
|
||
|
return false;
|
||
|
});
|
||
|
});
|
||
|
{/literal}
|
||
|
{/if}
|
||
|
|
||
|
{literal}
|
||
|
$(document).ready(function() {
|
||
|
|
||
|
var active_type = $("input[name=type]:checked").attr("value");
|
||
|
if (active_type == 'text') {
|
||
|
$("#html").hide(); $("#text").show(); $("#html textarea").attr("name","");
|
||
|
}
|
||
|
else {
|
||
|
$("#text").hide(); $("#html").show(); $("#text textarea").attr("name","");
|
||
|
}
|
||
|
|
||
|
$("input[name=type]").click(function() {
|
||
|
if($(this).attr("value")=='text') {
|
||
|
$("#html").hide();
|
||
|
$("#html textarea").attr("name","");
|
||
|
$("#text").show();
|
||
|
$("#text textarea").attr("name","body");
|
||
|
}
|
||
|
else {
|
||
|
$("#text").hide();
|
||
|
$("#text textarea").attr("name","");
|
||
|
$("#html").show();
|
||
|
$("#html textarea").attr("name","body");
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
{/literal}
|
||
|
|
||
|
function countMail() {ldelim}
|
||
|
window.open('index.php?do=modules&action=modedit&mod=mailer&moduleaction=countmail&id={$smarty.request.id}&cp={$sess}&pop=1','mailer_countmail_{$smarty.request.id}','top=0,left=0,width=900,height=600,scrollbars=1,resizable=1');
|
||
|
{rdelim}
|
||
|
|
||
|
function checkemail(in_email){ldelim}
|
||
|
emails = in_email.split(";");
|
||
|
for (var key in emails) {ldelim}
|
||
|
var email = emails[key];
|
||
|
$.ajax({ldelim}
|
||
|
beforeSend: function() {ldelim}
|
||
|
$.alerts._overlay('show');
|
||
|
{rdelim},
|
||
|
url: 'index.php?do=modules&action=modedit&mod=mailer&cp={$sess}',
|
||
|
data: ({ldelim}moduleaction:'checkemail', 'email':emails[key]{rdelim}),
|
||
|
success: function(data) {ldelim}
|
||
|
$.alerts._overlay('hide');
|
||
|
switch (Number(data)) {ldelim}
|
||
|
case 0:
|
||
|
$.jGrowl("{#MAILER_ER_EMAIL_SYN#}");
|
||
|
break;
|
||
|
case 1: case 2:
|
||
|
$.jGrowl("{#MAILER_EMAIL_OK#}");
|
||
|
break;
|
||
|
{rdelim}
|
||
|
{rdelim}
|
||
|
{rdelim});
|
||
|
{rdelim}
|
||
|
{rdelim}
|
||
|
|
||
|
function full_check(rec) {ldelim}
|
||
|
if (!$("#from_name").val()) {ldelim}
|
||
|
jAlert('{#MAILER_ERR_FROM_NAME#}','{#MAILER_SENDING#}',
|
||
|
function() {ldelim}$("#from_name").focus();{rdelim});
|
||
|
return false;
|
||
|
{rdelim}
|
||
|
|
||
|
if (!$("#from_email").val()) {ldelim}
|
||
|
jAlert('{#MAILER_ERR_FROM_EMAIL#}','{#MAILER_SENDING#}',
|
||
|
function() {ldelim}$("#from_email").focus();{rdelim});
|
||
|
return false;
|
||
|
{rdelim}
|
||
|
|
||
|
if (rec && !$("#groups").val() && !$("#lists").val() && !$("#to_add").val()) {ldelim}
|
||
|
jAlert('{#MAILER_ERR_TO#}','{#MAILER_SENDING#}',
|
||
|
function() {ldelim}$("#groups").focus();{rdelim});
|
||
|
return false;
|
||
|
{rdelim}
|
||
|
|
||
|
if (!$("#subject").val()) {ldelim}
|
||
|
jAlert('{#MAILER_ERR_SUBJECT#}','{#MAILER_SENDING#}',
|
||
|
function() {ldelim}$("#subject").focus();{rdelim});
|
||
|
return false;
|
||
|
{rdelim}
|
||
|
|
||
|
if (!$("textarea[name=body]").val()) {ldelim}
|
||
|
jAlert('{#MAILER_ERR_BODY#}','{#MAILER_SENDING#}',
|
||
|
function() {ldelim}$("textarea[name=body]").focus();{rdelim});
|
||
|
return false;
|
||
|
{rdelim}
|
||
|
|
||
|
return true;
|
||
|
{rdelim}
|
||
|
|
||
|
|
||
|
|
||
|
</script>
|
||
|
|
||
|
{include file="$codemirror_connect"}
|
||
|
{include file="$codemirror_editor" conn_id="rsc" textarea_id='codemirror' height=500}
|