Commit Graph

  • 03c5fd217e feat: dual upload system — direct file storage + PeerTube API integration Pontoporeia 2026-05-08 16:48:34 +02:00
  • 11e61226e2 fix: justfile shebang recipes indentation (spaces → tabs) Pontoporeia 2026-05-08 16:35:00 +02:00
  • e6829994b6 Refactor + feat: unify format/fichiers HTMX fragment, reorder format types, add file constraints, fix admin auth Pontoporeia 2026-05-08 13:03:18 +02:00
  • 7e35bba530 Encrypt SMTP password at rest with AES-256-GCM Pontoporeia 2026-05-08 12:48:27 +02:00
  • 95fcbc919a Remove required from all admin add/edit form inputs Pontoporeia 2026-05-08 12:40:06 +02:00
  • 5735ccbc38 Fix issues with nginx access to pages Pontoporeia 2026-05-08 11:30:02 +02:00
  • 6ba13e00ea test: add ShareLinkTest + PureLogicTest (TDD), fix coverMap undefined in SearchController Pontoporeia 2026-05-08 10:56:27 +02:00
  • 15d54fa19e add Néerlandais language option and make language_autre conditionally required Pontoporeia 2026-05-08 10:55:08 +02:00
  • f3d9615562 merge banners into covers: remove banner field, migrate files, add covers to search/home/repertoire cards Pontoporeia 2026-05-08 10:46:02 +02:00
  • e3896811c4 Fix migrations and deploy issues + errors + linting - scan both pending/ and applied/ dirs so remote catch-up works - fix remote 500s: run.php handles per-statement errors so VIEW rebuilds run after duplicate columns; replace mb_strimwidth with substr (no mbstring extension on server) - add missing migration: 015_license_custom.sql (column existed in schema.sql but was never migrated) - remote: fgetcsv enclosure single-char + AdminLogger permission-denied guard + deploy always migrates - fix admin-filters wrapping: restore flex-wrap, flex-basis on inputs/selects, shrink-protect buttons - fix phpstan: remove redundant ?? [] after isset guard in ThesisEditController - biome: exclude vendored min.js via includes patterns; lint whole js dir; modernise beforeunload-guard.js Pontoporeia 2026-05-07 23:45:09 +02:00
  • bdd95341b0 Extract shared TFE form partial — single source of truth for add/edit/partage Pontoporeia 2026-05-07 22:48:18 +02:00
  • ac0008df6c Add website-type TFE support: URLs stored as thesis_files rows, HTMX-toggle on Site web format Pontoporeia 2026-05-07 21:24:46 +02:00
  • 9dc7ea98f2 fix: password-protected share links never load form after password entry Pontoporeia 2026-05-07 20:58:15 +02:00
  • 03121d6b7e form: add spacing between elements inside fieldsets Pontoporeia 2026-05-07 20:52:04 +02:00
  • d9dd4bdbc7 Edit Email confirmation styling Pontoporeia 2026-05-07 20:42:51 +02:00
  • 696259afae Fix form field required states & missing fields per spec Pontoporeia 2026-05-07 19:54:52 +02:00
  • 51f9f56e09 Replace span with a link + href in about.php for credits Pontoporeia 2026-05-07 19:40:32 +02:00
  • e0c748d8e7 Refactor about.php Pontoporeia 2026-05-07 18:44:30 +02:00
  • 24d68dda59 refactor form structure per new spec + fix - split jury into interne/externe/ULB, - remove president from student form, - add language_autre, - split duration into pages+minutes+annexes, - move licence to degrés d'ouverture with CC2r, - add license_custom, - filter PACS from student AP list, - editable généralités help block, - Libre toggle per settings Pontoporeia 2026-05-07 17:52:46 +02:00
  • dce0e0b301 schema: validate against new TFE field spec - add exemplaire_baiu, exemplaire_erg, cc4r, remarks; - add is_ulb to jury; - split jury_lecteurs into interne/externe in view; - refactor admin edit form with backoffice fields; - update public fiche to show promoteur ULB and split lecteurs Pontoporeia 2026-05-07 17:30:34 +02:00
  • 7793b6f86d add file export system for admins Pontoporeia 2026-05-07 16:28:17 +02:00
  • 821369f004 exclude maintenance.flag from rsync deploy and git Pontoporeia 2026-05-07 12:27:33 +02:00
  • 3f87d71e38 Fix: CSV importer and imported data - pad rows, distinguish empty year, better error diagnostics - derive year from identifier when year column is empty - fix remaining 18 theses: Installation/Performance (slash→dash) orientation alias - csv importer: use column-name-based header detection instead of hardcoded positions Pontoporeia 2026-05-05 18:54:54 +02:00
  • b063312642 centralise repertoire filter column rendering - shared repFilterEntry() and config array - shared repFilterEntry() and $filterColumns config array - fix single-valued FK fading via full intersection Pontoporeia 2026-05-05 18:27:47 +02:00
  • bca707ee96 standardise buttons: .btn base class (border-radius 10px, padding var(--space-xs)) Pontoporeia 2026-05-05 11:34:13 +02:00
  • b58445f71c sticky save/cancel buttons at top-right of admin edit page Pontoporeia 2026-05-05 11:09:29 +02:00
  • 95066de7b4 standardise multi-author support across all forms Pontoporeia 2026-05-05 10:31:06 +02:00
  • 125c501f40 Fix 403 on HTMX fragment requests: AdminAuth Basic Auth sets session key Pontoporeia 2026-05-04 18:33:27 +02:00
  • 37111eaac4 fix: add missing remote DB migrations and deploy-migrate recipe Pontoporeia 2026-05-04 18:19:26 +02:00
  • ae6d9b86b3 Replace browser alert/confirm dialogs with <dialog> modals Pontoporeia 2026-05-04 17:52:30 +02:00
  • ca5983075d feat: admin audit logging across all admin actions Pontoporeia 2026-05-04 17:34:26 +02:00
  • 5f24dcae7e fix: duplicate warning not shown in admin, double-encoded in partage, no focus Pontoporeia 2026-05-04 17:04:09 +02:00
  • a2cba6d3c0 feat: prevent duplicate TFE submissions with logging and user feedback Pontoporeia 2026-05-04 16:29:31 +02:00
  • 0a05f3911c Replace Psalm with PHPStan + PHP‑CS‑Fixer + Biome, add linting configs & cleanup Pontoporeia 2026-05-04 16:06:44 +02:00
  • d6e30ec9cd Enhance serve recipe to automatically open the browser Pontoporeia 2026-05-04 14:46:05 +02:00
  • 8a38708fc8 Refactor justfile to reduce redundancy and merge similar recipes Pontoporeia 2026-05-01 22:41:14 +02:00
  • d09f1942f0 Fix Mistral provider: change api from openai-completions to mistral-conversations Pontoporeia 2026-05-01 22:39:11 +02:00
  • 34b2d073ee style(toast): reposition to bottom-center, solid bg, larger text, longer duration Pontoporeia 2026-04-30 16:00:19 +02:00
  • e8bf89d184 admin header: replace déconnexion text with SVG sign-out icon Pontoporeia 2026-04-30 14:16:23 +02:00
  • 0f849468f7 feat: inline email retry on 550 rejection in tfe access request form Pontoporeia 2026-04-30 13:52:09 +02:00
  • da53bf5d7a feat: email retry page on 550 rejection; confirmation_email optional in admin form Pontoporeia 2026-04-30 13:44:59 +02:00
  • 898a87789b fix(smtp-test): catch SmtpSendException to surface delivery errors as flash messages Pontoporeia 2026-04-30 13:37:42 +02:00
  • 19784090a3 fix: pass PHP upload limits via -d flags in justfile serve recipe Pontoporeia 2026-04-30 13:26:08 +02:00
  • 6a37d21f3f docs: add file-uploads.md — accepted types, limits, storage, ordering, security Pontoporeia 2026-04-30 13:22:37 +02:00
  • a83dc1c74e feat: multi-type file upload with sort order, labels, and expanded MIME support Pontoporeia 2026-04-30 13:07:09 +02:00
  • 2188ff5479 docs: add SMTP 550 postfix fix report for mail admin Pontoporeia 2026-04-30 12:56:00 +02:00
  • 89b7ab476e Handle SMTP 550 recipient-rejected errors with structured SmtpSendException Pontoporeia 2026-04-30 12:40:14 +02:00
  • 8d115dc965 smtp: enable TLS peer verification, fix envelope injection, fix dot-stuffing Pontoporeia 2026-04-30 12:36:15 +02:00
  • 33987c9b15 smtp: add notify_email field; fix admin notification sent to no-reply sender Pontoporeia 2026-04-30 12:19:33 +02:00
  • bdb68479d5 smtp: typed probe errors with per-field UI highlighting on save Pontoporeia 2026-04-30 12:16:52 +02:00
  • b750aca2f5 smtp: probe credentials on save (connect+auth+quit, no message sent) Pontoporeia 2026-04-30 12:10:41 +02:00
  • 56c8d54435 repertoire: align all column headings to shared baseline row Pontoporeia 2026-04-30 11:42:44 +02:00
  • a9e03c4b1c repertoire: fixed-header columns, remove main/index padding, minimal column padding Pontoporeia 2026-04-30 11:41:00 +02:00
  • 0960afb731 fix: add missing favicon tags to partage/recapitulatif.php Pontoporeia 2026-04-30 11:38:08 +02:00
  • 9ba60084bf fix: require SmtpRelay.php before StudentEmail.php in partage/index.php Pontoporeia 2026-04-30 11:34:52 +02:00
  • cb883ab33f fix: deploy-server.sh migrates posterg.db → xamxam.db and cleans legacy nginx configs Pontoporeia 2026-04-30 11:27:19 +02:00
  • ab51bf3a66 fix: deploy-server.sh cleans up legacy posterg configs and prunes old xamxam backups Pontoporeia 2026-04-30 11:11:54 +02:00
  • 68e30abb56 fix: remove Post-ERG branding → XAMXAM; drop legacy posterg nginx symlink in deploy script; rename posterg.db → xamxam.db Pontoporeia 2026-04-30 11:10:07 +02:00
  • c949cf9481 rename posterg → xamxam throughout: nginx conf, scripts, PHP source, docs Pontoporeia 2026-04-30 10:50:23 +02:00
  • 3e35bbc40f style: align mobile nav dropdown links left Pontoporeia 2026-04-30 00:03:26 +02:00
  • 471c892638 style: larger mobile nav dropdown links Pontoporeia 2026-04-30 00:03:10 +02:00
  • 42286b1b71 Header link modification Pontoporeia 2026-04-30 00:03:10 +02:00
  • 671cfb6d83 fix: hamburger dropdown not showing — reset display:none at mobile breakpoint Pontoporeia 2026-04-29 22:13:24 +02:00
  • 11f429eb72 feat: pure-CSS hamburger menu for public nav (≤640px) Pontoporeia 2026-04-29 22:12:19 +02:00
  • c27ffafa7e fix: add missing favicon tags to partage/index.php (error, password gate, form) Pontoporeia 2026-04-29 21:58:49 +02:00
  • 80b7fddea4 fix: partials must not unset caller-owned $formData Pontoporeia 2026-04-29 21:54:18 +02:00
  • 992f74b31c fix: prevent jury-fieldset partial from calling old() with wrong arity in partage context Pontoporeia 2026-04-29 21:47:48 +02:00
  • 43702542eb feat(admin): sortable form-help blocks with two-panel UI Pontoporeia 2026-04-29 21:44:32 +02:00
  • 5c39e856a3 fix: pass enabledAccessTypes from ThesisEditController to edit view Pontoporeia 2026-04-29 21:34:47 +02:00
  • 885150ea45 css: centralise semantic element baseline styles in common.css Pontoporeia 2026-04-29 21:33:55 +02:00
  • b5189c0d08 admin: merge acces-etudiante+file-access into acces.php, absorb system.php into parametres.php Pontoporeia 2026-04-29 21:18:25 +02:00
  • 670a38f30d add form help blocks: DB table, admin editor, live rendering in partage form Pontoporeia 2026-04-29 21:08:09 +02:00
  • 0437ec8d15 fix: escape apostrophe in FORM_HELP_LABELS string (Database.php:2005) Pontoporeia 2026-04-29 21:05:53 +02:00
  • d665cb502d centralise form fieldsets into shared partials; add TODO stubs in partage form Pontoporeia 2026-04-29 20:59:35 +02:00
  • 0628efbba3 Updated the README Pontoporeia 2026-04-29 20:47:11 +02:00
  • 89de6dd748 Removed the test csv Pontoporeia 2026-04-28 22:21:22 +02:00
  • 18a02a0018 deploy: rename deploy path from /var/www/posterg to /var/www/xamxam Pontoporeia 2026-04-28 22:21:09 +02:00
  • cd68e6e9d7 deploy: exclude posterg.db, theses/, covers/ from rsync to avoid overwriting remote data Pontoporeia 2026-04-28 22:12:50 +02:00
  • 59c4cf055f smtp-test: bypass DB, use POST fields directly for credentials Pontoporeia 2026-04-27 21:32:46 +02:00
  • 9ff8b1b464 fix: call RateLimit::checkKey() as instance method in request-access.php Pontoporeia 2026-04-27 21:16:26 +02:00
  • e09b056115 fix: iframe for PDF display, exclude cover files from public loop, no session on media requests Pontoporeia 2026-04-27 21:11:58 +02:00
  • 46a3c360ec fix: use local storage/ in dev, create upload dirs, gitignore uploads Pontoporeia 2026-04-27 21:06:10 +02:00
  • 48059c2317 fix: serve logs, formulaire.php error_log path, CSRF debug, undefined $redirect Pontoporeia 2026-04-27 21:03:45 +02:00
  • 32a7509598 feat: add file display to forms and recap pages Pontoporeia 2026-04-27 20:41:43 +02:00
  • aca7e7eef8 rename thanks.php to recapitulatif.php in admin and partage Pontoporeia 2026-04-27 20:40:34 +02:00
  • 4d88bd8cc5 edit.php: rework Fichiers fieldset layout Pontoporeia 2026-04-27 20:38:45 +02:00
  • 8e864fc624 admin edit.php: add cover image + thesis file management fields Pontoporeia 2026-04-27 20:33:21 +02:00
  • 27e1b6828d Implement TFE file access restriction feature (complete) Pontoporeia 2026-04-27 20:12:43 +02:00
  • 5c776dd39e Updated gitignore to keep cache folder but exclude rate_limit logs Théophile Gervreau-Mercier 2026-04-27 19:30:44 +02:00
  • d2d54b577a Added cache folder to gitignore Théophile Gervreau-Mercier 2026-04-27 19:30:44 +02:00
  • 88b9f341cd Replace Posterg branding with XAMXAM in all user-facing content Théophile Gervreau-Mercier 2026-04-27 18:31:39 +02:00
  • 7e26351f4b refactor: remove test.db, use only posterg.db for all environments Théophile Gervreau-Mercier 2026-04-27 18:07:03 +02:00
  • 780105eec0 Fix storage/cache ignore path and untrack cache files Théophile Gervreau-Mercier 2026-04-25 19:20:51 +02:00
  • 209dc86990 Added the cache folder wildcard Théophile Gervreau-Mercier 2026-04-25 19:20:51 +02:00
  • 54ef24d21f ignore *.db files, fix thesis identifier to use max seq instead of count, untrack .db files Pontoporeia 2026-04-24 22:48:01 +02:00
  • 4986fa74f4 add structured logging for admin/partage form submissions + migration system Pontoporeia 2026-04-24 16:55:11 +02:00
  • decb9e2907 fix: replace mb_strlen/mb_substr in student-preview.php (mbstring unavailable) Pontoporeia 2026-04-24 13:38:14 +02:00
  • 9b4cb52617 fix: replace mb_strtolower with strtolower in admin import (mbstring unavailable in php8.4-fpm) Pontoporeia 2026-04-24 13:32:38 +02:00
  • 769beae4ee fix: drop hx-trigger once — rely on browser cache for dedup Pontoporeia 2026-04-24 13:27:47 +02:00
  • 743268cf1b fix: drop hx-trigger once — rely on browser cache for dedup Pontoporeia 2026-04-24 13:27:28 +02:00