pour prod

This commit is contained in:
Loic Masi
2026-08-07 16:13:43 +02:00
commit 5fbf76868f
157 changed files with 24085 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
<section id="coverage-view" class="app-view page-content">
<section class="card coverage-header-card">
<div class="section-heading">
<div>
<h2>Contrôle de couverture des lieux</h2>
<p class="section-subtitle">Repérez les plages le nombre dagents en « Heure de travail » est inférieur au minimum attendu.</p>
</div>
<button id="refresh-coverage-alerts" class="button button-secondary" type="button">Actualiser</button>
</div>
<div class="selection-grid overview-filters coverage-filters">
<label class="field">
<span>Lieu daffectation</span>
<select id="coverage-structure-filter">
<option value="">Tous les lieux</option>
<?php foreach ($structures as $structure): ?>
<option value="<?= (int) $structure['id_structure'] ?>"><?= htmlspecialchars($structure['nom']) ?> — <?= ($structure['type_affectation'] ?? 'PERISCOLAIRE') === 'EXTRASCOLAIRE' ? 'Extrascolaire' : 'Périscolaire' ?></option>
<?php endforeach; ?>
</select>
</label>
<label class="field">
<span>Semaine</span>
<input id="coverage-week" type="week" value="<?= htmlspecialchars($currentWeek) ?>">
</label>
</div>
<div class="coverage-summary" aria-live="polite">
<article class="coverage-summary-card coverage-summary-danger">
<span>Créneaux insuffisamment couverts</span>
<strong id="coverage-gap-count">0</strong>
<small>plage(s) à traiter</small>
</article>
<article class="coverage-summary-card">
<span>Lieux concernés</span>
<strong id="coverage-structure-count">0</strong>
<small>avec un manque</small>
</article>
<article class="coverage-summary-card">
<span>Temps non couvert</span>
<strong id="coverage-gap-hours">0 h 00</strong>
<small>durée cumulée</small>
</article>
<article class="coverage-summary-card">
<span>Couvertures non configurées</span>
<strong id="coverage-unconfigured-count">0</strong>
<small>lieu(x)</small>
</article>
</div>
</section>
<section class="card coverage-list-card">
<div id="coverage-message" class="message" role="status" aria-live="polite"></div>
<div id="coverage-loading" class="empty-state" hidden>Analyse de la couverture en cours…</div>
<div id="coverage-empty" class="empty-state" hidden>Aucun manque de couverture détecté sur cette semaine.</div>
<div id="coverage-content" class="coverage-table-wrap" hidden>
<table class="coverage-table">
<thead>
<tr>
<th>Lieu</th>
<th>Jour</th>
<th>Créneau</th>
<th>Minimum attendu</th>
<th>Planifié</th>
<th>Manque</th>
<th></th>
</tr>
</thead>
<tbody id="coverage-alerts-body"></tbody>
</table>
</div>
<div id="coverage-unconfigured" class="coverage-unconfigured" hidden></div>
</section>
</section>