Interface : corrections à la souris et accès protégé
Onglet « Carte et corrections » : glisser une photo ou une vidéo, placer les médias sans position, masquer des zones de trace (pour un voyage, ou zone privée pour tous). Corrections notées dans voyage.toml ([positions], [corrections]) ou site.toml ([confidentialite]), appliquées par les pages ; les originaux ne changent pas. L'extraction garde les médias datés sans position pour qu'on puisse les placer. Accès : clé d'accès aléatoire à chaque lancement, session par cookie HttpOnly/SameSite=Strict, mot de passe facultatif (rtg mot-de-passe, empreinte scrypt hors du site, blocage après 5 échecs), accès réseau seulement avec mot de passe (--distant), HTTPS possible (--certificat, --cle), Content-Security-Policy et interdiction des cadres. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mf2kATMtqVABHSYdxJMnim
This commit is contained in:
1 parent
06153a227e
commit
71779f6f53
17 files changed
+1047
-38
No files matched your search
@@ -145,3 +145,43 @@ progress.global { height: 4px; opacity: .7; }
|
||||
th, td { padding: 6px 8px; }
|
||||
.carte { height: 300px; }
|
||||
}
|
||||
|
||||
/* Connexion */
|
||||
.page-connexion main.connexion { max-width: 420px; margin: 12vh auto; background: var(--carte); border: 1px solid var(--bord);
|
||||
border-radius: 14px; padding: 24px 28px; }
|
||||
.connexion .logo { margin: 0 0 8px; }
|
||||
.connexion label { display: block; margin: 14px 0 10px; font-weight: 500; }
|
||||
.connexion input[type=password] { display: block; width: 100%; margin-top: 4px; }
|
||||
.discret-bouton { color: var(--discret); }
|
||||
|
||||
/* Carte et corrections */
|
||||
.editeur { display: grid; grid-template-columns: 300px 1fr; gap: 14px; align-items: start; }
|
||||
.editeur-panneau { background: var(--carte); border: 1px solid var(--bord); border-radius: 10px; padding: 8px 14px 12px;
|
||||
max-height: 74vh; overflow-y: auto; }
|
||||
.editeur-panneau h4 { margin: 18px 0 4px; font-size: 14px; }
|
||||
.editeur-panneau label { display: block; margin: 8px 0; }
|
||||
.editeur-panneau select { width: 100%; margin-top: 4px; }
|
||||
.editeur-panneau input[type=range] { width: 100%; }
|
||||
.ed-cases { display: flex; gap: 16px; }
|
||||
.editeur-carte { height: 74vh; border-radius: 10px; border: 1px solid var(--bord); }
|
||||
.editeur-carte.en-mode { cursor: crosshair; outline: 3px solid var(--accent); }
|
||||
.editeur-carte.en-mode .leaflet-container, .editeur-carte.en-mode.leaflet-container { cursor: crosshair; }
|
||||
.ed-mode { background: var(--attention-fond); color: var(--attention); padding: 6px 10px; border-radius: 8px; font-size: 13px; margin: 8px 0; }
|
||||
.ed-brouillon { background: var(--neutre-fond); border-radius: 8px; padding: 4px 10px; margin: 8px 0; }
|
||||
.ed-liste { list-style: none; padding: 0; margin: 4px 0; font-size: 13px; }
|
||||
.ed-liste li { padding: 3px 0; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
|
||||
.ed-liste a { text-decoration: none; overflow-wrap: anywhere; }
|
||||
.mk { display: inline-block; width: 14px; height: 14px; border-radius: 50%; border: 2px solid #fff;
|
||||
box-shadow: 0 0 0 1px rgba(0,0,0,.35); vertical-align: middle; }
|
||||
.mk.photo { background: #ef4444; }
|
||||
.mk.video { background: #2563eb; }
|
||||
.mk.deplace { border-color: #f59e0b; box-shadow: 0 0 0 2px #f59e0b; }
|
||||
.leaflet-marker-draggable .mk { cursor: grab; }
|
||||
.ed-popup { max-width: 240px; font-size: 12px; }
|
||||
.ed-popup img { display: block; max-width: 240px; max-height: 180px; border-radius: 6px; margin-bottom: 4px; }
|
||||
.ed-popup button { margin-top: 6px; }
|
||||
@media (max-width: 800px) {
|
||||
.editeur { grid-template-columns: 1fr; }
|
||||
.editeur-panneau { max-height: none; }
|
||||
.editeur-carte { height: 60vh; }
|
||||
}
|
||||
Reference in new issue
Block a user