refine: required confirmation_email field on both student forms, StudentEmail uses it directly

- Add dedicated 'confirmation_email' (type=email, required) field
  to student form at end of submission (partage + admin).
- ThesisCreateController now validates it is present and a valid
  email; form is rejected if missing/invalid.
- Autofocus mapping for confirmation_email errors.
- StudentEmail uses confirmation_email directly (removed extractEmail
  hack that mined email from free-form contact field).
This commit is contained in:
Pontoporeia
2026-04-20 15:02:28 +02:00
parent fa75ca4a65
commit e21a4d81a2
9 changed files with 189 additions and 1 deletions

View File

@@ -83,6 +83,10 @@ $bodyClass = 'admin-body';
<td><?= $created ?></td>
<td>
<div class="admin-actions">
<a href="/partage/<?= urlencode($link['slug']) ?>" target="_blank" rel="noopener"
class="admin-btn-sm admin-btn-visit" title="Visiter le formulaire">
👁 Visiter
</a>
<button type="button" class="admin-btn-sm admin-btn-view"
onclick="copyUrl(<?= $link['id'] ?>)" title="Copier l'URL">
Copier

View File

@@ -151,6 +151,12 @@ include APP_ROOT . '/templates/header.php';
?>
</fieldset>
<!-- ═══════════════════ E-mail de confirmation ═══════════ -->
<fieldset>
<legend>E-mail de confirmation</legend>
<?php $name = 'confirmation_email'; $label = 'Adresse e-mail * :'; $value = old('confirmation_email'); $type = 'email'; $required = true; $placeholder = 'ton.email@exemple.be'; $hint = 'Nécessaire pour recevoir le récapitulatif de ta soumission.'; $attrs = withAutofocus('confirmation_email'); include APP_ROOT . '/templates/partials/form/text-field.php'; ?>
</fieldset>
<div class="form-footer">
<button type="submit" name="go">Soumettre</button>
</div>