Acces admin par icone engrenage + mot de passe 1234

Remplace l'appui long invisible par un petit engrenage discret
dans le coin bas-droit. Clic dessus ouvre un popup de saisie
de mot de passe (1234). Icone quasi invisible (15% opacite).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-21 23:11:24 +01:00
parent d9de999d74
commit f9c600c026
3 changed files with 128 additions and 35 deletions

View File

@@ -73,38 +73,50 @@ function recommencer() {
function setupEcranAccueil() {
const accueil = document.getElementById('ecran-accueil');
// Toucher pour commencer
// Toucher pour commencer (ignorer le bouton admin et le popup)
accueil.addEventListener('click', (e) => {
// Ignorer si c'est la zone admin
if (e.target.closest('.zone-admin')) return;
if (e.target.closest('.btn-admin')) return;
allerA('mode');
});
// Zone admin : appui long 3s
const zoneAdmin = document.getElementById('zone-admin');
let timerAdmin = null;
zoneAdmin.addEventListener('touchstart', (e) => {
e.preventDefault();
e.stopPropagation();
timerAdmin = setTimeout(() => allerA('admin'), 3000);
});
zoneAdmin.addEventListener('touchend', () => {
if (timerAdmin) clearTimeout(timerAdmin);
});
// Support souris aussi (pour dev)
zoneAdmin.addEventListener('mousedown', (e) => {
e.stopPropagation();
timerAdmin = setTimeout(() => allerA('admin'), 3000);
});
zoneAdmin.addEventListener('mouseup', () => {
if (timerAdmin) clearTimeout(timerAdmin);
});
}
// --- Admin : icone + mot de passe ---
const MDP_ADMIN = '1234';
function ouvrirAdmin() {
const popup = document.getElementById('popup-mdp');
const input = document.getElementById('input-mdp-admin');
popup.classList.remove('cache');
input.value = '';
document.getElementById('mdp-erreur').classList.add('cache');
setTimeout(() => input.focus(), 100);
}
function fermerPopupMdp() {
document.getElementById('popup-mdp').classList.add('cache');
document.getElementById('input-mdp-admin').value = '';
}
function validerMdpAdmin() {
const input = document.getElementById('input-mdp-admin');
if (input.value === MDP_ADMIN) {
fermerPopupMdp();
allerA('admin');
} else {
document.getElementById('mdp-erreur').classList.remove('cache');
input.value = '';
input.focus();
}
}
// Valider avec Entree
document.addEventListener('keydown', (e) => {
if (e.key === 'Enter' && !document.getElementById('popup-mdp').classList.contains('cache')) {
validerMdpAdmin();
}
});
// --- Modes ---
function setupModes() {