Commit Graph
8 Commits
Author SHA1 Message Date
KevinLecouandClaude Sonnet 5 e06f8afd3e Corrige le lien vers la galerie inatteignable derrière la modale + renomme "mur" en "fête"
La modale de bienvenue (position: fixed, inset: 0) recouvre tout
l'écran y compris l'en-tête où vivait le seul lien vers la galerie :
au premier chargement (cas le plus fréquent, un seul passage par
invité et par événement), le lien était visuellement présent mais
totalement inatteignable au clic. Ajout d'un lien dupliqué dans la
carte de la modale elle-même. Au passage, "mur" remplacé par "fête"
partout (jugé pas assez fun) pour rester cohérent avec le texte déjà
utilisé sur l'écran de succès.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:54:09 +02:00
KevinLecou c714316974 Ajoute un lien vers le mur depuis la page upload + corrige la mention RGPD
Lien "Voir le mur" dans l'en-tête (permanent) et sur l'écran de succès,
demandé par Kévin. href posé dès que le slug est connu, sans attendre la
réponse de get_public_event.

Corrige un oubli réel : la mention RGPD disait encore "mise à disposition
de l'organisateur" alors que la décision du 2026-09-18 (galerie invité
visible par tous) avait été consignée dans docs/decisions.md sans que le
texte affiché aux invités soit réellement mis à jour. Corrigé dans
docs/rgpd.md et dans la modale de bienvenue réelle.
2026-09-18 09:33:44 +02:00
KevinLecou 45e0bd7bcc Remplace le bloc RGPD permanent par une modale de bienvenue au 1er passage
Demande Kévin : mot de bienvenue personnalisé (nom de l'événement) +
mention légale RGPD, affiché une fois par événement (localStorage) au
lieu d'un bloc toujours visible dans le formulaire. Texte légal conservé
à l'identique (docs/rgpd.md), seule la présentation change. Reste
consultable à tout moment via un lien "Infos sur tes données" sous le
formulaire, qui rouvre la même modale.
2026-09-16 15:57:09 +02:00
KevinLecou 3afd475a55 Deuxième passe DA : direction "punchy, friendly, donne envie de fun"
Retour direct de Kévin après la 1ère passe (trop sage) : palette poussée
en saturation (corail vif en primaire, prune + doré en accents), formes
plus rondes (boutons pilule, rayons 20px), micro-animations avec du peps
(easing overshoot, coche qui se dessine + confettis CSS purs à l'envoi,
spinner animé). Police d'accent Fraunces ajoutée pour les titres (2
fichiers .woff2 auto-hébergés, ~44 Ko, SIL OFL, jamais de CDN).

Ton de voix retravaillé : micro-copies plus souriantes, nouvel état
"limite de photos atteinte" traité chaleureusement (pas comme une erreur).

Cohérence maintenue sur galerie admin, carton imprimable, et générateur
QR (sync légère, priorité basse). Testé en conditions réelles sur
photobooth.assistantaikev.eu.
2026-09-16 15:48:29 +02:00
KevinLecou 66435b0705 Ajoute une limite de photos par invité, réglable par événement
Nouvelle colonne max_photos_per_guest (NULL = illimité). Appliquée via un
guest_id anonyme persisté en localStorage — pas une identité vérifiée,
contournable en changeant d'appareil, mais fait respecter côté serveur
(source de vérité) et bloque l'UI proactivement côté client. Ancienne
signature de insert_public_photo (sans guest_id) supprimée pour empêcher
tout contournement.

Testé en conditions réelles sur kevin-lecou-hub (2 photos acceptées,
3e refusée avec max_photos_per_guest=2).
2026-09-16 15:27:05 +02:00
KevinLecou 73143f0ec2 Corrige un deuxième bug bloquant : chemins relatifs cassés sur /e/<slug> et /admin/<slug>
nginx réécrit /admin/<slug> et /e/<slug> vers le vrai index.html (try_files),
mais l'URL affichée au navigateur reste /admin/<slug> — les chemins relatifs
(style.css, config.js, gallery.js/upload.js) se résolvaient donc contre cette
URL "virtuelle" au lieu du vrai dossier, tombaient sur le fallback nginx et
recevaient du HTML au lieu du CSS/JS attendu. La galerie admin restait
bloquée sur "Chargement..." avec un style complètement cassé. Passage en
chemins absolus (/e/..., /admin/gallery/...) partout.

Signalé par Kévin après test réel sur /admin/demo-kevin.

Au passage : durcit la protection anti-double-soumission du formulaire
upload (garde-fou supplémentaire au niveau de l'event listener) et
remet à zéro photo/nom/message immédiatement après un envoi réussi.
2026-09-16 15:18:30 +02:00
KevinLecou 7afd3b6a18 Ajoute un accès direct à la galerie en plus de la caméra
Deux boutons séparés (deux inputs file) plutôt qu'un seul avec
capture=environment qui masquait l'option galerie — retour de Kévin
après test réel. État de sélection centralisé dans state.selectedFile.
2026-09-16 13:12:38 +02:00
KevinLecou 9b1461978b Ajoute la V1 fonctionnelle : upload invité, galerie admin, QR code, backend Supabase
Schéma dédié `photobooth` (jamais exposé via PostgREST, accès exclusivement
via fonctions SECURITY DEFINER dans public) avec RLS, policies Storage sur
bucket privé event-photos, Edge Functions admin-gallery et expire-events,
et job pg_cron d'expiration J+7. Le tout déployé et testé en conditions
réelles sur le projet Supabase kevin-lecou-hub avant relecture sécurité
(faille d'abus sur insert_public_photo corrigée en cours de route).

Côté front : page upload invité (compression + HEIC + RGPD), galerie admin
avec export ZIP, générateur de QR code autonome. Workflow n8n de purge
Storage J+7 fourni (à activer manuellement côté n8n).
2026-09-16 11:32:31 +02:00