Infrastructure — Droits

Infrastructure — Chasse de Saint-Nabord

Prototype — focus sur Droits

Miradors
L'agrainage
Pierres à sel
Caméras
Droits
2 miradors
Mirador Forêt Nord
Poste fixe
Disponible
Vue dégagée sur la prairie. Idéal chevreuil et sanglier en soirée.
48.231456, 6.823457
Mirador Ruisseau
Poste mobile
Réservé
28.03.2026 17h00-21h00 — Lukacic Z.
1 point d'agrainage
Agrainage Clairière
1 pierre à sel
Pierre à sel Lisière Est
1 caméra
Caméra Sentier Principal
Active
Miradors : visibles et réservables par tous les membres — aucune restriction.
Recherchez un membre pour définir ses accès aux autres catégories.
Saisissez un nom, prénom ou date de naissance
pour trouver un membre et gérer ses droits.
Aucun membre trouvé — vérifiez l'orthographe.
'; html += '
' + u.email + (dob_fmt ? '  ·  Né le ' + dob_fmt : '') + '
'; html += '
'; CATS.forEach(function(cat){ var pv = u.perms[cat.id].v; var pe = u.perms[cat.id].e; html += '
'; html += ''; html += '
'; html += ''; html += ''; html += '
'; }); html += '
'; html += ''; card.innerHTML = html; resList.appendChild(card); }); } function syncChk(cb){ var uid = cb.getAttribute('data-uid'); var cat = cb.getAttribute('data-cat'); var key = cb.getAttribute('data-key'); // Modifier checked → force Voir checked if(key==='e' && cb.checked){ var vCb = document.querySelector('input[data-uid="'+uid+'"][data-cat="'+cat+'"][data-key="v"]'); if(vCb) vCb.checked = true; } // Voir unchecked → force Modifier unchecked if(key==='v' && !cb.checked){ var eCb = document.querySelector('input[data-uid="'+uid+'"][data-cat="'+cat+'"][data-key="e"]'); if(eCb) eCb.checked = false; } } function saveUser(idx, btn){ CATS.forEach(function(cat){ var vCb = document.querySelector('input[data-uid="'+idx+'"][data-cat="'+cat.id+'"][data-key="v"]'); var eCb = document.querySelector('input[data-uid="'+idx+'"][data-cat="'+cat.id+'"][data-key="e"]'); if(vCb) USERS[idx].perms[cat.id].v = vCb.checked; if(eCb) USERS[idx].perms[cat.id].e = eCb.checked; }); var orig = btn.innerHTML; btn.innerHTML = ' Sauvegarde!'; btn.style.background = '#1e7e34'; setTimeout(function(){ btn.innerHTML = orig; btn.style.background = '#27ae60'; }, 2000); flashMsg('Droits de ' + USERS[idx].pre + ' ' + USERS[idx].nom + ' sauvegardés!', 'ok'); } function openAdd(type, name){ document.getElementById('add-title').textContent = (name?'Modifier — ':'Ajouter — ') + (LABS[type]||type); document.getElementById('add-nom').value = name||''; document.getElementById('rv-sect').style.display = (type==='mir') ? 'block' : 'none'; ['p1','p2'].forEach(function(p){ var img = document.getElementById(p+'img'); img.style.display='none'; img.src=''; document.getElementById(p+'ph').style.display='flex'; document.getElementById(p+'del').style.display='none'; document.getElementById(p+'f').value=''; }); document.getElementById('m-add').style.display='block'; } function closeM(id){ document.getElementById(id).style.display='none'; } function prevPh(inp,imgId,phId,delId){ var f=inp.files[0]; if(!f) return; var r=new FileReader(); r.onload=function(e){ var img=document.getElementById(imgId); img.src=e.target.result; img.style.display='block'; document.getElementById(phId).style.display='none'; document.getElementById(delId).style.display='block'; }; r.readAsDataURL(f); } function delPh(imgId,phId,delId,inpId){ var img=document.getElementById(imgId); img.style.display='none'; img.src=''; document.getElementById(phId).style.display='flex'; document.getElementById(delId).style.display='none'; document.getElementById(inpId).value=''; } function openReserv(){ document.getElementById('rv-err').style.display='none'; document.getElementById('nrv-d').value=''; document.getElementById('m-rv').style.display='block'; } function confirmRv(){ var d=document.getElementById('nrv-d').value; var f=document.getElementById('nrv-f').value; var t=document.getElementById('nrv-t').value; if(!d||!f||!t){flashMsg('Veuillez remplir tous les champs.','err');return;} if(d==='2026-03-28' && !(t<='17:00'||f>='21:00')){ document.getElementById('rv-err').style.display='block'; return; } closeM('m-rv'); flashMsg('Réservation confirmée : '+d+' de '+f+' à '+t,'ok'); } function flashMsg(txt,type){ var el=document.getElementById('msg'); el.textContent=txt; el.className='msg '+(type||'ok'); el.style.display='block'; setTimeout(function(){el.style.display='none';},3500); } // Enter key on date document.getElementById('s-dob').addEventListener('keydown',function(e){if(e.key==='Enter')doSearch();});