first commit
This commit is contained in:
70
media/com_cpanel/js/admin-add_module.js
Normal file
70
media/com_cpanel/js/admin-add_module.js
Normal file
@ -0,0 +1,70 @@
|
||||
/**
|
||||
* @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
(document => {
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
window.jSelectModuleType = () => {
|
||||
const elements = document.querySelectorAll('#moduleDashboardAddModal .modal-footer .btn.hidden');
|
||||
if (elements.length) {
|
||||
setTimeout(() => {
|
||||
elements.forEach(button => {
|
||||
button.classList.remove('hidden');
|
||||
});
|
||||
}, 1000);
|
||||
}
|
||||
};
|
||||
const buttons = document.querySelectorAll('#moduleDashboardAddModal .modal-footer .btn');
|
||||
const hideButtons = [];
|
||||
let isSaving = false;
|
||||
if (buttons.length) {
|
||||
buttons.forEach(button => {
|
||||
if (button.classList.contains('hidden')) {
|
||||
hideButtons.push(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;
|
||||
}
|
||||
if (elem) {
|
||||
const clickTarget = elem.dataset.bsTarget;
|
||||
|
||||
// We remember to be in the saving process
|
||||
isSaving = clickTarget === '#saveBtn';
|
||||
|
||||
// Reset saving process, if e.g. the validation of the form fails
|
||||
setTimeout(() => {
|
||||
isSaving = false;
|
||||
}, 1500);
|
||||
const iframe = document.querySelector('#moduleDashboardAddModal iframe');
|
||||
const content = iframe.contentDocument || iframe.contentWindow.document;
|
||||
const targetBtn = content.querySelector(clickTarget);
|
||||
if (targetBtn) {
|
||||
targetBtn.click();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
const elementH = document.querySelector('#moduleDashboardAddModal');
|
||||
if (elementH) {
|
||||
elementH.addEventListener('hide.bs.modal', () => {
|
||||
hideButtons.forEach(button => {
|
||||
button.classList.add('hidden');
|
||||
});
|
||||
});
|
||||
elementH.addEventListener('hidden.bs.modal', () => {
|
||||
if (isSaving) {
|
||||
setTimeout(() => {
|
||||
window.parent.location.reload();
|
||||
}, 1000);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
})(document);
|
||||
Reference in New Issue
Block a user