feat: add file display to forms and recap pages

- Live file preview on all file inputs (file-field partial, edit template):
  thumbnails for images, emoji icons for PDF/video/zip/vtt, filename + size
- New file-preview.js wired via $extraJs in add.php / edit.php and direct
  <script> in partage/index.php; $extraJs support added to head.php
- admin/recapitulatif.php: replace plain table with rich file list — image
  thumbnails linked to media.php, type badges, human-readable size, date
- partage/recapitulatif.php: full rewrite — shows thesis metadata + files
  list with same rich display (no media links for student privacy)
- form.css: new sections for .file-preview-list (live preview) and
  .recap-file-list / .recap-dl / .partage-recap (recap pages)
This commit is contained in:
Pontoporeia
2026-04-27 20:41:43 +02:00
parent aca7e7eef8
commit 32a7509598
11 changed files with 450 additions and 107 deletions

View File

@@ -15,6 +15,7 @@ $accept = $accept ?? '';
$hint = $hint ?? null;
$multiple = $multiple ?? false;
$id = $id ?? $name;
$previewId = 'fp-' . htmlspecialchars($id);
?>
<div>
<label for="<?= htmlspecialchars($id) ?>"><?= htmlspecialchars($label) ?></label>
@@ -23,11 +24,13 @@ $id = $id ?? $name;
id="<?= htmlspecialchars($id) ?>"
name="<?= htmlspecialchars($name) ?><?= $multiple ? '[]' : '' ?>"
<?= $accept ? 'accept="' . htmlspecialchars($accept) . '"' : '' ?>
<?= $multiple ? 'multiple' : '' ?>>
<?= $multiple ? 'multiple' : '' ?>
data-preview="<?= $previewId ?>">
<div id="<?= $previewId ?>" class="file-preview-list" aria-live="polite"></div>
<?php if ($hint): ?>
<small><?= htmlspecialchars($hint) ?></small>
<?php endif; ?>
</div>
</div>
<?php
unset($accept, $hint, $multiple, $id);
unset($accept, $hint, $multiple, $id, $previewId);