Files
pta/app/Views/partials/coverage_alerts.php
Loic Masi 5fbf76868f pour prod
2026-08-07 16:13:43 +02:00

74 lines
3.5 KiB
PHP
Raw 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.
<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>