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

137 lines
7.7 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="agent-view" class="app-view page-content">
<section class="card">
<div class="section-heading">
<div>
<h2><?= ($accessProfile['role'] ?? '') === 'AGENT' ? 'Mon planning' : 'Vue individuelle dun agent' ?></h2>
<p class="section-subtitle"><?= ($accessProfile['role'] ?? '') === 'AGENT'
? 'Consultation de votre planning mensuel et suivi de votre quota.'
: (!empty($permissions['can_copy_full_week'])
? 'Planning mensuel, modification directe des créneaux, duplication de semaines et suivi du quota annuel.'
: 'Planning mensuel des agents du lieu, modification des créneaux du lieu et suivi du quota annuel.') ?></p>
</div>
</div>
<div class="selection-grid overview-filters">
<label class="field">
<span>Agent</span>
<select id="overview-agent">
<option value="">Choisir un agent</option>
<?php foreach ($agents as $agent): ?>
<option value="<?= (int) $agent['id_agent'] ?>">
<?= htmlspecialchars($agent['prenom'] . ' ' . $agent['nom'] . ' (' . $agent['matricule'] . ')') ?>
</option>
<?php endforeach; ?>
</select>
</label>
<label class="field">
<span>Mois</span>
<input id="agent-overview-month" type="month" value="<?= htmlspecialchars((new DateTimeImmutable())->format('Y-m')) ?>">
</label>
<button id="load-agent-overview" class="button button-primary filter-button" type="button">Afficher le mois</button>
</div>
</section>
<section class="card overview-card">
<div id="agent-overview-message" class="message" role="status" aria-live="polite"></div>
<div id="agent-overview-empty" class="empty-state">Choisissez un agent et un mois.</div>
<div id="agent-overview-content" hidden></div>
</section>
</section>
<?php if (!empty($permissions['can_edit_draft'])): ?>
<div id="agent-entry-modal" class="modal-backdrop" hidden>
<section class="modal-card" role="dialog" aria-modal="true" aria-labelledby="agent-entry-modal-title">
<div class="section-heading modal-heading">
<div>
<h2 id="agent-entry-modal-title">Modifier un créneau</h2>
<p class="section-subtitle">Modifiez directement le jour, le lieu, le motif ou les horaires. Un déplacement vers une autre semaine est autorisé.</p>
</div>
<button id="close-agent-entry-modal" type="button" class="button button-ghost modal-close" aria-label="Fermer">×</button>
</div>
<form id="agent-entry-edit-form" class="admin-form">
<input id="edit-agent-entry-id" type="hidden">
<div class="admin-form-grid">
<label class="field">
<span>Jour</span>
<input id="edit-agent-entry-date" type="date" required>
</label>
<label class="field">
<span>Lieu daffectation</span>
<select id="edit-agent-entry-structure" required>
<?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>Motif</span>
<select id="edit-agent-entry-motif" required>
<?php foreach ($motifs as $motif): ?>
<option value="<?= (int) $motif['id_motif'] ?>"><?= htmlspecialchars($motif['libelle']) ?></option>
<?php endforeach; ?>
</select>
</label>
<div class="field edit-time-range-field">
<span>Horaires</span>
<div class="edit-time-range">
<input id="edit-agent-entry-start" type="time" step="900" required aria-label="Heure de début">
<span>→</span>
<input id="edit-agent-entry-end" type="time" step="900" required aria-label="Heure de fin">
</div>
</div>
</div>
<p class="hint">Toute modification dun planning validé le repasse automatiquement en brouillon afin quil soit contrôlé et validé à nouveau.</p>
<div id="agent-entry-edit-message" class="message" role="status" aria-live="polite"></div>
<div class="admin-form-actions modal-actions agent-entry-modal-actions">
<button id="delete-agent-entry-edit" type="button" class="button button-danger">Supprimer le créneau</button>
<span class="modal-action-spacer" aria-hidden="true"></span>
<button id="cancel-agent-entry-edit" type="button" class="button button-secondary">Annuler</button>
<button id="save-agent-entry-edit" type="submit" class="button button-primary">Enregistrer la modification</button>
</div>
</form>
</section>
</div>
<?php endif; ?>
<?php if (!empty($permissions['can_copy_full_week'])): ?>
<div id="agent-week-copy-modal" class="modal-backdrop" hidden>
<section class="modal-card planning-entry-action-card" role="dialog" aria-modal="true" aria-labelledby="agent-week-copy-title">
<div class="section-heading modal-heading">
<div>
<h2 id="agent-week-copy-title">Dupliquer une semaine</h2>
<p id="agent-week-copy-summary" class="section-subtitle"></p>
</div>
<button id="close-agent-week-copy-modal" type="button" class="button button-ghost modal-close" aria-label="Fermer">×</button>
</div>
<form id="agent-week-copy-form" class="admin-form">
<input id="agent-week-copy-source" type="hidden">
<label class="field">
<span>Semaine cible</span>
<input id="agent-week-copy-target" type="week" required>
</label>
<fieldset class="entry-action-mode">
<legend>Mode de duplication</legend>
<label class="entry-action-option">
<input type="radio" name="agent-week-copy-mode" value="merge" checked>
<span><strong>Compléter</strong><small>Conserve les créneaux déjà présents. Refus en cas de chevauchement.</small></span>
</label>
<label class="entry-action-option">
<input type="radio" name="agent-week-copy-mode" value="replace">
<span><strong>Remplacer</strong><small>Efface les créneaux de la semaine cible avant la copie.</small></span>
</label>
</fieldset>
<div id="agent-week-copy-message" class="message" role="status" aria-live="polite"></div>
<div class="admin-form-actions modal-actions">
<button id="cancel-agent-week-copy" type="button" class="button button-secondary">Annuler</button>
<button id="confirm-agent-week-copy" type="submit" class="button button-primary">Dupliquer la semaine</button>
</div>
</form>
</section>
</div>
<?php endif; ?>