Commit Graph

  • a790ddc02a Fix admin login heading: prevent 'Administration' from hyphenating or overflowing box main Pontoporeia 2026-06-24 14:57:26 +02:00
  • 21f16ee093 chore: move #rep-polish to Completed, investigate #tighten-csp blockers Pontoporeia 2026-06-24 14:49:08 +02:00
  • eb706214ce feat: scroll-position memory on repertoire HTMX swaps + swap transition polish Pontoporeia 2026-06-24 14:45:51 +02:00
  • e0cf9f8f57 chore: update TODO — mark icon-color-verify and 3 security tasks complete Pontoporeia 2026-06-24 14:26:10 +02:00
  • 0062b29678 Fix security issues from audit: gate partage fragments on share_active session, add CSRF to retry-email POST, remove dead App::verifyCsrf() Pontoporeia 2026-06-24 14:17:08 +02:00
  • 84869ad968 Fix open redirect in tag.php + language.php: reject protocol-relative URLs (//evil.com) by also checking for // prefix Pontoporeia 2026-06-24 14:15:14 +02:00
  • 6ecd3d4540 Fix biome lint errors: remove duplicate CSS properties, apply safe auto-fixes Pontoporeia 2026-06-24 13:21:04 +02:00
  • 82d3dcb084 Fix repertoire column scrolling + admin TOC duplication Pontoporeia 2026-06-24 13:18:14 +02:00
  • 9f8a4be84e Add dev-watch recipe with chokidar-cli for live rebuild on CSS/JS changes Pontoporeia 2026-06-24 13:11:30 +02:00
  • 20fe4b6c8c Add biome + rolldown + lightningcss build pipeline for JS/CSS bundling & minification Pontoporeia 2026-06-24 13:09:44 +02:00
  • e74f9210c5 #gzip #extract-inline-js enable gzip in nginx + move ~730 lines of inline JS to 15 external files Pontoporeia 2026-06-24 12:56:09 +02:00
  • 0ff6ee78d9 #todo add gzip + inline-js extraction tasks from analysis Pontoporeia 2026-06-24 12:49:12 +02:00
  • 3c786b037a Sort all filter columns: matched entries first, then unmatched, both alphabetical Pontoporeia 2026-06-24 11:32:11 +02:00
  • 982d91345d Sort keywords column: matched entries first, then unmatched, both alphabetical Pontoporeia 2026-06-24 11:28:20 +02:00
  • 654c884fed Remove mobile filter chip bar from repertoire page Pontoporeia 2026-06-24 11:20:35 +02:00
  • bb3bb80567 Fix accordion re-init after HTMX outerHTML swap on repertoire page Pontoporeia 2026-06-24 11:12:56 +02:00
  • ecb90ba5dd Add accordion + active-filter chip bar for mobile repertoire Pontoporeia 2026-06-22 15:45:58 +02:00
  • cca3d08f05 Replace apropos/licence/charte sticky nav with responsive details/summary TOC Pontoporeia 2026-06-22 15:25:15 +02:00
  • 0a2b4781d1 Fix search icon wrong color Pontoporeia 2026-06-21 18:12:34 +02:00
  • 6aee5ec131 Clean up cleanup dialog Pontoporeia 2026-06-21 17:52:30 +02:00
  • dfde88eaa5 Migrate all <img>-based icons to inline SVG via PHP helper Pontoporeia 2026-06-21 17:23:37 +02:00
  • b1774e6e97 Replace all inline SVGs with icon files, ensure currentColor fill for proper color inheritance on buttons Pontoporeia 2026-06-21 17:04:49 +02:00
  • 71a92d682b Fix nettoyage modal: SVG icon files, padding/margin consistency, BBBDMSans font, fix HTMX trigger, nested details cleanup Pontoporeia 2026-06-21 16:50:44 +02:00
  • 03c9c3566f Add SQLite indexes for contenus page language/tag queries + WIP: Peertube orphans, dialogs, contact decoupling, context note, finality types Pontoporeia 2026-06-21 13:33:55 +02:00
  • 0d5e9dac19 fix: make sticky TOC work for full scroll height and fix heading anchor links Pontoporeia 2026-06-20 13:29:36 +02:00
  • 19bf9f101a Refactor apropos/charte/licence pages: shared layout, TOC anchors, and UI polish Pontoporeia 2026-06-15 16:35:17 +02:00
  • 928e074d24 fix: update dev server PHP limits in justfile to match large video uploads Pontoporeia 2026-06-15 16:27:38 +02:00
  • c8af3bf869 fix: remove leftover debug console.log that crashed HTMX with new FormData(fieldset) Pontoporeia 2026-06-15 16:27:00 +02:00
  • 2633cb13b5 fix: increase PHP upload limits to support large video files Pontoporeia 2026-06-15 16:17:38 +02:00
  • a5db81a73d fix: change adminOld return type from string to string|array Pontoporeia 2026-06-15 16:16:02 +02:00
  • d588ae004d Reintroduce TFE duration metadata: DB columns, form fields, controllers, views, and migration Pontoporeia 2026-06-11 13:05:37 +02:00
  • 00fed5f0e3 Add periodic cleanup of orphaned drafts: cleanup job, just command, deploy cron Pontoporeia 2026-06-11 12:23:49 +02:00
  • a19e9e1454 Extract FormBootstrap helper to eliminate bootstrap duplication across add/edit form pages Pontoporeia 2026-06-11 12:11:37 +02:00
  • f4a3e26901 Add thesis status column for two-phase commit lifecycle tracking Pontoporeia 2026-06-11 12:09:24 +02:00
  • 11a6f6a9f2 Preserve FilePond temp files across partage validation redirects Pontoporeia 2026-06-11 11:41:25 +02:00
  • b744271cf6 Extract partage page chrome to templates/partage/form-page.php Pontoporeia 2026-06-11 11:29:11 +02:00
  • cbd369bc72 Split form.css into form-base.css and form-admin.css, drop dead upload-progress code Pontoporeia 2026-06-11 11:04:01 +02:00
  • 99125cc8e3 Add autosave draft system for partage form with HTMX-based session persistence Pontoporeia 2026-06-11 10:32:53 +02:00
  • 4b37a05be3 Guard no-JS file uploads: disabled filepond_mode by default, server-side fallback Pontoporeia 2026-06-11 10:32:38 +02:00
  • 63e65d9856 Add mobile-responsive form layout with WCAG 2.5.5 touch targets Pontoporeia 2026-06-11 10:23:50 +02:00
  • e17246c850 Add field-level aria-errormessage, aria-invalid, and aria-describedby across the TFE form Pontoporeia 2026-06-11 10:22:06 +02:00
  • c0ba99e861 TODO: add form accessibility & resilience tasks from assessment Pontoporeia 2026-06-11 10:14:37 +02:00
  • 2c6b55777f Fix logs being captured Pontoporeia 2026-06-10 00:13:12 +02:00
  • fb752f5ba2 cleanup: remove _write guard — FilePond external API doesn't expose _write Pontoporeia 2026-06-09 23:35:53 +02:00
  • 6d93199fa2 docs: HTMX/destroy race hypothesis investigation — REFUTED Pontoporeia 2026-06-09 23:22:28 +02:00
  • d8d925243e docs: add filepond crash analysis report Pontoporeia 2026-06-09 23:02:32 +02:00
  • 2829d13a16 filepond: fix crash 'can't access property main, n.status is undefined' Pontoporeia 2026-06-09 21:53:08 +02:00
  • 38ef550397 feat: render actual elements in markdown cheatsheet instead of labels Pontoporeia 2026-06-09 19:57:56 +02:00
  • 4a2b000fca Add Charte static page (public + admin editing) Pontoporeia 2026-06-09 19:43:09 +02:00
  • 317547ac93 Fix #4 v2: decouple contact_interne from contact_visible in ThesisCreateController Pontoporeia 2026-06-09 19:35:33 +02:00
  • 1490c99268 Fix FilePond: maxFileSize as bytes + temp files survive page reload Pontoporeia 2026-06-09 17:41:31 +02:00
  • c4a550f9d1 Rework contenus-edit: auto-save, OverType toolbar, dynamic sidebar links Pontoporeia 2026-06-09 17:10:49 +02:00
  • a45a2c9ac4 Changed dev serve recipe to be just dev Pontoporeia 2026-06-09 16:49:52 +02:00
  • 655dd4c038 feat: clarification contact étudiant + déplacer Contact visible dans Informations du TFE Pontoporeia 2026-06-09 14:01:28 +02:00
  • 021c58925e fix: auto-regenerate thesis identifier on any year-prefix mismatch, support .php migrations in runner Pontoporeia 2026-06-09 13:40:46 +02:00
  • 07370b7221 search: ajout filtres finalité et format, boutons plus compacts et Réinitialiser en neutre Pontoporeia 2026-06-09 13:20:26 +02:00
  • 34739d6ae5 feat: migration 038 to fix thesis identifiers mismatched with their year Pontoporeia 2026-06-09 12:44:13 +02:00
  • 3df1456781 fix: author name casing not updating — use ID lookup priority Pontoporeia 2026-06-09 12:33:26 +02:00
  • 3016c199bd Fix edit form: is_published reset, contact decoupling, note label, author name case Pontoporeia 2026-06-08 18:31:10 +02:00
  • 3d524226a1 formulaire: correctifs identifiant/année, contact, fichiers optionnels Pontoporeia 2026-06-08 18:05:43 +02:00
  • c4664ec2e9 fix: prevent mid-word break in repertoire column headers Pontoporeia 2026-06-08 17:48:18 +02:00
  • a184e0d253 Ajouter l'affichage de la finalité du master sur la page publique TFE Pontoporeia 2026-06-08 17:38:50 +02:00
  • a2092b58a7 fix: supprimer les vidéos PeerTube lors de la suppression d'un TFE Pontoporeia 2026-06-08 17:24:07 +02:00
  • 312d9eab0e À propos: contacts flexibles, liens sidebar éditables, grille contacts admin, et bouton supprimer Pontoporeia 2026-06-08 12:47:19 +02:00
  • a1a9a316ca rework tfe.php layout: row1 author above title, row2 meta+synopsis 2-col grid, row3 flex files Pontoporeia 2026-06-08 12:40:17 +02:00
  • e0d706c677 tfe.css: tfe-meta-item font-weight 400→700 Pontoporeia 2026-06-08 12:31:21 +02:00
  • c9fa5943cf repertoire: rep-entry + col h2 step-0, years col step-3 Pontoporeia 2026-06-08 12:20:06 +02:00
  • ef6bff895a admin nav-logo: grid layout for icon+text horizontal alignment and vertical centering Pontoporeia 2026-06-08 12:16:21 +02:00
  • 9e272873e1 style: set tfe-meta-item default to font-weight 400 so Accès/Licence values render at regular weight Pontoporeia 2026-06-08 12:10:12 +02:00
  • 3588f22d7b style: consolidate aria-current nav styles — remove border-radius from base header links, keep global :focus-visible ring, move border-bottom/padding to shared header.css Pontoporeia 2026-06-08 11:58:22 +02:00
  • cb2b18e470 style: standardise links to Regular weight (400) with violet accent hover, body to Light (300) Pontoporeia 2026-06-08 11:53:57 +02:00
  • cee3345ea3 tfe.php: afficher CC2r + licence, formater contact court, supprimer download PDF Pontoporeia 2026-06-08 11:35:53 +02:00
  • 24b753a992 fix: add missing csrf_token to htmx checkbox in file access restrictions Pontoporeia 2026-06-08 11:22:31 +02:00
  • 3f200dae70 TFE page: replace dl/dt/dd with p/span for metadata, remove underlines, lowercase keywords/languages/formats, inclusive text, editable restriction messages Pontoporeia 2026-06-08 11:13:15 +02:00
  • 71949425c7 TFE page: remove underlines from all links, lowercase keywords/languages/formats, inclusive writing, prevent keyword mid-word breaks, editable restriction messages in admin Pontoporeia 2026-06-08 10:56:23 +02:00
  • 9a8f0cad65 fix(répertoire): colonnes différenciées, scrollbars discrètes, fontes conformes maquette, AP entre crochets Pontoporeia 2026-06-08 10:50:15 +02:00
  • df70fba5d4 feat: convert all file inputs to FilePond for standardized uploading Pontoporeia 2026-06-08 10:28:39 +02:00
  • fad38f4e0d Added more logs to be excluded Pontoporeia 2026-06-08 10:14:36 +02:00
  • 053f09b181 fix(migration): deduplicate languages before LOWER() in 025_lowercase_languages.sql Pontoporeia 2026-06-08 09:48:51 +02:00
  • f4cb06656e Improve .gitignore Pontoporeia 2026-06-04 23:50:06 +02:00
  • 2bb520bb8c Fix: anchor vendor/ gitignore to root so app/public/assets/js/vendor/ is tracked (htmx, OverType, FilePond) Pontoporeia 2026-06-08 10:12:06 +02:00
  • f398a0f1ff Fix non-constant-time credential comparisons Pontoporeia 2026-05-31 17:49:39 +02:00
  • 6246174fc5 Export: add LINK.txt with PeerTube watch URLs to file ZIP export Pontoporeia 2026-05-20 13:21:41 +02:00
  • a251aeb500 Fix: bootstrap.php autoload path detects vendor location (same dir vs parent dir) for flat server layout Pontoporeia 2026-05-20 13:10:21 +02:00
  • d33a56981e Fix: deploy-deps patches classmap path (app/src/ → src/) for flat server layout before composer install Pontoporeia 2026-05-20 13:06:09 +02:00
  • 47405e5334 Fix: split deploy recipe into deploy-code/deploy-deps/deploy-migrate; deploy-deps always syncs composer.json+composer.lock, runs composer install only when lockfile checksum changed Pontoporeia 2026-05-20 12:58:31 +02:00
  • 4e409c409d Fix: add ZipArchive guard to export-files.php, add composer install step + composer.json sync to deploy recipe Pontoporeia 2026-05-20 12:44:56 +02:00
  • ae66c2baad Integrate Monolog: replace four logging systems with single PSR-3 factory Pontoporeia 2026-05-20 02:16:17 +02:00
  • a6e0aa5887 Add code coverage configuration (phpunit.xml source filter), baseline coverage report (21.27% lines), gitignore coverage/ and .phpunit.result.cache; remove deprecated setAccessible() calls Pontoporeia 2026-05-20 02:03:55 +02:00
  • a047062d87 Phase 4 cleanup: migrate old tests to PHPUnit, add ErrorHandler/PureLogic/SearchController tests, remove app/tests/, update justfile test target Pontoporeia 2026-05-20 01:55:58 +02:00
  • 93625d09b5 Add integration tests (Phase 2: DatabaseExtended, ShareLinkExtended, RateLimitExtended) and controller validation tests (Phase 3: ThesisCreate, ThesisEdit, AutofocusField) Pontoporeia 2026-05-20 01:51:41 +02:00
  • 7a4d0fafb2 Add PHPUnit setup (Phase 0) and pure-logic tests (Phase 1): Crypto, EmailObfuscator, SystemController helpers, StudentEmail, TfeController OG tags Pontoporeia 2026-05-20 01:28:22 +02:00
  • d9e4541749 Remove unused Parsedown.php (replaced by league/commonmark in Phase 1); update phpstan baseline Pontoporeia 2026-05-20 01:21:47 +02:00
  • a0cda5b55d Phase 3: Replace SmtpRelay SMTP socket with PHPMailer Pontoporeia 2026-05-20 01:17:44 +02:00
  • ba57820016 Phase 2: Replace PeerTubeService HTTP client with Guzzle Pontoporeia 2026-05-20 01:07:41 +02:00
  • 5e75cacad7 Phase 1: Replace Parsedown with league/commonmark (4 call sites) Pontoporeia 2026-05-20 01:02:09 +02:00
  • 4683ba4116 Add composer.json with league/commonmark, guzzlehttp/guzzle, phpmailer/phpmailer; wire autoloader into bootstrap; document de-librairisation strategy and PHP extension setup Pontoporeia 2026-05-20 00:53:37 +02:00
  • 728f05502c Combine phpstan, cs-check, cs-fix into lint-php recipe; fix lint issues + test failures + duplicate detection bug Pontoporeia 2026-05-19 23:59:41 +02:00
  • 2e75a3b35c Fix beforeunload dialog appearing on edit.php when no changes made Pontoporeia 2026-05-19 22:38:29 +02:00
  • 42222abe7c Récapitulatif admin: sections → fieldsets, fichiers en table, marges + pas de thumbnails Pontoporeia 2026-05-19 22:32:26 +02:00