summaryrefslogtreecommitdiff
path: root/static/js/dropdown.js
blob: 80efd19f82ea7fbfa45c94e9505c585a9648f1f2 (plain)
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
document.addEventListener('DOMContentLoaded', function () {
    document.addEventListener('click', function (e) {
        const toggleLink = e.target.closest('a');

        if (toggleLink && toggleLink.parentElement && toggleLink.parentElement.classList.contains('options-subitem')) {
            e.preventDefault();
            const parent = toggleLink.parentElement;

            if (parent.classList.contains('disabled') || parent.getAttribute('disabled') !== null) {
                return;
            }

            document.querySelectorAll('.options-subitem.open').forEach(function (other) {
                if (other !== parent) {
                    other.classList.remove('open');
                }
            });

            parent.classList.toggle('open');
            return;
        }

        // Handle clicking outside
        if (!e.target.closest('.options-subitem')) {
            document.querySelectorAll('.options-subitem.open').forEach(function (item) {
                item.classList.remove('open');
            });
        }
    });
});