From 0b650cd3e727105d60f70e9b6a2dee06029d5ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Gervreau-Mercier?= Date: Thu, 12 Feb 2026 10:37:28 +0100 Subject: [PATCH] Work on the admin section styling --- .ignore | 2 + public/admin/add.php | 14 +++- public/admin/inc/head.php | 18 +++-- public/assets/admin.css | 157 ++++++++++++++++++++++++++++++++++++-- 4 files changed, 176 insertions(+), 15 deletions(-) create mode 100644 .ignore diff --git a/.ignore b/.ignore new file mode 100644 index 0000000..b3ccb3a --- /dev/null +++ b/.ignore @@ -0,0 +1,2 @@ +docs +nginx diff --git a/public/admin/add.php b/public/admin/add.php index 2e051b8..4586bc9 100644 --- a/public/admin/add.php +++ b/public/admin/add.php @@ -78,11 +78,12 @@ function wasSelected($key, $value) " required> - +
"> +
+
+
+
" required> +
"> +
+
+
+
+
"> +
Séparez les mots-clés par des virgules. Maximum 10 mots-clés. "> +
Indiquez la durée (en minutes) ou le nombre de pages de votre TFE. <?php echo htmlspecialchars($pageTitle ?? 'Admin'); ?> - Post-ERG - @@ -16,7 +15,10 @@ (function poll() { fetch('/live-reload.php') .then(r => r.json()) - .then(d => { if (d.changed) location.reload(); else setTimeout(poll, 1000); }) + .then(d => { + if (d.changed) location.reload(); + else setTimeout(poll, 1000); + }) .catch(() => setTimeout(poll, 2000)); })(); @@ -31,25 +33,25 @@ // Detect current page $currentPage = basename($_SERVER['PHP_SELF']); $thesisId = $_GET['id'] ?? null; - + // Build navigation based on context $navLinks = []; - + // Always show list if ($currentPage !== 'index.php') { $navLinks[] = ''; } - + // Show add thesis if not on add page if ($currentPage !== 'add.php') { $navLinks[] = ''; } - + // Show import if not on import page if ($currentPage !== 'import.php') { $navLinks[] = ''; } - + // If on edit or thanks page with thesis ID, show edit and view links if ($thesisId && in_array($currentPage, ['edit.php', 'thanks.php'])) { if ($currentPage !== 'edit.php') { @@ -59,7 +61,7 @@ $navLinks[] = ''; } } - + echo implode(' ', $navLinks); ?> diff --git a/public/assets/admin.css b/public/assets/admin.css index df7aa12..d66b4d8 100644 --- a/public/assets/admin.css +++ b/public/assets/admin.css @@ -1,19 +1,164 @@ +:root { + --background-body: #3c856bff; + --background: #161f27; + --background-alt: #1a242f; + --selection: #1c76c5; + --text-main: #dbdbdb; + --text-bright: #fff; + --text-muted: #a9b1ba; + --links: #41adff; + --focus: #0096bfab; + --border: ; + --code: #ffbe85; + --animation-duration: 0.1s; + --button-base: #0c151c; + --button-hover: #040a0f; + --scrollbar-thumb: var(--button-hover); + --scrollbar-thumb-hover: color-mod(var(--scrollbar-thumb) lightness(-30%)); + --form-placeholder: #a9a9a9; + --form-text: #fff; + --variable: #d941e2; + --highlight: #efdb43; + --select-arrow: svg-load("./assets/select-arrow.svg", fill: #efefef); +} + +/* @media (prefers-color-scheme: dark) { */ +/* --background-body: #202b38; */ +/* --background: #161f27; */ +/* --background-alt: #1a242f; */ +/* --selection: #1c76c5; */ +/* --text-main: #dbdbdb; */ +/* --text-bright: #fff; */ +/* --text-muted: #a9b1ba; */ +/* --links: #41adff; */ +/* --focus: #0096bfab; */ +/* --border: #526980; */ +/* --code: #ffbe85; */ +/* --animation-duration: 0.1s; */ +/* --button-base: #0c151c; */ +/* --button-hover: #040a0f; */ +/* --scrollbar-thumb: var(--button-hover); */ +/* --scrollbar-thumb-hover: color-mod(var(--scrollbar-thumb) lightness(-30%)); */ +/* --form-placeholder: #a9a9a9; */ +/* --form-text: #fff; */ +/* --variable: #d941e2; */ +/* --highlight: #efdb43; */ +/* --select-arrow: svg-load("./assets/select-arrow.svg", fill: #efefef); */ +/* } */ + /* Base Styles */ body { - max-width: 95vw; margin: auto; - /* background-color: yellow; */ + padding: 0; + background-color: var(--background-body); + color: var(--text-main); + font-size: 1.2em; } + +header, main, footer { + margin: auto 2ch; +} + +header, footer { + text-align: center; +} + main { + padding: 2ch; max-width: 80vw; margin: auto 1.2rem; - /* background-color: yellow; */ + max-width: 800px; + margin: 20px auto; + padding: 0 10px; + position: relative; +} +table { + table-layout: auto; + margin: auto; + width: 95vw; + margin-left: calc(50% - 45vw); + /* margin: auto; */ +} +table { + width: max-content; + min-width: 95vw; /* optional fallback */ + table-layout: auto; +} + +/* https://stackoverflow.com/questions/3084261/alternate-table-row-color-using-css */ + +tr:nth-child(even) { + background-color: #204639; +} + +tr:nth-child(odd) { + background-color: #2f6a55; } nav { margin-top: 1rem; } +fieldset { + border: 1px solid; + border-radius: 6px; + margin: 0; + margin-bottom: 12px; + padding: 1em; +} + +legend { + font-size: 0.9em; + font-weight: 600; +} + +label { + vertical-align: middle; + margin-bottom: 1em; + display: inline-block; +} + +button, +select, +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="checkbox"], +input[type="range"], +input[type="radio"] { + cursor: pointer; +} + +input, +select { + display: block; +} + +input, +button, +textarea, +select { + color: var(--form-text); + background-color: var(--background); + font-family: inherit; + font-size: inherit; + margin-right: 6px; + margin-bottom: 6px; + padding: 10px; + border: none; + border-radius: 6px; + outline: none; +} + +button, +input[type="submit"], +input[type="reset"], +input[type="button"] { + background-color: var(--button-base); + padding-right: 30px; + padding-left: 30px; +} + /* Alert Messages */ .error-message, .alert-error { @@ -49,9 +194,9 @@ nav { } /* Lists */ -ul.no-style { - list-style: none; -} +/* ul.no-style { */ +/* list-style: none; */ +/* } */ /* Filters */ .filters {