46 lines
1.8 KiB
JavaScript
46 lines
1.8 KiB
JavaScript
/**
|
|
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
*/
|
|
|
|
(() => {
|
|
// Use a JoomlaExpectingPostMessage flag to be able to distinct legacy methods
|
|
if (window.parent.JoomlaExpectingPostMessage) {
|
|
return;
|
|
}
|
|
|
|
// Assign listener for click event (for single module id insertion)
|
|
document.querySelectorAll('.js-module-insert').forEach(element => {
|
|
element.addEventListener('click', event => {
|
|
event.preventDefault();
|
|
const modid = event.target.getAttribute('data-module');
|
|
const editor = event.target.getAttribute('data-editor');
|
|
|
|
// Use the API
|
|
if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && Object.prototype.hasOwnProperty.call(window.parent.Joomla.editors.instances, editor)) {
|
|
window.parent.Joomla.editors.instances[editor].replaceSelection(`{loadmoduleid ${modid}}`);
|
|
}
|
|
if (window.parent.Joomla.Modal) {
|
|
window.parent.Joomla.Modal.getCurrent().close();
|
|
}
|
|
});
|
|
});
|
|
|
|
// Assign listener for click event (for position insertion)
|
|
document.querySelectorAll('.js-position-insert').forEach(element => {
|
|
element.addEventListener('click', event => {
|
|
event.preventDefault();
|
|
const position = event.target.getAttribute('data-position');
|
|
const editor = event.target.getAttribute('data-editor');
|
|
|
|
// Use the API
|
|
if (window.Joomla && window.Joomla.editors && Joomla.editors.instances && Object.prototype.hasOwnProperty.call(window.parent.Joomla.editors.instances, editor)) {
|
|
window.parent.Joomla.editors.instances[editor].replaceSelection(`{loadposition ${position}}`);
|
|
}
|
|
if (window.parent.Joomla.Modal) {
|
|
window.parent.Joomla.Modal.getCurrent().close();
|
|
}
|
|
});
|
|
});
|
|
})();
|