summaryrefslogtreecommitdiff
path: root/public/js
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-07-18 15:57:57 +0200
committerpolo <ordipolo@gmx.fr>2025-07-18 15:57:57 +0200
commitb55a029a5b4867349a172873d20a6ffd91c20e23 (patch)
tree724b89251f8efbedbe6e06411546fab01e948d53 /public/js
parent27d88f0b226a0bb8e07f0bea83f47a9bc4bbff32 (diff)
downloadcms-b55a029a5b4867349a172873d20a6ffd91c20e23.zip
petites améliorations smartphones, logo et fond de header et footer gérés dans NodeData
Diffstat (limited to 'public/js')
-rw-r--r--public/js/main.js65
1 files changed, 38 insertions, 27 deletions
diff --git a/public/js/main.js b/public/js/main.js
index 6eb0162..2ffd33b 100644
--- a/public/js/main.js
+++ b/public/js/main.js
@@ -8,33 +8,6 @@ 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
38function copyInClipBoard(link){ 11function copyInClipBoard(link){
39 // une balise <input> avec des attributs 12 // une balise <input> avec des attributs
40 var element = document.createElement("input"); 13 var element = document.createElement("input");
@@ -64,6 +37,44 @@ function toastNotify(message) {
64} 37}
65 38
66 39
40document.addEventListener('DOMContentLoaded', () => { // pour pouvoir attraper les balises
41 // ouvrir/fermer les sous-menus avec écran tactile
42 document.querySelectorAll('.sub-menu-toggle').forEach(button => {
43 button.addEventListener('click', e => {
44 e.preventDefault();
45 const li = button.parentElement; // <li class="drop-down">
46
47 // fermer les autres sous-menus de même niveau
48 // :scope pour pouvoir utiliser > pour restreindre aux frères directs
49 li.parentElement.querySelectorAll(':scope > .drop-down, :scope > .drop-right').forEach(sibling => {
50 if(sibling !== li){
51 sibling.classList.remove('open'); // fermer sous-menus frères
52 sibling.querySelectorAll('.drop-right').forEach(desc => {
53 desc.classList.remove('open'); // fermer sous-menus neveux
54 });
55 }
56 });
57
58 if(!li.classList.toggle('open')){ // fermer sous-menu
59 li.querySelectorAll('.drop-right').forEach(desc => {
60 desc.classList.remove('open'); // fermer sous-menus enfants
61 });
62 }
63 });
64 });
65
66 // hauteur de <nav> en fonction de celle du menu en position fixe
67 const nav = document.querySelector('nav');
68 const nav_zone = document.getElementById('nav_zone');
69 const resize_observer = new ResizeObserver(entries => {
70 for(const entry of entries){
71 nav_zone.style.height = entry.contentRect.height + 'px';
72 }
73 });
74 resize_observer.observe(nav);
75});
76
77
67// complète les fonctions dans tinymce.js 78// complète les fonctions dans tinymce.js
68function switchPositions(article_id, direction) 79function switchPositions(article_id, direction)
69{ 80{