diff --git a/src/admin/gallery/index.html b/src/admin/gallery/index.html index 468e7d6..89f82aa 100644 --- a/src/admin/gallery/index.html +++ b/src/admin/gallery/index.html @@ -13,7 +13,7 @@ fichier front, à mettre en place lors du déploiement. --> - +
@@ -59,7 +59,7 @@ script classique (donc synchrone, avant le module) pour garantir que window.__PHOTOBOOTH_CONFIG__ existe avant l'exécution de gallery.js. --> - - + + diff --git a/src/e/index.html b/src/e/index.html index d5d7529..2f06fb1 100644 --- a/src/e/index.html +++ b/src/e/index.html @@ -12,7 +12,7 @@ lors du déploiement, hors scope de ce fichier front. --> - +
@@ -132,7 +132,7 @@ Chargé en script classique (donc synchrone, avant le module) pour garantir que window.__PHOTOBOOTH_CONFIG__ existe avant l'exécution de upload.js. --> - - + + diff --git a/src/e/upload.js b/src/e/upload.js index c61e7cf..19f7479 100644 --- a/src/e/upload.js +++ b/src/e/upload.js @@ -206,11 +206,30 @@ function showError(rawErr, retryAction) { } } +function resetPhotoFields() { + state.selectedFile = null; + state.compressedBlob = null; + fileChosenLabel.textContent = "Aucun fichier choisi"; + previewImg.hidden = true; + if (previewObjectUrl) { + URL.revokeObjectURL(previewObjectUrl); + previewObjectUrl = null; + } + photoInput.value = ""; + photoInputGallery.value = ""; + nomInput.value = ""; + messageInput.value = ""; +} + function showSuccess() { loadingBlock.hidden = true; errorBlock.hidden = true; form.hidden = true; successBlock.hidden = false; + // Remise à zéro immédiate (pas seulement au clic sur "Ajouter une autre + // photo") : si l'invité revient sur le formulaire par un autre biais, il + // ne doit jamais retrouver la photo/le message déjà envoyés pré-remplis. + resetPhotoFields(); } function setProgress(text) { @@ -495,6 +514,12 @@ async function submitPhoto() { form.addEventListener("submit", (evt) => { evt.preventDefault(); + // Garde-fou en plus de state.isSubmitting (qui protège déjà submitPhoto + // elle-même) : si jamais l'événement "submit" se déclenche plusieurs fois + // très rapidement (double tap mobile), on ignore tout appel supplémentaire + // tant qu'un envoi est en cours, sans dépendre uniquement de l'état du + // bouton désactivé. + if (state.isSubmitting) return; submitPhoto(); });