Files
weval-consulting/ethica-hcp-manager.html

77 lines
5.2 KiB
HTML

<!DOCTYPE html>
<html lang="fr"><head><meta charset="UTF-8"><title>Ethica HCP Manager</title>
<style>body{background:#0a0e1a;color:#e2e8f0;font-family:system-ui;margin:0;padding:20px}
.header{background:linear-gradient(135deg,#059669,#10b981);padding:15px 25px;border-radius:12px;margin-bottom:20px}
h1{margin:0;font-size:1.4em}
.tabs{display:flex;gap:10px;margin-bottom:20px}
.tab{padding:8px 16px;background:#1e293b;border-radius:8px;cursor:pointer;border:1px solid #334155}
.tab.active{background:#059669;border-color:#059669}
.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:20px}
.stat{background:#1e293b;padding:15px;border-radius:10px;text-align:center}
.stat .n{font-size:1.5em;font-weight:bold}
table{width:100%;border-collapse:collapse;background:#1e293b;border-radius:10px;overflow:hidden}
th,td{padding:10px;text-align:left;border-bottom:1px solid #334155;font-size:13px}
th{background:#0f172a;font-weight:600}
.badge{padding:2px 8px;border-radius:4px;font-size:11px}
.loading{text-align:center;padding:40px;color:#94a3b8}
</style></head><body>
<div class="header"><h1>Ethica HCP — Validator &middot; Consent &middot; Scraping</h1>
<small id="subtitle">Chargement...</small></div>
<div class="tabs">
<div class="tab active" onclick="loadTab('validator')">Email Validator</div>
<div class="tab" onclick="loadTab('consent')">Consentement</div>
<div class="tab" onclick="loadTab('scraping')">Scraping Multi-Sources</div>
</div>
<div class="stats" id="stats"><div class="loading">Chargement des stats...</div></div>
<div id="content"><div class="loading">Chargement...</div></div>
<script>
async function loadStats() {
try {
const r = await fetch('/api/ethica-stats.php');
const d = await r.json();
document.getElementById('subtitle').textContent =
`contacts: ${d.total||0}${d.countries||3} pays`;
document.getElementById('stats').innerHTML =
['VALID','INVALID','RISKY','CATCH-ALL','UNKNOWN','CHECKED']
.map((s,i)=>`<div class="stat"><div class="n">${d.stats?.[s]||0}</div><div>${s}</div></div>`)
.join('');
} catch(e) {
document.getElementById('stats').innerHTML = '<div class="stat"><div class="n">—</div><div>API offline</div></div>';
}
}
function loadTab(t) {
document.querySelectorAll('.tab').forEach(e=>e.classList.remove('active'));
event.target.classList.add('active');
document.getElementById('content').innerHTML = '<div class="loading">Module '+t+'...</div>';
}
loadStats();
</script>
<!-- WhatsApp Business Integration -->
<div id="wa-panel" style="display:none;position:fixed;bottom:80px;right:20px;width:400px;background:#1a1a2e;border:1px solid #c96442;border-radius:12px;padding:20px;z-index:9999;color:white;font-family:Inter,sans-serif">
<h3 style="margin:0 0 10px;color:#c96442">📱 WhatsApp Ethica</h3>
<input id="wa-to" placeholder="+212..." style="width:100%;padding:8px;border-radius:6px;border:1px solid #333;background:#111;color:white;margin-bottom:8px">
<textarea id="wa-msg" rows="3" placeholder="Message HCP..." style="width:100%;padding:8px;border-radius:6px;border:1px solid #333;background:#111;color:white;margin-bottom:8px"></textarea>
<div style="display:flex;gap:8px">
<button onclick="sendWA()" style="flex:1;padding:8px;background:#25D366;color:white;border:none;border-radius:6px;cursor:pointer;font-weight:bold">Envoyer</button>
<button onclick="sendWATemplate()" style="flex:1;padding:8px;background:#c96442;color:white;border:none;border-radius:6px;cursor:pointer">Template</button>
<button onclick="document.getElementById('wa-panel').style.display='none'" style="padding:8px;background:#333;color:white;border:none;border-radius:6px;cursor:pointer"></button>
</div>
<div id="wa-result" style="margin-top:10px;font-size:12px"></div>
</div>
<button onclick="document.getElementById('wa-panel').style.display='block'" style="position:fixed;bottom:20px;right:20px;width:50px;height:50px;border-radius:50%;background:#25D366;color:white;border:none;font-size:24px;cursor:pointer;z-index:9998;box-shadow:0 2px 10px rgba(0,0,0,0.3)">📱</button>
<script>
async function sendWA(){
const to=document.getElementById('wa-to').value;
const msg=document.getElementById('wa-msg').value;
const r=await fetch('/api/whatsapp-api.php',{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'action=send&to='+encodeURIComponent(to)+'&message='+encodeURIComponent(msg)});
const d=await r.json();
document.getElementById('wa-result').innerHTML=d.ok?'<span style="color:#25D366">✅ Envoyé!</span>':'<span style="color:#ff4444">❌ '+JSON.stringify(d.response?.error?.message||d.error)+'</span>';
}
async function sendWATemplate(){
const to=document.getElementById('wa-to').value;
const r=await fetch('/api/whatsapp-api.php',{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'action=send&to='+encodeURIComponent(to)+'&template=hello_world&lang=en_US'});
const d=await r.json();
document.getElementById('wa-result').innerHTML=d.ok?'<span style="color:#25D366">✅ Template envoyé!</span>':'<span style="color:#ff4444">❌ '+JSON.stringify(d.response?.error?.message||d.error)+'</span>';
}
</script>
</body></html>