Files
pta/app/Views/partials/annual_overview.php
2026-08-20 13:22:49 +02:00

112 lines
6.1 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.
<?php
/**
* Calendrier annuel d'un agent et validation de l'année entière.
* Le calendrier est intégralement construit côté serveur (AnnualOverviewModel) ;
* ce partiel ne fournit que les conteneurs vides.
* Module JS : `annualOverview`.
*
* Partiel de contenu inclus par la vue de page homonyme. Les identifiants HTML
* posés ici sont les points d'ancrage du module JS : les renommer casse le
* module sans aucune erreur visible.
*/
$currentYear = (int) date('Y');
?>
<section class="page-content annual-overview-page">
<section class="card annual-filter-card no-print">
<div class="section-heading">
<div>
<h2>Prévisionnel annuel de l’agent</h2>
<p class="section-subtitle">Vue de contrôle de janvier à décembre, inspirée du tableau d’annualisation utilisé par le service.</p>
</div>
</div>
<div class="selection-grid overview-filters annual-filters">
<label class="field">
<span>Agent</span>
<select id="annual-agent">
<option value="">Choisir un agent</option>
<?php foreach ($agents as $agent): ?>
<option value="<?= (int) $agent['id_agent'] ?>">
<?= htmlspecialchars($agent['prenom'] . ' ' . $agent['nom'] . ' — ' . ($agent['poste_libelle'] ?? 'Poste non renseigné')) ?>
</option>
<?php endforeach; ?>
</select>
</label>
<label class="field">
<span>Année affichée</span>
<input id="annual-year" type="number" min="2000" max="2100" value="<?= $currentYear ?>">
</label>
<div class="overview-filter-actions annual-filter-actions">
<button id="load-annual" class="button button-primary" type="button">Afficher l’année</button>
<button id="annual-print" class="button button-secondary" type="button" disabled>Imprimer</button>
<button id="annual-fullscreen" class="button button-secondary" type="button" disabled>Plein écran</button>
</div>
</div>
<div id="annual-message" class="message" role="status" aria-live="polite"></div>
</section>
<section id="annual-content" class="annual-sheet" hidden>
<header class="annual-sheet-header">
<div class="annual-title-row">
<span class="annual-direction">Direction Enfance</span>
<h2 id="annual-title">ANNUALISATION</h2>
<span id="annual-updated" class="annual-updated"></span>
</div>
<div class="annual-identity-grid">
<div><span>Nom de l’agent</span><strong id="annual-agent-name">—</strong></div>
<div><span>Matricule</span><strong id="annual-agent-number">—</strong></div>
<div><span>Quotité de travail</span><strong id="annual-rate">—</strong></div>
<div><span>Nombre d’heures</span><strong id="annual-target">—</strong></div>
<div><span>Statut</span><strong id="annual-contract">—</strong></div>
<div><span>Lieu principal</span><strong id="annual-location">—</strong></div>
<div><span>Poste</span><strong id="annual-post">—</strong></div>
<div><span>Reste à affecter</span><strong id="annual-remaining">—</strong></div>
</div>
<div id="annual-quota-periods" class="annual-quota-periods"></div>
<div class="annual-toolbar no-print">
<a id="annual-open-pta" class="button button-secondary" href="pta.php">Ouvrir le PTA détaillé</a>
<a id="annual-open-month" class="button button-secondary" href="agents.php">Ouvrir la vue mensuelle</a>
<p>Cliquer sur une journée pour ouvrir sa semaine dans l’écran de planning.</p>
</div>
</header>
<section class="annual-summary-strip">
<article><span>Prévisionnel affiché</span><strong id="annual-calendar-total">0 h 00</strong></article>
<article><span>Heures validées</span><strong id="annual-validated-total">0 h 00</strong></article>
<article><span>Heures en brouillon</span><strong id="annual-draft-total">0 h 00</strong></article>
<article><span>Période visualisée</span><strong id="annual-year-label">—</strong></article>
</section>
<div class="annual-grid-scroll" tabindex="0" aria-label="Tableau annuel défilant horizontalement">
<div id="annual-months" class="annual-months"></div>
</div>
<footer class="annual-sheet-footer">
<div id="annual-legend" class="annual-legend"></div>
<div class="annual-abbreviations">
<strong>Colonnes :</strong>
<span><b>AP</b> Activité périscolaire</span>
<span><b>PP</b> Préparation périscolaire</span>
<span><b>AE</b> Activité extrascolaire</span>
<span><b>PE</b> Préparation extrascolaire</span>
</div>
</footer>
<section class="annual-validation-card no-print" aria-labelledby="annual-validation-title">
<div class="annual-validation-heading">
<div>
<p class="eyebrow">Service Enfance</p>
<h3 id="annual-validation-title">Validation annuelle</h3>
<p>Contrôler puis valider en une fois tous les plannings en brouillon de l’agent sur l’année affichée.</p>
</div>
<button id="annual-validate-year" class="button button-primary" type="button">
Valider toutes les semaines de l’année
</button>
</div>
<p class="annual-validation-note">
En cas d’erreur, aucune semaine n’est validée. Les semaines à corriger peuvent être ouvertes dans un nouvel onglet afin de conserver cette vue annuelle ouverte.
</p>
<div id="annual-validation-result" class="annual-validation-result" aria-live="polite"></div>
</section>
</section>
</section>