Files
kupshop/admin/templates/window/email.messages.tpl
2025-08-02 16:30:27 +02:00

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>&nbsp;{'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>