diff --git a/TODO.md b/TODO.md index 0ecd024..3e92b8f 100644 --- a/TODO.md +++ b/TODO.md @@ -70,3 +70,7 @@ - [x] `partage/index.php` — warning stored as plain text (no pre-escaping); `htmlspecialchars()` applied once at render; was double-encoded before - [x] `partage/index.php` — `flash-warning` div gets `id` + `tabindex=-1`; inline JS scrolls and focuses it on load - [x] `admin/footer.php` — `htmx:afterSettle` listener focuses `.toast--warning` after HTMX injects the toast fragment + +## Sticky save/cancel buttons on edit page +- [x] `templates/admin/edit.php` — moved `.admin-form-footer` from bottom to top-right, right after `

` +- [x] `admin.css` — added `.admin-form-footer--sticky` variant with `position:sticky; top:0; justify-content:flex-end` diff --git a/app/public/assets/css/admin.css b/app/public/assets/css/admin.css index 8800b1e..75fa0cb 100644 --- a/app/public/assets/css/admin.css +++ b/app/public/assets/css/admin.css @@ -78,6 +78,17 @@ padding-top: var(--space-m); } +/* Sticky variant — pinned below admin header, top-right */ +.admin-form-footer--sticky { + position: sticky; + top: 0; + z-index: 10; + margin: 0 0 var(--space-m); + display: flex; + justify-content: flex-end; + gap: var(--space-s); +} + .admin-btn { padding: var(--space-2xs) var(--space-l); background: var(--accent-primary); diff --git a/app/storage/logs/admin.log b/app/storage/logs/admin.log index 94b822a..1616cac 100644 --- a/app/storage/logs/admin.log +++ b/app/storage/logs/admin.log @@ -2,3 +2,6 @@ {"timestamp":"2026-05-04T15:53:38+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"maintenance_off","status":"success"} {"timestamp":"2026-05-04T15:53:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"maintenance_on","status":"success"} {"timestamp":"2026-05-04T16:11:57+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"maintenance_off","status":"success"} +{"timestamp":"2026-05-05T09:06:21+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"add","status":"success","context":{"thesis_id":38,"identifier":"2025-013","author":"Lila Dubois, Karim Nassar"}} +{"timestamp":"2026-05-05T09:08:03+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[38]}} +{"timestamp":"2026-05-05T09:19:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":38,"title":"Jouer l'espace : dispositifs scénographiques pour l'expérience participative"}} diff --git a/app/storage/logs/form-submissions.log b/app/storage/logs/form-submissions.log index 4a1b264..33a5ec2 100644 --- a/app/storage/logs/form-submissions.log +++ b/app/storage/logs/form-submissions.log @@ -18,3 +18,4 @@ {"source":"admin","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","timestamp":"2026-05-04T15:11:26+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"} {"source":"partage","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","share_slug":"20260429-DZESJT6X","timestamp":"2026-05-04T15:11:36+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"} {"source":"partage","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","share_slug":"20260429-DZESJT6X","timestamp":"2026-05-04T15:11:43+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"} +{"source":"admin","action":"submit","status":"success","thesis_id":38,"identifier":"2025-013","author":"Lila Dubois, Karim Nassar","timestamp":"2026-05-05T09:06:21+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"} diff --git a/app/templates/admin/edit.php b/app/templates/admin/edit.php index 0e45125..8498153 100644 --- a/app/templates/admin/edit.php +++ b/app/templates/admin/edit.php @@ -2,6 +2,11 @@

Modifier un TFE

+ + @@ -236,9 +241,6 @@ - +