Init Git Prod Mars 2026

This commit is contained in:
Oleg Barykin committed 2026-03-05 10:25:39 +01:00
commit d81efe93b1
362 files changed
+86627

No files matched your search

+61
View File
@@ -0,0 +1,61 @@
(function(){
const ENDPOINT = '/public/contact_admin.php';
function openContactModal(lang){
const url = ENDPOINT + '?modal=1' + (lang ? '&lang='+encodeURIComponent(lang) : '');
fetch(url, { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
.then(r => r.text())
.then(html => {
// On insère TOUT le HTML renvoyé (overlay + <style>)
const wrap = document.createElement('div');
wrap.innerHTML = html;
while (wrap.firstChild) document.body.appendChild(wrap.firstChild);
})
.catch(() => alert('Erreur de chargement du formulaire'));
}
// Intercepte les clics sur le lien (classe ou data-attr)
document.addEventListener('click', function(e){
const a = e.target.closest('a.contact-admin-link, [data-contact-admin]');
if (!a) return;
// si l'utilisateur ouvre au clavier/milieu => laisse le comportement natif
if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || a.target === '_blank') return;
e.preventDefault();
openContactModal(a.getAttribute('data-lang') || '');
});
// Intercepte l’envoi du formulaire dans la popup
document.addEventListener('submit', function(e){
const form = e.target.closest('#contact-admin-form');
if (!form) return;
e.preventDefault();
const btn = form.querySelector('.caf-btn');
const fb = form.querySelector('.caf-feedback');
const lblSend = btn?.getAttribute('data-label-send') || 'Envoyer';
const lblSending = btn?.getAttribute('data-label-sending') || 'Envoi...';
if (btn) { btn.disabled = true; btn.textContent = lblSending; }
const fd = new FormData(form);
fetch(ENDPOINT, { method:'POST', headers:{'X-Requested-With':'XMLHttpRequest'}, body: fd })
.then(r => r.json())
.then(j => {
fb.textContent = j.msg || '';
fb.style.color = j.ok ? 'green' : 'crimson';
if (j.ok) {
form.reset();
setTimeout(() => document.querySelector('.caf-overlay')?.remove(), 1200);
}
})
.catch(() => { fb.textContent = 'Network error'; fb.style.color = 'crimson'; })
.finally(() => { if (btn) { btn.disabled = false; btn.textContent = lblSend; } });
});
// Fermer la popup (clic sur fond ou bouton ×)
document.addEventListener('click', function(e){
if (e.target.classList?.contains('caf-overlay') || e.target.classList?.contains('caf-close')) {
document.querySelector('.caf-overlay')?.remove();
}
});
})();