mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 11:09:18 +02:00
3.7 KiB
3.7 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
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