289 lines
16 KiB
Smarty
289 lines
16 KiB
Smarty
<div class="row">
|
|
<div class="col-xs-12 bottom-space">
|
|
<p>{'Description1'|translate}</p>
|
|
|
|
<div class="alert alert-default">
|
|
<p>{'DescriptionStatus'|translate nofilter}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="user-messages">
|
|
{$helpShown = false}
|
|
{foreach $body.emails_messages as $messageType => $messages}
|
|
{if $messages.doNotShow}{continue}{/if}
|
|
<div id="{$messageType}" class="m-b-3">
|
|
<h4>{$messageType|translate}</h4>
|
|
<div class="row m-b-2">
|
|
<div class="col-xs-3">
|
|
<a href="#" data-form-add="{$messageType}" class="btn btn-success btn-block"><span
|
|
class="bi bi-plus-lg"></span> {'AddMessage'|translate}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="wpj-panel-group wpj-panel-group-default">
|
|
<div class="wpj-panel-group-heading" data-panel-heading="{$messageType}"{if $messages|count <= 0} style="display: none;"{/if}>
|
|
<div class="row">
|
|
<div class="col-xs-6">
|
|
<span class="drag-drop-mover {if !empty($messageType)}drag-drop-mover-hidden{/if}">
|
|
<i class="bi bi-arrows-move handle"></i>
|
|
</span>
|
|
<small>{'Name'|translate}</small>
|
|
</div>
|
|
<div class="col-xs-4">
|
|
<small>{'State'|translate}</small>
|
|
</div>
|
|
<div class="col-xs-2 text-right">
|
|
<small>{'Delete'|translate}</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{$template = $body.email->getBasicTemplate()}
|
|
{* add default value for every type *}
|
|
{$mergedStatuses = ['' => translate('noOrderStatusPlaceholder')] + ($body.statuses.{$messageType}|default:[])}
|
|
<div class="ui-sortable">
|
|
<div class="wpj-panel" data-form-id="{$messageType}" data-form-new="{$messageType}" style="display: none;"
|
|
data-input-area="{$messageType}">
|
|
<div class="wpj-panel-collapse collapse in">
|
|
<div class="wpj-panel-body">
|
|
<div class="form-group wpj-form-group-flex">
|
|
<div class="col-xs-6">
|
|
<label>{'Name'|translate}</label>
|
|
<input type="text" class="form-control" name="data[{$messageType}][0][name]" value="" required>
|
|
</div>
|
|
<div class="col-xs-3">
|
|
<label>{'State'|translate}</label>
|
|
{print_select name="data[{$messageType}][0][order_status]" var=$mergedStatuses}
|
|
</div>
|
|
|
|
<div class="col-xs-3 d-flex align-items-center">
|
|
{print_toggle name="{$messageType}][0][system_msg"}
|
|
<label>{'systemMessage'|translate}<a class="help-tip" data-toggle="tooltip"
|
|
title="{'systemMessageTooltip'|translate}"><i
|
|
class="bi bi-question-circle"></i></a></label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-xs-12">
|
|
<label>{'Subject'|translate}</label>
|
|
<input type="text" class="form-control" name="data[{$messageType}][0][subject]" value="" required>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-xs-12">
|
|
<label>{'text'|translate}</label>
|
|
<textarea name="data[{$messageType}][0][body]" class="inputFullWidth" rows="5" cols="30" id="data[{$messageType}][{$messageType}][0][body]">
|
|
<div class="read_only" contenteditable="false">{$template.header}</div>
|
|
<p>TEXT</p>
|
|
<div class="read_only" contenteditable="false">{$template.footer}</div>
|
|
</textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
{if $body.SMSSenderBackend}
|
|
<div class="col-xs-6">
|
|
<label>{'sms'|translate}</label>
|
|
<textarea class="form-control input-sm" rows="2" name="data[{$messageType}][0][sms]"></textarea>
|
|
<span class="help-block" style="margin-bottom: 0;">
|
|
<span class="charCounter" rel="data[{$messageType}][0][sms]" data-maxlength="160"></span>
|
|
</span>
|
|
</div>
|
|
{/if}
|
|
|
|
<div class="col-xs-6">
|
|
<label>{'attachments'|translate}</label>
|
|
<select class="selecter selecter-element" multiple name="data[{$messageType}][0][attachments][]">
|
|
{foreach $body.attachments.{$messageType} as $type => $name}
|
|
<option value="{$type}">{$name}</option>
|
|
{/foreach}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<input type="hidden" name="data[{$messageType}][0][type]" value="{$body.messages_types.{$messageType}}">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{foreach $messages as $message}
|
|
<div class="wpj-panel" data-form-item="{$message@index}">
|
|
<div class="wpj-panel-heading" data-toggle="collapse" data-target="#collapse_{$message@index}_{$messageType}">
|
|
<div class="row">
|
|
<div class="col-xs-6 d-flex">
|
|
<input type="hidden" data-sort class='sort' name="{$message@index}" value="">
|
|
<input type="hidden" name="data[{$messageType}][{$message.id}][position]" value="{$message@index}" data-sort>
|
|
<span class="drag-drop-mover">
|
|
<i class="bi bi-arrows-move handle"></i>
|
|
</span>
|
|
<p><strong>{$message.name}</strong></p>
|
|
</div>
|
|
<div class="col-xs-4">
|
|
<p><small>{$mergedStatuses.{$message.order_status}}</small></p>
|
|
</div>
|
|
<div class="col-xs-1">
|
|
<p>
|
|
{if $message.sms}
|
|
<span class='badge badge-primary' title='Vyplněná SMS'>{'sms'|translate}</span>
|
|
{/if}
|
|
</p>
|
|
</div>
|
|
<div class="col-xs-1 text-right">
|
|
{if $message.system_msg != 'Y'}
|
|
<a class="btn btn-danger" data-form-delete>
|
|
<input class="hidden" type="checkbox" name="data[{$messageType}][{$message.id}][delete]">
|
|
<span class="bi bi-trash"></span>
|
|
</a>
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="wpj-panel-collapse collapse" id="collapse_{$message@index}_{$messageType}">
|
|
<div class="wpj-panel-body">
|
|
<div class="form-group wpj-form-group-flex">
|
|
<div class="col-xs-6">
|
|
<label>{'from_mail'|translate}
|
|
<a class="help-tip" data-toggle="tooltip" title="{'fromMailTooltip'|translate:'settings'}"><i
|
|
class="bi bi-question-circle"></i></a>
|
|
</label>
|
|
<input type="text" class="form-control" name="data[{$messageType}][{$message.id}][email]" size="30"
|
|
maxlength="255" value="{$message.email}" autocomplete="nope"
|
|
placeholder="{$body.data.default_email}"
|
|
pattern='(?:"?([^"]*)"?\s)?(?:<?(.+@[^>]+)>?)'>
|
|
</div>
|
|
<div class="col-xs-3">
|
|
<label>{'State'|translate}</label>
|
|
{print_select name="data[{$messageType}][`$message.id`][order_status]" var=$mergedStatuses selected=$message.order_status}
|
|
</div>
|
|
|
|
<div class="col-xs-3 d-flex align-items-center">
|
|
{print_toggle name="{$messageType}][{$message.id}][system_msg" value="{$message.system_msg}"}
|
|
<label>{'systemMessage'|translate}<a class="help-tip" data-toggle="tooltip"
|
|
title="{'systemMessageTooltip'|translate}"><i
|
|
class="bi bi-question-circle"></i></a></label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group wpj-form-group-flex">
|
|
<div class="col-xs-6">
|
|
<label>{'Name'|translate}</label>
|
|
<input type="text" class="form-control" name="data[{$messageType}][{$message.id}][name]" maxlength="255"
|
|
value="{$message.name}" {if $message.system_msg == 'Y'}readonly{/if}>
|
|
</div>
|
|
<div class="col-xs-3">
|
|
<a href="javascript:nw('emailTest','','{$message.type}&order_message={$message.name}&acn=placeholders')" class="btn btn-ghost btn-block"
|
|
title="{'placeholders'|translate}">
|
|
<span class="bi bi-braces"></span>{'placeholders'|translate}
|
|
</a>
|
|
</div>
|
|
<div class="col-xs-3">
|
|
<a href="javascript:nw('emailTest','','{$message.type}&order_message={$message.name}')"
|
|
class="btn btn-secondary btn-block">
|
|
{'showTest'|translate}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-xs-12">
|
|
<label>{'Subject'|translate}</label>
|
|
<input type="text" class="form-control" name="data[{$messageType}][{$message.id}][subject]"
|
|
value="{$message.subject}" required>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-xs-12">
|
|
<label class="d-flex justify-content-between">
|
|
{'text'|translate}
|
|
{insert_llm_button type='email_text' target="data[{$messageType}][{$messageType}][{$message.id}][body]"}
|
|
</label>
|
|
<textarea name="data[{$messageType}][{$message.id}][body]" class="form-control" id="data[{$messageType}][{$messageType}][{$message.id}][body]">
|
|
<div class="read_only" contenteditable="false">{$template.header}</div>
|
|
{$message.body}
|
|
<div class="read_only" contenteditable="false">{$template.footer}</div>
|
|
</textarea>
|
|
{insert_wysiwyg target="data[{$messageType}][{$messageType}][`$message.id`][body]" type="email" config="forcePasteAsPlainText: true"}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
{if $body.SMSSenderBackend}
|
|
<div class="col-xs-6">
|
|
<label class="d-flex justify-content-between">
|
|
{'sms'|translate}
|
|
{insert_llm_button type='email_sms' target="data[{$messageType}][{$message.id}][sms]"}
|
|
</label>
|
|
<textarea class="form-control" rows="2"
|
|
name="data[{$messageType}][{$message.id}][sms]">{$message.sms}</textarea>
|
|
<span class="help-block" style="margin-bottom: 0;">
|
|
<span class="charCounter" rel="data[{$messageType}][{$message.id}][sms]"
|
|
data-maxlength="160"></span>
|
|
</span>
|
|
</div>
|
|
{/if}
|
|
<div class="col-xs-6">
|
|
<label>{'attachments'|translate}</label>
|
|
<select class="selecter selecter-element" multiple
|
|
name="data[{$messageType}][{$message.id}][attachments][]">
|
|
{foreach $body.attachments[{$messageType}] as $type => $name}
|
|
<option value="{$type}" {if in_array($type, $message.attachments)}selected{/if}>{$name}</option>
|
|
{/foreach}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<input type="hidden" name="data[{$messageType}][{$message.id}][type]" value="{$message.type}">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{/foreach}
|
|
</div>
|
|
</div>
|
|
<script>
|
|
initForm({
|
|
selector: '#{$messageType}',
|
|
beforeAdd: function (original) {
|
|
$('[data-panel-heading="{$messageType}"]').show();
|
|
var $form = original();
|
|
var name = $form.find('textarea').attr('id');
|
|
activateWysiwyg(name, 'BasicTable');
|
|
}
|
|
});
|
|
</script>
|
|
</div>
|
|
{/foreach}
|
|
</div>
|
|
|
|
<script>
|
|
$(".ui-sortable").sortable({
|
|
helper: function (e, row) {
|
|
var $row = $(row);
|
|
var $helper = $row.clone().addClass("drag-drop");
|
|
return $helper[0];
|
|
},
|
|
stop: function (event, ui) {
|
|
$(this).children().each(function (index, item) {
|
|
$(item).find("[data-sort]").val($(item).index()).change();
|
|
});
|
|
var name = $(ui.item).find('textarea').attr('name');
|
|
activateWysiwyg(name, 'BasicTable');
|
|
},
|
|
start: function (event, ui) {
|
|
var name = $(ui.item).find('textarea').attr('name');
|
|
var editorInstance = CKEDITOR.instances[name];
|
|
if (editorInstance !== undefined) {
|
|
editorInstance.destroy();
|
|
CKEDITOR.remove(name);
|
|
}
|
|
|
|
},
|
|
handle: ".handle"
|
|
});
|
|
</script>
|