Skip to content

Commit

Permalink
[4.0] Correcting module xtd wrong js (#27499)
Browse files Browse the repository at this point in the history
  • Loading branch information
infograf768 authored and HLeithner committed Jan 16, 2020
1 parent 78e51d2 commit 999602b
Showing 1 changed file with 44 additions and 38 deletions.
82 changes: 44 additions & 38 deletions build/media_source/com_modules/js/admin-modules-modal.es6.js
Original file line number Diff line number Diff line change
@@ -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);
});

0 comments on commit 999602b

Please sign in to comment.