chore(post-cutover): fix 3 polish bugs (welcome-back email + mobile lang switcher + animate-on-scroll)

Three small post-cutover fixes reported during E2E retest 2026-05-07:

1. js/form-handler.js: disable EmailJS welcome-back call in
   showAlreadyRegistered. The EmailJS account is Melissa-only
   (no Serge access) and its template still has a '(c) 2025' footer
   inconsistent with the Resend emails sent by the new Worker.
   The user already sees their existing reference number in the
   showAlreadyRegistered modal (= cosmetic email, not critical).
   To re-implement properly: route through Worker + Resend in a
   future PR.

2. 10 HTML pages: remove duplicate .lang-switcher block from
   .mobile-nav. The header already has a lang-switcher visible on
   mobile, the second one inside the slide-in mobile menu was redundant.

3. js/main.js: fix IntersectionObserver threshold for animate-on-scroll.
   Was threshold: 0.1 — never fires on mobile portrait for cgv.html
   and politique-confidentialite.html because those pages have
   data-lang-block elements 2000-3000px tall (verbose FR/EN/MG
   trilingual content) and viewport (~600px) never reaches 10%
   intersection ratio. Now threshold: 0 — fires as soon as any
   pixel enters viewport. mentions-legales.html unaffected because
   its blocks were short enough to satisfy the previous 10%.

Refs: WordPress \xe2\x86\x92 static migration, post-cutover polish.
This commit is contained in:
Serge RAKOTO HARRY-NAIVO 2026-05-07 15:36:21 +02:00
parent 5f88891a83
commit 239e2e503d
11 changed files with 5 additions and 52 deletions

View File

@ -50,11 +50,6 @@
<a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a> <a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a>
<a href="contact.html" data-i18n="nav.contact">Contact</a> <a href="contact.html" data-i18n="nav.contact">Contact</a>
<a href="application.html" data-i18n="nav.app">Prochainement</a> <a href="application.html" data-i18n="nav.app">Prochainement</a>
<div class="lang-switcher" style="margin-top:16px">
<button data-lang="fr" class="active">FR</button>
<button data-lang="en">EN</button>
<button data-lang="mg">MG</button>
</div>
</nav> </nav>
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>

View File

@ -56,11 +56,6 @@
<a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a> <a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a>
<a href="contact.html" data-i18n="nav.contact">Contact</a> <a href="contact.html" data-i18n="nav.contact">Contact</a>
<a href="application.html" data-i18n="nav.app">Prochainement</a> <a href="application.html" data-i18n="nav.app">Prochainement</a>
<div class="lang-switcher" style="margin-top:16px">
<button data-lang="fr" class="active">FR</button>
<button data-lang="en">EN</button>
<button data-lang="mg">MG</button>
</div>
</nav> </nav>
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>

View File

@ -46,11 +46,6 @@
<a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a> <a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a>
<a href="contact.html" data-i18n="nav.contact">Contact</a> <a href="contact.html" data-i18n="nav.contact">Contact</a>
<a href="application.html" data-i18n="nav.app">Application</a> <a href="application.html" data-i18n="nav.app">Application</a>
<div class="lang-switcher" style="margin-top:16px">
<button data-lang="fr" class="active">FR</button>
<button data-lang="en">EN</button>
<button data-lang="mg">MG</button>
</div>
</nav> </nav>
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>

View File

@ -86,11 +86,6 @@
<a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a> <a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a>
<a href="contact.html" data-i18n="nav.contact">Contact</a> <a href="contact.html" data-i18n="nav.contact">Contact</a>
<a href="application.html" data-i18n="nav.app">Prochainement</a> <a href="application.html" data-i18n="nav.app">Prochainement</a>
<div class="lang-switcher" style="margin-top:16px">
<button data-lang="fr" class="active">FR</button>
<button data-lang="en">EN</button>
<button data-lang="mg">MG</button>
</div>
</nav> </nav>
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>

View File

