Files
ihrm/base/templates/mail/htmx/form.html
2025-01-16 16:50:14 +05:30

70 lines
3.0 KiB
HTML

{% load i18n %}
{% if form.instance.id %}
<form id="editForm" hx-post="{% url "view-mail-template" form.instance.id %}" hx-target="#viewTemplateModalBody">
{% else %}
<form id="createForm" hx-post="{% url "create-mail-template" %}" hx-target="#viewTemplateModalBody">
{% endif %}
<div id="viewTemplateModalContainer">
<div class="my-3" id="keyResultCard">
<div class="oh-card oh-card--no-shadow oh-card__body">
<div class="oh-input__group">
<label class="oh-input__label mt-0" for="id_title">{% trans "Title" %}</label>
{{ form.title }}
</div>
<div class="oh-input__group">
<label class="oh-input__label mt-2" for="id_body">{% trans "Body" %}</label>
{{ form.body }}
</div>
<div class="form-hint" style="margin-top: 10px; font-size: 14px; color: #888;">
{% trans "Hint: Type '{' to get sender or receiver data" %}
</div>
<div class="oh-input__group">
<label class="oh-input__label mt-2" for="id_company_id">{% trans "Company" %}</label>
{{ form.company_id }}
</div>
</div>
</div>
</div>
{% if duplicate %}
<div class="oh-modal__dialog-footer p-0">
<button id="submitFormButton" type="submit" class="oh-btn oh-btn--secondary oh-btn--shadow">{% trans "Save Duplicate" %}</button>
</div>
{% else %}
<button id="submitFormButton" type="submit" hidden ></button>
{% endif %}
</form>
<script>
$(document).ready(function () {
function initializeSummernote() {
{% if form.instance.title %}
setModalLabel("{{ form.instance.title|escapejs }}", "#viewTemplateModalLabel");
{% endif %}
var searchWords = {{ searchWords|safe }};
var mentions = Object.keys(searchWords);
$("#id_body").summernote({
hint: {
mentions: mentions,
match: /\B{(\w*)$/,
search: function (keyword, callback) {
var pattern = new RegExp(keyword, "i"); // Case-insensitive search
callback($.grep(this.mentions, function (item) {
return pattern.test(item);
}));
},
content: function (item) {
var word = searchWords[item];
return "{% templatetag openbrace %}{% templatetag openbrace %}"+ word +"{% templatetag closebrace %}{% templatetag closebrace %}";
}
}
});
}
// Initial Summernote initialization
initializeSummernote();
// Re-initialize Summernote after HTMX content swap
document.body.addEventListener('htmx:afterSwap', function (event) {
initializeSummernote();
});
});
</script>