Files
cosma-qc/app/templates/index.html

49 lines
1.4 KiB
HTML

<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>cosma-qc — dashboard</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<base href="/cosma-qc/">
<script src="static/htmx.min.js"></script>
<link rel="stylesheet" href="static/style.css">
</head>
<body>
<header>
<h1>cosma-qc</h1>
<span class="sub">post-acquisition QC · lingbot-map pipeline</span>
<a class="docs-link" href="/cosma-qc/docs/" target="_blank">📖 docs</a>
</header>
<section id="monitor" hx-get="partials/monitor" hx-trigger="load, every 5s" hx-swap="innerHTML">
<p class="muted">Chargement des workers…</p>
</section>
<section id="jobs">
<h2>Jobs</h2>
<div id="jobs-table" hx-get="partials/jobs" hx-trigger="load, every 3s" hx-swap="innerHTML">
<p class="muted">Chargement…</p>
</div>
</section>
<script>
document.addEventListener('click', async (e) => {
const btn = e.target.closest('.viewer-btn');
if (!btn) return;
e.preventDefault();
const url = btn.dataset.viewUrl;
btn.textContent = '…';
btn.disabled = true;
try {
const res = await fetch(url, { method: 'POST' });
const data = await res.json();
if (res.ok && data.url) window.open(data.url, '_blank');
else alert(data.detail || 'Erreur lancement viewer');
} catch (err) { alert('Erreur réseau: ' + err); }
btn.textContent = 'viser';
btn.disabled = false;
});
</script>
</body>
</html>