first commit
This commit is contained in:
90
media/com_mails/js/admin-email-template-edit.js
Normal file
90
media/com_mails/js/admin-email-template-edit.js
Normal file
@ -0,0 +1,90 @@
|
||||
/**
|
||||
* @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
((document, Joomla) => {
|
||||
|
||||
class EmailTemplateEdit {
|
||||
constructor(form, options) {
|
||||
// Set elements
|
||||
this.form = form;
|
||||
this.inputSubject = this.form.querySelector('#jform_subject');
|
||||
this.inputBody = this.form.querySelector('#jform_body');
|
||||
this.inputHtmlBody = this.form.querySelector('#jform_htmlbody');
|
||||
|
||||
// Set options
|
||||
this.templateData = options && options.templateData ? options.templateData : {};
|
||||
|
||||
// Add back reference
|
||||
this.form.EmailTemplateEdit = this;
|
||||
}
|
||||
setBodyValue(value) {
|
||||
if (Joomla.editors.instances[this.inputBody.id]) {
|
||||
Joomla.editors.instances[this.inputBody.id].setValue(value);
|
||||
} else {
|
||||
this.inputBody.value = value;
|
||||
}
|
||||
}
|
||||
setHtmlBodyValue(value) {
|
||||
if (Joomla.editors.instances[this.inputHtmlBody.id]) {
|
||||
Joomla.editors.instances[this.inputHtmlBody.id].setValue(value);
|
||||
} else {
|
||||
this.inputHtmlBody.value = value;
|
||||
}
|
||||
}
|
||||
insertTag(tag, targetField) {
|
||||
if (!tag) return false;
|
||||
let input;
|
||||
switch (targetField) {
|
||||
case 'body':
|
||||
input = this.inputBody;
|
||||
break;
|
||||
case 'htmlbody':
|
||||
input = this.inputHtmlBody;
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
if (Joomla.editors.instances[input.id]) {
|
||||
Joomla.editors.instances[input.id].replaceSelection(tag);
|
||||
} else {
|
||||
input.value += ` ${tag}`;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bindListeners() {
|
||||
document.querySelector('#btnResetSubject').addEventListener('click', event => {
|
||||
event.preventDefault();
|
||||
this.inputSubject.value = this.templateData.subject ? this.templateData.subject : '';
|
||||
});
|
||||
const btnResetBody = document.querySelector('#btnResetBody');
|
||||
if (btnResetBody) {
|
||||
btnResetBody.addEventListener('click', event => {
|
||||
event.preventDefault();
|
||||
this.setBodyValue(this.templateData.body ? this.templateData.body : '');
|
||||
});
|
||||
}
|
||||
const btnResetHtmlBody = document.querySelector('#btnResetHtmlBody');
|
||||
if (btnResetHtmlBody) {
|
||||
btnResetHtmlBody.addEventListener('click', event => {
|
||||
event.preventDefault();
|
||||
this.setHtmlBodyValue(this.templateData.htmlbody ? this.templateData.htmlbody : '');
|
||||
});
|
||||
}
|
||||
|
||||
// Buttons for inserting a tag
|
||||
this.form.querySelectorAll('.edit-action-add-tag').forEach(button => {
|
||||
button.addEventListener('click', event => {
|
||||
event.preventDefault();
|
||||
const el = event.target;
|
||||
this.insertTag(el.dataset.tag, el.dataset.target);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const editor = new EmailTemplateEdit(document.getElementById('item-form'), Joomla.getOptions('com_mails'));
|
||||
editor.bindListeners();
|
||||
});
|
||||
})(document, Joomla);
|
||||
1
media/com_mails/js/admin-email-template-edit.min.js
vendored
Normal file
1
media/com_mails/js/admin-email-template-edit.min.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
((t,e)=>{class i{constructor(t,e){this.form=t,this.inputSubject=this.form.querySelector("#jform_subject"),this.inputBody=this.form.querySelector("#jform_body"),this.inputHtmlBody=this.form.querySelector("#jform_htmlbody"),this.templateData=e&&e.templateData?e.templateData:{},this.form.EmailTemplateEdit=this}setBodyValue(t){e.editors.instances[this.inputBody.id]?e.editors.instances[this.inputBody.id].setValue(t):this.inputBody.value=t}setHtmlBodyValue(t){e.editors.instances[this.inputHtmlBody.id]?e.editors.instances[this.inputHtmlBody.id].setValue(t):this.inputHtmlBody.value=t}insertTag(t,i){if(!t)return!1;let s;switch(i){case"body":s=this.inputBody;break;case"htmlbody":s=this.inputHtmlBody;break;default:return!1}return e.editors.instances[s.id]?e.editors.instances[s.id].replaceSelection(t):s.value+=` ${t}`,!0}bindListeners(){t.querySelector("#btnResetSubject").addEventListener("click",(t=>{t.preventDefault(),this.inputSubject.value=this.templateData.subject?this.templateData.subject:""}));const e=t.querySelector("#btnResetBody");e&&e.addEventListener("click",(t=>{t.preventDefault(),this.setBodyValue(this.templateData.body?this.templateData.body:"")}));const i=t.querySelector("#btnResetHtmlBody");i&&i.addEventListener("click",(t=>{t.preventDefault(),this.setHtmlBodyValue(this.templateData.htmlbody?this.templateData.htmlbody:"")})),this.form.querySelectorAll(".edit-action-add-tag").forEach((t=>{t.addEventListener("click",(t=>{t.preventDefault();const e=t.target;this.insertTag(e.dataset.tag,e.dataset.target)}))}))}}t.addEventListener("DOMContentLoaded",(()=>{new i(t.getElementById("item-form"),e.getOptions("com_mails")).bindListeners()}))})(document,Joomla);
|
||||
BIN
media/com_mails/js/admin-email-template-edit.min.js.gz
Normal file
BIN
media/com_mails/js/admin-email-template-edit.min.js.gz
Normal file
Binary file not shown.
Reference in New Issue
Block a user