Files
Projectkiln/ProjectKiln/app/js/popups.js

60 lines
1.6 KiB
JavaScript

function openPopup(name) {
const popup = document.getElementById(name + 'Popup');
const backdrop = document.getElementById('popupBackdrop');
if (!popup || !backdrop) return;
backdrop.hidden = false;
popup.hidden = false;
}
function closePopups() {
document.querySelectorAll('.kiln-popup').forEach((popup) => {
popup.hidden = true;
});
if (typeof resetTaskPopup === 'function') {
resetTaskPopup();
}
if (typeof resetVersionPopup === 'function') {
resetVersionPopup();
}
if (typeof resetProjectPopup === 'function') {
resetProjectPopup();
}
const backdrop = document.getElementById('popupBackdrop');
if (backdrop) {
backdrop.hidden = true;
}
}
document.addEventListener('click', (event) => {
const openButton = event.target.closest('[data-popup-open]');
const closeButton = event.target.closest('[data-popup-close]');
const backdrop = event.target.closest('#popupBackdrop');
if (openButton) {
if (openButton.dataset.popupOpen === 'createTask' && typeof openTaskCreatePopup === 'function') {
openTaskCreatePopup();
} else if (openButton.dataset.popupOpen === 'createProject' && typeof openProjectCreatePopup === 'function') {
openProjectCreatePopup();
} else {
openPopup(openButton.dataset.popupOpen);
}
}
if (closeButton || backdrop) {
closePopups();
}
});
document.addEventListener('keydown', (event) => {
if (event.key === 'Escape') {
closePopups();
}
});