35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
import {
|
|
showWindowModal,
|
|
closeWindowModal,
|
|
WINDOW_MODAL_ID,
|
|
} from '@utilities/showModal';
|
|
|
|
// The GDPR Delete Requests table may have up to 50 entries at once. Instead of adding an event listener for every row, we
|
|
// instead listen for clicks anywhere in the table, and only trigger the modal if the click target was a confirm delete button
|
|
document
|
|
.getElementById('gdpr-delete-requests-content')
|
|
?.addEventListener('click', ({ target }) => {
|
|
const {
|
|
dataset: { username, gdprFormAction },
|
|
} = target;
|
|
if (gdprFormAction) {
|
|
handleConfirmDelete(username, gdprFormAction);
|
|
}
|
|
});
|
|
|
|
const handleConfirmDelete = (username, formAction) => {
|
|
showWindowModal({
|
|
title: `Are you sure you have deleted all external data for @${username}?`,
|
|
contentSelector: '#gdpr-confirm-delete-modal',
|
|
onOpen: () => {
|
|
// Set the action of the form
|
|
document.getElementById(WINDOW_MODAL_ID).querySelector('form').action =
|
|
formAction;
|
|
|
|
// Update cancel button to close the modal
|
|
document
|
|
.querySelector(`#${WINDOW_MODAL_ID} .js-gdpr-cancel-deleted`)
|
|
.addEventListener('click', closeWindowModal);
|
|
},
|
|
});
|
|
};
|