mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 19:19:19 +02:00
5.0 KiB
5.0 KiB
TODO
TFE Public Page — File Display
- Replace
<embed>with<iframe>for PDF display (better cross-browser support) - Exclude
coverfile_type from public files loop (covers are banners, not content) - Move
App::boot()in Dispatcher to after direct-response matching (no session on media requests)
SMTP Relay — bad greeting fix
- Fix
$read()loop: use!== falseso empty lines don't terminate early; checktimed_outmeta - Add SSL stream context (
verify_peer=false) tostream_socket_clientto avoid CA bundle failures - Improve "bad greeting" error: distinguish timeout vs garbage response in log message
Bug Fixes
- Fix
RateLimit::check()called statically inrequest-access.php— replaced with(new RateLimit(3, 600))->checkKey($rateLimitKey)
Dev / Debug Fixes
- Fix
serverecipe: show all PHP output (errors, logs) except static assets/connection noise - Fix
STORAGE_ROOT— use localapp/storage/in dev (cli-server),/var/www/posterg/storagein prod - Create
app/storage/covers/andapp/storage/theses/with.gitkeep - Add gitignore rules for uploaded files in dev storage dirs
- Fix
error_logpath informulaire.php(was relative, now absolute) - Fix CSRF debug: log both tokens on mismatch
- Fix undefined
$redirecton success path informulaire.php
Deploy — Preserve Remote Data
- Exclude
storage/posterg.dbfrom rsync (not sent locally, not deleted remotely) - Exclude
storage/theses/from rsync (not sent locally, not deleted remotely) - Exclude
storage/covers/from rsync (not sent locally, not deleted remotely)
Deploy — Rename deploy path to /var/www/xamxam
- Update rsync destination in
justfile(deploy,deploy-dbrecipes) - Update all
/var/www/postergpaths inscripts/deploy-server.sh - Update
rootdirective innginx/posterg.conf - Update
STORAGE_ROOTproduction path inapp/bootstrap.php
Form Help Blocks (student-facing explanatory text)
- Migration
004_add_form_help_blocks.sql—form_help_blockstable with 8 seeded keys Databasemethods:getFormHelpBlock,setFormHelpBlock,getAllFormHelpBlocks,FORM_HELP_KEYS,FORM_HELP_LABELSactions/form-help.php— CSRF-validated save handleractions/page.php— CSRF-validated save handler for static pages (was missing)contenus.phpcontroller — load$formHelpBlocks, add CSRF tokencontenus-edit.phpcontroller — handle?form_block=<key>routetemplates/admin/contenus.php— flash messages + form help blocks table with edit linkstemplates/admin/contenus-edit.php—form_helpedit branch with OverType Markdown editortemplates/partials/form/form-help-block.php— renders Markdown block via Parsedown (safe mode), silent on emptypartage/index.php— load all blocks once, inject at all 8 positions (replaced TODO comments)form.css—.form-help-blockstyled with accent left-borderadmin.css—.mutedutility class
Centralise Form Templates
- Extract shared fieldset partials:
fieldset-tfe-info.php,fieldset-academic.php,fieldset-files.php,fieldset-metadata.php,fieldset-licence-explanation.php - Refactor
templates/admin/add.phpto use shared partials - Refactor
templates/admin/edit.phpto use shared partials (with edit-mode callable adapters) - Refactor
partage/index.phprenderShareLinkForm()to use shared partials - Add TODO comments in
partage/index.phpfor student-facing explanations (intro block, per-fieldset notes, email note)
File Display in Forms & Recaps
- Add live file preview to
file-field.phppartial (data-previewattribute +.file-preview-listcontainer) - Write
file-preview.js— renders thumbnails for images, emoji icons for PDFs/videos/zips, filename + size - Load
file-preview.jsinadmin/add.phpvia$extraJs - Load
file-preview.jsinadmin/edit.phpvia$extraJs - Load
file-preview.jsinpartage/index.php(self-contained HTML, direct<script>tag) - Support
$extraJsinhead.php - Add
data-preview+ preview container to edit template's cover/banner/files inputs (not using partial) - Enhance
admin/recapitulatif.phptemplate — image thumbnails, clickable filenames, type badges, file size, date - Rewrite
partage/recapitulatif.php— full recap with thesis metadata + uploaded files list (thumbnails for images, icons for others) - Add CSS:
.file-preview-list,.fp-item,.fp-thumb,.fp-icon,.fp-meta,.fp-name,.fp-size - Add CSS:
.recap-file-list,.recap-file-item,.recap-file-thumb,.recap-file-icon,.recap-file-meta,.recap-file-type-badge,.recap-file-date - Add CSS:
.partage-recap,.recap-section,.recap-dlfor partage recap layout
Bug Fixes (2026-04-29)
- Fix parse error in
Database.phpline 2005 — escaped apostrophe ind'introduction