@ -46,11 +46,6 @@
<a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a> <a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a>
<a href="contact.html" data-i18n="nav.contact">Contact</a> <a href="contact.html" data-i18n="nav.contact">Contact</a>
<a href="application.html" data-i18n="nav.app">Prochainement</a> <a href="application.html" data-i18n="nav.app">Prochainement</a>
<div class="lang-switcher" style="margin-top:16px">
<button data-lang="fr" class="active">FR</button>
<button data-lang="en">EN</button>
<button data-lang="mg">MG</button>
</div>
</nav> </nav>
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>

View File

@ -46,11 +46,6 @@
<a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a> <a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a>
<a href="contact.html" data-i18n="nav.contact">Contact</a> <a href="contact.html" data-i18n="nav.contact">Contact</a>
<a href="application.html" data-i18n="nav.app">Prochainement</a> <a href="application.html" data-i18n="nav.app">Prochainement</a>
<div class="lang-switcher" style="margin-top:16px">
<button data-lang="fr" class="active">FR</button>
<button data-lang="en">EN</button>
<button data-lang="mg">MG</button>
</div>
</nav> </nav>
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>

View File

@ -351,8 +351,11 @@ function showAlreadyRegistered(contact) {
// Envoi d'une notification interne à MVA (sans modifier les données du client) // Envoi d'une notification interne à MVA (sans modifier les données du client)
notifyDuplicateViaFormspree(contact); notifyDuplicateViaFormspree(contact);
// Envoi d'un email "Ravis de te revoir" au client avec son n° de référence // Email "Ravis de te revoir" via EmailJS désactivé (= post-migration 2026-05-07).
sendWelcomeBackEmail(contact); // Le compte EmailJS n'est plus accessible (Melissa-only) et son template a un
// footer "(c) 2025" obsolète. Le client a déjà sa référence affichée via
// `showAlreadyRegistered` ci-dessus — l'email est cosmétique. À ré-implémenter
// via Worker + Resend en follow-up si jugé utile.
} }
function showError() { function showError() {

View File

@ -69,11 +69,6 @@
<a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a> <a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a>
<a href="contact.html" data-i18n="nav.contact">Contact</a> <a href="contact.html" data-i18n="nav.contact">Contact</a>
<a href="application.html" data-i18n="nav.app">Prochainement</a> <a href="application.html" data-i18n="nav.app">Prochainement</a>
<div class="lang-switcher" style="margin-top:16px">
<button data-lang="fr" class="active">FR</button>
<button data-lang="en">EN</button>
<button data-lang="mg">MG</button>
</div>
</nav> </nav>
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>

View File

@ -78,11 +78,6 @@
<a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a> <a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a>
<a href="contact.html" data-i18n="nav.contact">Contact</a> <a href="contact.html" data-i18n="nav.contact">Contact</a>
<a href="application.html" data-i18n="nav.app">Prochainement</a> <a href="application.html" data-i18n="nav.app">Prochainement</a>
<div class="lang-switcher" style="margin-top:16px">
<button data-lang="fr" class="active">FR</button>
<button data-lang="en">EN</button>
<button data-lang="mg">MG</button>
</div>
</nav> </nav>
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>

View File

@ -47,11 +47,6 @@
<a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a> <a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a>
<a href="contact.html" data-i18n="nav.contact">Contact</a> <a href="contact.html" data-i18n="nav.contact">Contact</a>
<a href="application.html" data-i18n="nav.app">Prochainement</a> <a href="application.html" data-i18n="nav.app">Prochainement</a>
<div class="lang-switcher" style="margin-top:16px">
<button data-lang="fr" class="active">FR</button>
<button data-lang="en">EN</button>
<button data-lang="mg">MG</button>
</div>
</nav> </nav>
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>

View File

@ -46,11 +46,6 @@
<a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a> <a href="guide-envoi.html" data-i18n="nav.guide">Guide d'envoi</a>
<a href="contact.html" data-i18n="nav.contact">Contact</a> <a href="contact.html" data-i18n="nav.contact">Contact</a>
<a href="application.html" data-i18n="nav.app">Prochainement</a> <a href="application.html" data-i18n="nav.app">Prochainement</a>
<div class="lang-switcher" style="margin-top:16px">
<button data-lang="fr" class="active">FR</button>
<button data-lang="en">EN</button>
<button data-lang="mg">MG</button>
</div>
</nav> </nav>
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>