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.
This commit is contained in:
+13
-6
@@ -11,12 +11,13 @@ Texte à afficher, de façon visible, sur la page d'upload avant que l'invité
|
|||||||
ne dépose une photo :
|
ne dépose une photo :
|
||||||
|
|
||||||
> En déposant une photo, vous acceptez qu'elle soit stockée temporairement
|
> En déposant une photo, vous acceptez qu'elle soit stockée temporairement
|
||||||
> dans le cadre de cet événement et mise à disposition de l'organisateur.
|
> dans le cadre de cet événement et **visible par les autres invités de
|
||||||
> Vos photos sont automatiquement supprimées **7 jours après la date de
|
> l'événement ainsi que par l'organisateur** (galerie commune accessible via
|
||||||
> l'événement**, sans action de votre part. Aucune photo n'est utilisée à
|
> le même lien/QR code). Vos photos sont automatiquement supprimées
|
||||||
> d'autres fins, ni transmise à des tiers. Vous pouvez demander la
|
> **7 jours après la date de l'événement**, sans action de votre part.
|
||||||
> suppression anticipée d'une photo en contactant l'organisateur de
|
> Aucune photo n'est utilisée à d'autres fins, ni transmise à des tiers en
|
||||||
> l'événement.
|
> dehors des invités de l'événement. Vous pouvez demander la suppression
|
||||||
|
> anticipée d'une photo en contactant l'organisateur de l'événement.
|
||||||
|
|
||||||
## Politique de conservation
|
## Politique de conservation
|
||||||
|
|
||||||
@@ -38,6 +39,12 @@ ne dépose une photo :
|
|||||||
|
|
||||||
## Points à valider avec Kévin (et si besoin un juriste) avant V2/V3
|
## Points à valider avec Kévin (et si besoin un juriste) avant V2/V3
|
||||||
|
|
||||||
|
- **Galerie invité (2026-09-18)** : les photos/prénoms/messages sont
|
||||||
|
désormais visibles par tous les invités d'un même événement (pas
|
||||||
|
seulement par l'organisateur), cf. `docs/decisions.md`. Mention légale
|
||||||
|
mise à jour en conséquence — à faire valider par un juriste avant V2/V3
|
||||||
|
comme le reste de cette page, ce changement rend le sujet plus sensible
|
||||||
|
(données visibles par un groupe plus large que prévu initialement).
|
||||||
- Rédaction définitive des CGU/mentions légales pour un usage commercial
|
- Rédaction définitive des CGU/mentions légales pour un usage commercial
|
||||||
auprès de clients externes (mariages, événementiel pro).
|
auprès de clients externes (mariages, événementiel pro).
|
||||||
- Statut du client (organisateur) comme responsable de traitement, et de
|
- Statut du client (organisateur) comme responsable de traitement, et de
|
||||||
|
|||||||
+21
-10
@@ -31,6 +31,11 @@
|
|||||||
</p>
|
</p>
|
||||||
<h1 id="event-name">Ajouter une photo</h1>
|
<h1 id="event-name">Ajouter une photo</h1>
|
||||||
<p class="page__kicker">Une photo, un petit mot, et hop dans l'album !</p>
|
<p class="page__kicker">Une photo, un petit mot, et hop dans l'album !</p>
|
||||||
|
<!-- href posé par upload.js une fois le slug connu (getSlugFromPath) ;
|
||||||
|
"#" par défaut pour ne jamais pointer nulle part avant ça. Lien
|
||||||
|
permanent vers le mur, accessible même sans avoir uploadé — ajouté
|
||||||
|
suite à la demande de Kévin le 2026-09-18. -->
|
||||||
|
<a href="#" id="wall-link" class="wall-link">Voir le mur →</a>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<!-- Mot de bienvenue + mention légale RGPD condensée, affiché une seule
|
<!-- Mot de bienvenue + mention légale RGPD condensée, affiché une seule
|
||||||
@@ -50,8 +55,8 @@
|
|||||||
</p>
|
</p>
|
||||||
<p class="welcome-modal__title" id="welcome-modal-title">Bienvenue !</p>
|
<p class="welcome-modal__title" id="welcome-modal-title">Bienvenue !</p>
|
||||||
<p class="welcome-modal__text">
|
<p class="welcome-modal__text">
|
||||||
Scanne, souris, dépose ta photo — elle rejoint l'album de l'événement
|
Scanne, souris, dépose ta photo — elle rejoint le mur de l'événement
|
||||||
en quelques secondes.
|
en quelques secondes, visible par tous les invités.
|
||||||
</p>
|
</p>
|
||||||
<p class="legal-notice welcome-modal__legal">
|
<p class="legal-notice welcome-modal__legal">
|
||||||
<svg class="legal-notice__icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
<svg class="legal-notice__icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
||||||
@@ -60,15 +65,18 @@
|
|||||||
</svg>
|
</svg>
|
||||||
<!-- Texte légal complet, identique à docs/rgpd.md (mention
|
<!-- Texte légal complet, identique à docs/rgpd.md (mention
|
||||||
obligatoire) — seule la présentation change (modale au premier
|
obligatoire) — seule la présentation change (modale au premier
|
||||||
passage + lien de rappel), pas le contenu. -->
|
passage + lien de rappel), pas le contenu. Mis à jour le
|
||||||
|
2026-09-18 : mentionne explicitement la visibilité par les
|
||||||
|
autres invités (galerie commune), cf. docs/decisions.md. -->
|
||||||
<span>
|
<span>
|
||||||
En déposant une photo, tu acceptes qu'elle soit stockée temporairement
|
En déposant une photo, tu acceptes qu'elle soit stockée temporairement
|
||||||
dans le cadre de cet événement et mise à disposition de l'organisateur.
|
dans le cadre de cet événement et visible par les autres invités de
|
||||||
Tes photos sont automatiquement supprimées 7 jours après la date de
|
l'événement ainsi que par l'organisateur. Tes photos sont
|
||||||
l'événement, sans action de ta part. Aucune photo n'est utilisée à
|
automatiquement supprimées 7 jours après la date de l'événement,
|
||||||
d'autres fins, ni transmise à des tiers. Tu peux demander la
|
sans action de ta part. Aucune photo n'est utilisée à d'autres
|
||||||
suppression anticipée d'une photo en contactant l'organisateur de
|
fins, ni transmise à des tiers en dehors des invités de
|
||||||
l'événement.
|
l'événement. Tu peux demander la suppression anticipée d'une
|
||||||
|
photo en contactant l'organisateur de l'événement.
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<button type="button" id="welcome-modal-dismiss">C'est parti !</button>
|
<button type="button" id="welcome-modal-dismiss">C'est parti !</button>
|
||||||
@@ -109,7 +117,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<p class="success-title">C'est envoyé !</p>
|
<p class="success-title">C'est envoyé !</p>
|
||||||
<p class="success-text">Ta photo vient de rejoindre la fête. Merci d'avoir été là !</p>
|
<p class="success-text">Ta photo vient de rejoindre la fête. Merci d'avoir été là !</p>
|
||||||
<button type="button" id="add-another-btn">Ajouter une autre photo</button>
|
<div class="success-actions">
|
||||||
|
<button type="button" id="add-another-btn">Ajouter une autre photo</button>
|
||||||
|
<a href="#" id="wall-link-success" class="btn-secondary-link">Voir le mur →</a>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<form id="upload-form" class="upload-form" hidden novalidate>
|
<form id="upload-form" class="upload-form" hidden novalidate>
|
||||||
|
|||||||
@@ -171,6 +171,20 @@ body {
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.wall-link {
|
||||||
|
display: inline-flex;
|
||||||
|
margin-top: 0.7rem;
|
||||||
|
font-family: var(--font-ui);
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--color-coral);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wall-link:active {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
.page__kicker {
|
.page__kicker {
|
||||||
color: var(--color-muted);
|
color: var(--color-muted);
|
||||||
font-size: 0.95rem;
|
font-size: 0.95rem;
|
||||||
@@ -644,6 +658,25 @@ button {
|
|||||||
background: #ff7673;
|
background: #ff7673;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.success-actions {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.7rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-secondary-link {
|
||||||
|
font-family: var(--font-ui);
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
color: var(--color-muted);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-secondary-link:active {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
#submit-btn:disabled {
|
#submit-btn:disabled {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ const submitBtnLabel = document.getElementById("submit-btn-label");
|
|||||||
const welcomeModal = document.getElementById("welcome-modal");
|
const welcomeModal = document.getElementById("welcome-modal");
|
||||||
const welcomeModalTitle = document.getElementById("welcome-modal-title");
|
const welcomeModalTitle = document.getElementById("welcome-modal-title");
|
||||||
const welcomeModalDismiss = document.getElementById("welcome-modal-dismiss");
|
const welcomeModalDismiss = document.getElementById("welcome-modal-dismiss");
|
||||||
|
const wallLink = document.getElementById("wall-link");
|
||||||
|
const wallLinkSuccess = document.getElementById("wall-link-success");
|
||||||
const legalLink = document.getElementById("legal-link");
|
const legalLink = document.getElementById("legal-link");
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
@@ -410,6 +412,12 @@ async function initEventCheck() {
|
|||||||
showError(appError("event-not-found"));
|
showError(appError("event-not-found"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Lien vers le mur posé dès que le slug est connu, sans attendre la
|
||||||
|
// réponse de get_public_event : /galerie/<slug> fait sa propre
|
||||||
|
// vérification (event inconnu/clos), pas besoin de la dupliquer ici.
|
||||||
|
const wallHref = `/galerie/${encodeURIComponent(slug)}`;
|
||||||
|
wallLink.href = wallHref;
|
||||||
|
wallLinkSuccess.href = wallHref;
|
||||||
try {
|
try {
|
||||||
const event = await fetchEventPublicInfo(slug);
|
const event = await fetchEventPublicInfo(slug);
|
||||||
if (!isEventActive(event)) throw appError("event-closed");
|
if (!isEventActive(event)) throw appError("event-closed");
|
||||||
|
|||||||
Reference in New Issue
Block a user