alpha_full/admin/adminInclude/_menuGauche/menuGauche.js
2026-04-06 22:58:51 +02:00

1 line
8.5 KiB
JavaScript
Executable File

// ------------------------------------------------------
// Contextuel logo themes css
// ------------------------------------------------------
var xMousePosition = 0;
var yMousePosition = 0;
// document.onmousemove = function(e){
// xMousePosition = e.clientX + window.pageXOffset;
// yMousePosition = e.clientY + window.pageYOffset;
// }
function contextLogo(element){
var debugLocal=0;
if (debugLocal==1) alert('contextLogo' );
// -----------------------------------------------------
// creer le menu
// -----------------------------------------------------
var d = document.createElement('div');
d.setAttribute('class', 'mContextLogo');
d.setAttribute('id', 'menuContextuel');
// -----------------------------------------------------
// Supprimer le menu contextuel on click body ou lui même
// -----------------------------------------------------
/*if(element.parentNode) d.onclick = function(e) { element.parentNode.removeChild(d); }*/
document.body.onclick = function(e) { try{ element.parentNode.removeChild(d); } finally{} }
// -----------------------------------------------------
// Gérer la position
// -----------------------------------------------------
if (debugLocal==2) d.innerHTML = ('<span style="color:black;"> X = ' + xMousePosition+ ' Y = ' + yMousePosition + '</span>');
// d.style.left = xMousePosition;
// d.style.top = yMousePosition;
d.style.left = 50;
d.style.top = 80;
// -----------------------------------------------------
// Theme sombre
// -----------------------------------------------------
var p1 = document.createElement('p1');
d.appendChild(p1);
p1.onclick=function() { themeSombre() };
p1.setAttribute('class', 'mContextItem');
p1.innerHTML = "Thème sombre<br>";
// -----------------------------------------------------
// Theme clair
// -----------------------------------------------------
var p2 = document.createElement('p2');
d.appendChild(p2);
p2.onclick=function() { themeClair() };
p2.setAttribute('class', 'mContextItem');
p2.innerHTML = "Thème clair<br>";
if (debugLocal==1) alert('contextLogo fin' );
element.parentNode.appendChild(d);
return false;
}
function themeSombre(){
debugLocal=0;
if(debugLocal==1) alert("themeAdm");
action ='./frmAdmin.php?adminThemeCSS=1&majTheme=1';
top.location.href = action;
}
// ------------------------------------------------------
// Themes de couleur admin css
// ------------------------------------------------------
function themeClair(){
debugLocal=0;
if(debugLocal==1) alert("themeAdm");
action ='./frmAdmin.php?adminThemeCSS=2&majTheme=1';
top.location.href = action;
}
var bcle=0;
var heure;
var min ;
var sec ;
let timer;
function clock() {
// Stoppe un ancien timer pour éviter la récursion infinie
clearTimeout(timer);
if (bcle == 0) {
heure = document.getElementById('heure').value;
min = document.getElementById('minute').value;
sec = document.getElementById('seconde').value;
} else {
sec++;
if (sec == 60) {
sec = 0;
min++;
if (min == 60) {
min = 0;
heure++;
}
}
}
let txt = "";
if (heure < 10) txt += "0";
txt += heure + ":";
if (min < 10) txt += "0";
txt += min + ":";
if (sec < 10) txt += "0";
txt += sec;
// Nouveau timer propre
timer = setTimeout(clock, 1000);
bcle++;
document.clock.date.value = txt;
}
// Premier démarrage
timer = setTimeout(clock, 1000);
var MonTableau = [];
var nbItem=15;
// ------------------------------------------------------
// Cache all
// ---------------------------------------------------
function cacheAllMenuGauche(){
// alert('cacheAllMenuGauche');
for (i=1 ; i<=nbItem ; i++){ item='menuDiv'+i;
if (document.getElementById(item)) {document.getElementById(item).style.display ='none';}
}
}
// ------------------------------------------------------
// Aff all
// ---------------------------------------------------
function affAllMenuGauche(){
// alert('affAllMenuGauche');
for (i=1 ; i<=nbItem ; i++){ item='menuDiv'+i;
if (document.getElementById(item)) {document.getElementById(item).style.display ='block';}
}
}
// ------------------------------------------------------
// Affiche ou masque l'ensemble : clic sur logo
// ---------------------------------------------------
function menuGaucheToggle(){
var test;
if (document.getElementById('menuDiv1')) {test=document.getElementById('menuDiv1').style.display;}
// alert('menuGaucheToggle : ' + test);
if(test=='block') {
cacheAllMenuGauche();
localStorage.setItem('menuGaucheState', 'open'); // Sauvegarde l'état ouvert dans le localStorage
}
else {
affAllMenuGauche();
localStorage.setItem('menuGaucheState', 'close'); // Sauvegarde l'état ouvert dans le localStorage
}
}
// restore ou masque l'ensemble
function storageMenuGauche() {
// Si l'état du menu est stocké dans le localStorage, l'applique
if (localStorage.getItem('menuGaucheState') === 'open') {
// menuG.style.display = 'block';
// alert('storageMenuGauche = open');
affAllMenuGauche();
} else {
// menuG.style.display = 'none';
// alert('storageMenuGauche = close');
cacheAllMenuGauche();
}
}
// ------------------------------------------------------
// aff cache menu sur clic
// ---------------------------------------------------
function affCacheMenuGauche(deb, fin){
var debugLocal=0;
var itemID;
var menuID;
if (debugLocal>0){
alert('je passe dans affCache ==> début : '+ deb + ' fin : '+ fin);
}
//persistance
itemID=('menuDiv'+deb);
menuID=document.getElementById(itemID);
var currentDisplay = window.getComputedStyle(menuID).display;
if (currentDisplay === 'block' || menuID.style.display === 'block') {
localStorage.setItem('menuGAffCache-' + deb + '-' + fin, 'close');
} else {
localStorage.setItem('menuGAffCache-' + deb + '-' + fin, 'open');
}
// if (menuID.style.display === 'block') localStorage.setItem('menuGAffCache-'+deb+'-'+fin, 'open'); // Sauvegarde l'état ouvert dans le localStorage
// if (menuID.style.display != 'block') localStorage.setItem('menuGAffCache-'+deb+'-'+fin, 'close'); // Sauvegarde l'état ouvert dans le localStorage
if (debugLocal>0) { alert(menuID.id + '.style initial : ' + currentDisplay ); }
for (var i=deb ; i<=fin ; i++){
itemID=('menuDiv'+i);
if (document.getElementById(itemID)) {
menuID=document.getElementById(itemID);
currentDisplay = window.getComputedStyle(menuID).display;
if (debugLocal==2) { alert(menuID.id + '.style initial : ' + menuID.style.display ); }
if (currentDisplay == 'block'){
menuID.style.display ='none';
}
else{
// if (debugLocal==1){alert('menuID b : ' + menuID );}
menuID.style.display='block';
}
if (debugLocal==2) { alert(menuID.id + 'menuID.style.display final : ' + menuID.style.display);}
}
else {
if (debugLocal==2) { alert('menuID by id non accédé : ' + itemID);}
}
} //for
}
// ------------------------------------------------------
// reaffiche ou cache les sections de menus apres un post, appelé par storageMenuGAffCache
// ---------------------------------------------------
function affMenuGauche(deb, fin, value){
var debugLocal=0;
var itemID;
var menuID;
var aff;
if (debugLocal==1) { alert('affMenuGauche : deb' + deb + ' fin ' + fin +' value ' + value);}
if (value=="close") aff='none'; else aff='block';
for (var i=deb ; i<=fin ; i++){
itemID=('menuDiv'+i);
if (document.getElementById(itemID)) {
document.getElementById(itemID).style.display=aff;
}
else {
if (debugLocal==2) { alert('menuID by id non accédé : ' + itemID);}
}
} //for
}
// persistance de chaque section de menu
function storageMenuGAffCache() {
// event.preventDefault(); // Empêche l'envoi du formulaire ou le rechargement de la page
// Créer un tableau pour stocker les résultats
let menuSections = [];
// alert('storageMenuGAffCache');
// Parcours de toutes les clés dans le localStorage
for (let i = 0; i < localStorage.length; i++) {
// Récupérer la clé
let key = localStorage.key(i);
// Vérifier si la clé commence par "MenuGAffCache-"
if (key.startsWith('menuGAffCache-')) {
// alert('debut : '+ key);
// Extraire "deb" et "fin" à partir de la clé
let parts = key.replace('menuGAffCache-', '').split('-');
if (parts.length === 2) {
let deb = parseInt(parts[0], 10); // Récupérer deb
let fin = parseInt(parts[1], 10); // Récupérer fin
// alert('debut : '+ deb);
// Récupérer la valeur associée à cette clé
let value = localStorage.getItem(key);
// Ajouter un objet avec deb, fin et la valeur dans le tableau
// menuSections.push({ deb: deb, fin: fin, value: value });
affMenuGauche(deb, fin, value);
}
}
}
}