File: users.js

package info (click to toggle)
freedombox 26.3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 83,092 kB
  • sloc: python: 48,542; javascript: 1,730; xml: 481; makefile: 290; sh: 137; php: 32
file content (65 lines) | stat: -rw-r--r-- 2,368 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// 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();
    };
});