diff --git a/build/media_source/com_modules/js/admin-modules-modal.es6.js b/build/media_source/com_modules/js/admin-modules-modal.es6.js index 0b76b8e84356c..8864111279290 100644 --- a/build/media_source/com_modules/js/admin-modules-modal.es6.js +++ b/build/media_source/com_modules/js/admin-modules-modal.es6.js @@ -1,45 +1,51 @@ /** - * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ -Joomla = window.Joomla || {}; + * @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All rights reserved. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ -((document) => { +document.addEventListener('DOMContentLoaded', () => { 'use strict'; - document.addEventListener('DOMContentLoaded', () => { - window.jSelectModuleType = () => { - const elements = document.querySelectorAll('#moduleDashboardAddModal .modal-footer .btn'); + // Get the elements + const modulesLinks = [].slice.call(document.querySelectorAll('.js-module-insert')); + const positionsLinks = [].slice.call(document.querySelectorAll('.js-position-insert')); + + // Assign listener for click event (for single module id insertion) + modulesLinks.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) + positionsLinks.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 (elements.length) { - elements.forEach((button) => { - button.classList.remove('hidden'); - }); + if (window.parent.Joomla.Modal) { + window.parent.Joomla.Modal.getCurrent().close(); } - }; - - const buttons = document.querySelectorAll('#moduleDashboardAddModal .modal-footer .btn'); - - if (buttons.length) { - buttons.forEach((button) => { - button.addEventListener('click', (event) => { - let elem = event.currentTarget; - - // There is some bug with events in iframe where currentTarget is "null" - // => prevent this here by bubble up - if (!elem) { - elem = event.target; - } - - const clicktarget = elem.getAttribute('data-target'); - - if (clicktarget) { - const iframe = document.querySelector('#moduleDashboardAddModal iframe'); - const content = iframe.contentDocument || iframe.contentWindow.document; - content.querySelector(clicktarget).click(); - } - }); - }); - } + }); }); -})(document); +});