summaryrefslogtreecommitdiff
path: root/public/js
diff options
context:
space:
mode:
Diffstat (limited to 'public/js')
-rw-r--r--public/js/main.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/public/js/main.js b/public/js/main.js
index 071a1db..6eb0162 100644
--- a/public/js/main.js
+++ b/public/js/main.js
@@ -8,6 +8,33 @@ function newPassword(page, id = ''){
8 }, 0); 8 }, 0);
9} 9}
10 10
11// ouvrir/fermer les sous-menus avec écran tactile
12document.addEventListener('DOMContentLoaded', () => { // sinon on ne trouve pas les boutons
13 document.querySelectorAll('.sub-menu-toggle').forEach(button => {
14 button.addEventListener('click', e => {
15 e.preventDefault();
16 const li = button.parentElement; // <li class="drop-down">
17
18 // fermer les autres sous-menus de même niveau
19 // :scope pour pouvoir utiliser > pour restreindre aux frères directs
20 li.parentElement.querySelectorAll(':scope > .drop-down, :scope > .drop-right').forEach(sibling => {
21 if(sibling !== li){
22 sibling.classList.remove('open'); // fermer sous-menus frères
23 sibling.querySelectorAll('.drop-right').forEach(desc => {
24 desc.classList.remove('open'); // fermer sous-menus neveux
25 });
26 }
27 });
28
29 if(!li.classList.toggle('open')){ // fermer sous-menu
30 li.querySelectorAll('.drop-right').forEach(desc => {
31 desc.classList.remove('open'); // fermer sous-menus enfants
32 });
33 }
34 });
35 });
36});
37
11function copyInClipBoard(link){ 38function copyInClipBoard(link){
12 // une balise <input> avec des attributs 39 // une balise <input> avec des attributs
13 var element = document.createElement("input"); 40 var element = document.createElement("input");