Files
Arnaud 5633969d98 Version initiale — carte des établissements scolaires
Carte Leaflet (annuaire Éducation nationale) + API PHP/MySQL :
fiche établissement (effectifs, IPS, population INSEE, DPE ADEME),
GED documents/photos, commentaires par groupe, gestion utilisateurs
et politique de mots de passe. Imports opendata (effectifs, IPS,
population, DPE, IRIS).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 21:35:41 +02:00

184 lines
7.5 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Carte des établissements scolaires — France</title>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"/>
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css"/>
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css"/>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<div id="app">
<aside id="sidebar">
<header>
<h1>Établissements scolaires</h1>
<p class="subtitle">Annuaire de l'Éducation nationale</p>
<p id="count" class="count">Chargement…</p>
</header>
<div class="filters">
<div class="field">
<label for="search">Recherche (nom / commune)</label>
<input type="search" id="search" placeholder="Ex. Jean Jaurès, Lyon…" autocomplete="off">
</div>
<fieldset>
<legend>Type d'établissement</legend>
<div id="f-type" class="checks"></div>
</fieldset>
<fieldset>
<legend>Statut</legend>
<div id="f-stat" class="checks"></div>
</fieldset>
<fieldset>
<legend>État</legend>
<div id="f-etat" class="checks"></div>
</fieldset>
<div class="field">
<label for="f-reg">Région</label>
<select id="f-reg"></select>
</div>
<div class="field">
<label for="f-aca">Académie</label>
<select id="f-aca"></select>
</div>
<div class="field">
<label for="f-dep">Département</label>
<select id="f-dep"></select>
</div>
<div class="field">
<label for="f-circ">Circonscription</label>
<select id="f-circ"></select>
</div>
<fieldset>
<legend>Options proposées</legend>
<div id="f-opt" class="checks"></div>
<p class="hint">Coché = uniquement les établissements proposant l'option.</p>
</fieldset>
<button id="reset" type="button">Réinitialiser les filtres</button>
</div>
<footer>
<p><a href="admin.html">🔐 Espace administration</a></p>
<p>Source : <a href="https://data.education.gouv.fr/explore/dataset/fr-en-annuaire-education/" target="_blank" rel="noopener">data.education.gouv.fr</a> — fond de carte © OpenStreetMap</p>
</footer>
</aside>
<main id="map"></main>
</div>
<div id="legend" class="legend"></div>
<!-- Fiche établissement plein écran (overlay superposé à la carte) -->
<div id="fiche" class="fiche" hidden>
<header class="fiche-bar">
<button id="fiche-back" class="fiche-back" type="button">← Retour à la carte</button>
<div class="fiche-title">
<h2 id="fiche-nom"></h2>
<span id="fiche-sub" class="fiche-sub"></span>
</div>
</header>
<nav class="fiche-tabs">
<button class="fiche-tab active" type="button" data-tab="infos">Informations</button>
<button class="fiche-tab" type="button" data-tab="docs">Documents</button>
<button class="fiche-tab" type="button" data-tab="photos">Photothèque</button>
<button class="fiche-tab" type="button" data-tab="propose"> Proposer un élément</button>
</nav>
<div class="fiche-body">
<section id="tab-infos" class="tab-panel active">
<div class="tab-actions">
<button id="fiche-locate" type="button" class="btn-secondary">📍 Localiser sur la carte</button>
</div>
<div class="info-cols">
<div id="info-main" class="info-main"><!-- cartes : identité, coordonnées… --></div>
<div id="info-side" class="info-side"><!-- commentaires --></div>
</div>
</section>
<section id="tab-docs" class="tab-panel">
<div class="docs-layout">
<nav id="folder-tree" class="folder-tree"></nav>
<div id="folder-items" class="folder-items"></div>
</div>
</section>
<section id="tab-photos" class="tab-panel">
<div id="photo-grid" class="photo-grid"></div>
</section>
<section id="tab-propose" class="tab-panel">
<form id="propose-form" class="propose-form" autocomplete="off">
<p class="propose-intro">
Proposez un document, une photo ou un lien. Votre proposition sera
publiée après validation par un administrateur.
</p>
<div class="field">
<label>Type d'élément</label>
<div class="radio-row">
<label><input type="radio" name="kind" value="file" checked> 📄 Fichier</label>
<label><input type="radio" name="kind" value="photo"> 🖼 Photo</label>
<label><input type="radio" name="kind" value="link"> 🔗 Lien</label>
</div>
</div>
<div class="field">
<label for="p-folder">Dossier</label>
<select id="p-folder" name="folder_id"></select>
</div>
<div class="field" data-when="file photo">
<label for="p-file">Fichier</label>
<input id="p-file" type="file">
</div>
<div class="field" data-when="link">
<label for="p-url">URL du lien</label>
<input id="p-url" type="url" placeholder="https://…">
</div>
<div class="field">
<label for="p-title">Libellé <span class="opt">(facultatif pour un fichier)</span></label>
<input id="p-title" type="text" name="title" placeholder="Ex. Règlement intérieur 2025">
</div>
<div class="field">
<label for="p-desc">Description <span class="opt">(facultatif)</span></label>
<textarea id="p-desc" name="description" rows="3" placeholder="Texte explicatif : de quoi s'agit-il, contexte, date du document…"></textarea>
</div>
<div class="field-2">
<div class="field">
<label for="p-name">Votre nom <span class="opt">(facultatif)</span></label>
<input id="p-name" type="text" name="submitter_name">
</div>
<div class="field">
<label for="p-mail">Votre e-mail <span class="opt">(facultatif)</span></label>
<input id="p-mail" type="email" name="submitter_email">
</div>
</div>
<button type="submit" class="btn-primary">Envoyer la proposition</button>
<p id="propose-msg" class="propose-msg"></p>
</form>
</section>
</div>
</div>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script src="https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js"></script>
<script src="fiche.js"></script>
<script src="app.js"></script>
</body>
</html>