style: unify recap+edit file figure styling — two-column grid dl, vertical spacing, admin-back-btn sizing, standardise file display and delete-to-trash SVG icons

This commit is contained in:
Pontoporeia
2026-05-11 14:53:51 +02:00
parent 230555a4c4
commit 206a6427e7
9 changed files with 183 additions and 196 deletions

View File

@@ -38,7 +38,7 @@
<!-- ═══════════ Identité ═══════════ -->
<section>
<h2>Identité</h2>
<dl>
<dl class="recap-dl">
<dt>Identifiant</dt><dd><?= htmlspecialchars($thesis['identifier']) ?></dd>
<dt>Titre</dt><dd><?= htmlspecialchars($thesis['title']) ?></dd>
<?php if ($thesis['subtitle']): ?>
@@ -60,7 +60,7 @@
<!-- ═══════════ Cadre académique ═══════════ -->
<section>
<h2>Cadre académique</h2>
<dl>
<dl class="recap-dl">
<dt>Orientation</dt><dd><?= htmlspecialchars($thesis['orientation'] ?? '') ?></dd>
<dt>Atelier Pratique</dt><dd><?= htmlspecialchars($thesis['ap_program'] ?? '') ?></dd>
<dt>Finalité</dt><dd><?= htmlspecialchars($thesis['finality_type'] ?? '') ?></dd>
@@ -79,7 +79,7 @@
<?php if ($hasJury): ?>
<section>
<h2>Jury</h2>
<dl>
<dl class="recap-dl">
<?php if ($thesis['jury_president']): ?>
<dt>Président·e</dt><dd><?= htmlspecialchars($thesis['jury_president']) ?></dd>
<?php endif; ?>
@@ -108,7 +108,7 @@
<!-- ═══════════ Contenu ═══════════ -->
<section>
<h2>Contenu</h2>
<dl>
<dl class="recap-dl">
<dt>Synopsis</dt>
<dd class="recap-synopsis"><?= nl2br(htmlspecialchars($thesis['synopsis'] ?? '')) ?></dd>
@@ -138,7 +138,7 @@
<!-- ═══════════ Accès et licence ═══════════ -->
<section>
<h2>Accès et licence</h2>
<dl>
<dl class="recap-dl">
<dt>Degré d'ouverture</dt><dd><?= htmlspecialchars($thesis['access_type'] ?? '') ?></dd>
<?php if ($thesis['license_type']): ?>
@@ -159,7 +159,7 @@
<!-- ═══════════ Dates et publication ═══════════ -->
<section>
<h2>Dates et publication</h2>
<dl>
<dl class="recap-dl">
<?php if ($thesis['submitted_at']): ?>
<dt>Soumis le</dt><dd><?= date('d/m/Y à H:i', strtotime($thesis['submitted_at'])) ?></dd>
<?php endif; ?>
@@ -188,15 +188,16 @@
<?php if (!empty($files)): ?>
<section>
<h2>Fichiers (<?= count($files) ?>)</h2>
<ul class="recap-files-list" role="list">
<ul class="admin-file-list" role="list">
<?php foreach ($files as $f): ?>
<?php
$mime = $f['mime_type'] ?? '';
$filePath = $f['file_path'] ?? '';
$fileName = htmlspecialchars($f['file_name'] ?? basename($filePath));
$fileType = htmlspecialchars($f['file_type']);
$displayLabel = $f['display_label'] ?? $f['description'] ?? '';
$isImage = str_starts_with($mime, 'image/');
$fileType = $f['file_type'] ?? 'other';
$displayLabel = $f['display_label'] ?? '';
$fileExt = strtolower(pathinfo($filePath, PATHINFO_EXTENSION));
$isImage = str_starts_with($mime, 'image/') || in_array($fileExt, ['jpg','jpeg','png','gif','webp']);
$isPeerTube = str_starts_with($filePath, 'peertube_ids:');
$isExternal = str_starts_with($filePath, 'http://') || str_starts_with($filePath, 'https://');
@@ -219,17 +220,17 @@
$isPeerTube && $fileType === 'audio' => '🔊',
$fileType === 'cover' => '🖼️',
$fileType === 'note_intention' => '📝',
$fileType === 'main' || ($mime === 'application/pdf') => '📄',
$fileType === 'video' || str_starts_with($mime, 'video/') => '🎬',
$fileType === 'audio' || str_starts_with($mime, 'audio/') => '🔊',
$fileType === 'main' || ($mime === 'application/pdf') || $fileExt === 'pdf' => '📄',
$fileType === 'video' || str_starts_with($mime, 'video/') || in_array($fileExt, ['mp4','webm','mov','ogv']) => '🎬',
$fileType === 'audio' || str_starts_with($mime, 'audio/') || in_array($fileExt, ['mp3','ogg','wav','flac','aac','m4a']) => '🔊',
$isImage => '🖼️',
$fileType === 'caption' => '💬',
$fileType === 'caption' || $fileExt === 'vtt' => '💬',
$fileType === 'annex' => '📎',
$fileType === 'website' => '🌐',
default => '📎',
};
?>
<li class="recap-files-list-item">
<li class="admin-file-list-item">
<figure class="admin-file-figure">
<?php if ($isImage && !$isPeerTube): ?>
<img src="<?= $mediaUrl ?>" alt="<?= $fileName ?>" class="admin-file-thumb" loading="lazy">
@@ -238,11 +239,7 @@
<?php endif; ?>
<figcaption class="admin-file-caption">
<div class="admin-file-name-row">
<?php if (($isPeerTube && $mediaUrl !== '#') || $isExternal): ?>
<a href="<?= $mediaUrl ?>" target="_blank" rel="noopener" class="admin-file-name"><?= $fileName ?></a>
<?php else: ?>
<a href="<?= $mediaUrl ?>" target="_blank" rel="noopener" class="admin-file-name"><?= $fileName ?></a>
<?php endif; ?>
</div>
<?php if ($isPeerTube): ?>
<span class="admin-file-peertube-id">ID: <?= htmlspecialchars($_ptUuid) ?></span>
@@ -251,8 +248,13 @@
<span class="admin-file-label"><?= htmlspecialchars($displayLabel) ?></span>
<?php endif; ?>
<span class="admin-file-meta-row">
<span class="admin-file-meta"><?= htmlspecialchars($fileType) ?></span>
<?php if (!empty($f['file_size']) && $f['file_size'] > 0): ?>
<span class="admin-file-meta"><?= formatFileSize($f['file_size']) ?></span>
<?php endif; ?>
<?php if (!empty($f['uploaded_at'])): ?>
<span class="admin-file-meta"><?= date('d/m/Y H:i', strtotime($f['uploaded_at'])) ?></span>
<?php endif; ?>
</span>
</figcaption>
</figure>