mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
Fixes an issue where confirming user deletion is not submitting the user edit form. Also fixes an issue where the user edit submit button is disabled after user deletion confirmation is cancelled. Fixes #2513. Tests performed: - Deleting a user works. - All the users module tests pass. - After cancelling the user deletion confirmation dialog, the user edit submit button is clickable. - On the app pages, submit buttons are disabled when app enabling or disabling is in progress. Signed-off-by: Veiko Aasa <veiko17@disroot.org> Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
66 lines
2.3 KiB
JavaScript
66 lines
2.3 KiB
JavaScript
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
/**
|
|
* @licstart The following is the entire license notice for the JavaScript
|
|
* code in this page.
|
|
*
|
|
* This file is part of FreedomBox.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* @licend The above is the entire license notice for the JavaScript code
|
|
* in this page.
|
|
*/
|
|
|
|
document.addEventListener('DOMContentLoaded', (event) => {
|
|
const form = document.querySelector('form.form-update');
|
|
form.addEventListener('submit', onUserUpdateSubmit);
|
|
|
|
const confirmDeleteButton = document.querySelector(
|
|
'#user-delete-confirm-dialog button.confirm');
|
|
confirmDeleteButton.addEventListener('click', () => {
|
|
onUserDeleteConfirmed(form);
|
|
});
|
|
|
|
var deleteConfirmed = false;
|
|
const modalEl = document.querySelector('#user-delete-confirm-dialog');
|
|
const modal = new bootstrap.Modal(modalEl);
|
|
|
|
// Make the user edit submit button clickable again when closing modal
|
|
modalEl.addEventListener('hide.bs.modal', clearButtonDisabling);
|
|
|
|
// Show the confirmation dialog if the delete checkbox is selected
|
|
function onUserUpdateSubmit(event) {
|
|
const deleteUserCheckbox = document.getElementById('id_delete');
|
|
if (!deleteUserCheckbox.checked) {
|
|
return;
|
|
}
|
|
|
|
if (deleteConfirmed) { // Deletion is already confirmed
|
|
deleteConfirmed = false;
|
|
return;
|
|
}
|
|
|
|
event.preventDefault();
|
|
modal.show();
|
|
};
|
|
|
|
// Submit the user edit form
|
|
function onUserDeleteConfirmed(form) {
|
|
deleteConfirmed = true;
|
|
modal.hide();
|
|
// Click instead of submit to disable the submission button
|
|
form.querySelector('input[type=submit]').click();
|
|
};
|
|
});
|