Pontoporeia 7013f79fc0 fix: merge corbeille lists + bulk restore button in cleanup
- Single unified 'Corbeille' table replaces the two separate lists
  (stale/orphelin + restorable). Each row has a Statut column showing
  '↺ Restaurable' or 'Orphelin', plus a checkbox for bulk ops.

- Checkboxes on restorable rows carry data-restorable='1' attribute
  so the bulk JS can distinguish them.

- Bulk actions bar now has both 'Supprimer la sélection' and
  '↺ Restaurer la sélection' buttons. The restore button only appears
  when at least one restorable item is checked.

- New cleanupBulkRestore() JS function populates a dedicated hidden
  form and confirms before submitting. Only restorable items are sent.

- restore-trash.php refactored to handle both single (trash_file) and
  bulk (trash_files[]) inputs via a loop, accumulating restored/skipped
  counts and re-rendering the fragment on HTMX requests.
2026-07-10 16:33:06 +02:00

XAMXAM

(Anciennement Posterg)

Répertoire des travaux de fin d'études de l'ERG (École de Recherche Graphique).

Requirements

  • PHP 8.4
  • SQLite3 (php8.4-sqlite3)
  • nginx (production)

Development

MacOS

Logiciels:

  • un IDE pour éditer → VSCode
  • git (ou une interface graphique) pour partager les modifications → git-gui (officiel) ou Github Desktop
  • un server web avec PHP pour visualiser le project dans le navigateur → MAMP

Workflow

  1. Faire un changement dans ton IDE
  2. Démarrer le site via MAMP, en sélectionnant le dossier public
  3. Vérifier que ça marche sur le site en local, depuis ton navigateur
  4. Une fois qu'un changement spécifique est fait, commit les changements sur les fichiers qui sont relatif à ce changement
  5. Vérifier que vous avez syncroniser avec le remotepull + rebase ! pas merge
  6. push les changements vers le remote
just serve   # http://localhost:8000  (public) and /admin/

Deployment

Files are pushed to the server with rsync — there is no repo on the remote.

just deploy     # rsync app files → xamxam:/var/www/xamxam/
just deploy-db  # push local xamxam.db → remote (only if remote DB is absent)

deploy-db refuses to run if a database already exists on the server, to avoid accidental overwrites of production data.

First-time server setup

ssh xamxam
sudo mkdir -p /var/www/xamxam
sudo chown www-data:xamxam /var/www/xamxam
sudo chmod 775 /var/www/xamxam
exit

Then deploy once and apply nginx config:

just deploy
just deploy-nginx

Security notes

  • Admin panel protected by PHP session (AdminAuth) — password-only, no username
  • Uploads stored outside webroot, served via controlled media.php
  • Rate limiting on public search (src/RateLimit.php)
  • See nginx/docs/SECURITY_HEADERS.md for security headers reference
S
Description
Site permettant de consulter la collection de TFE de l'erg
Readme
167 MiB
Languages
PHP 77.9%
CSS 11.3%
JavaScript 7.4%
Shell 1.4%
Just 1.3%
Other 0.7%