Files
radiacode/web/static/index.html
Jacquin Antoine c764a5c264 Dash web: crosshair, zoom/pan X, scale log/lin, continuum extraction, background resume
- Tooltip entier (intersect:false) + ligne verticale crosshair sur tous les graphes
- Zoom molette/pinch sur l'axe X, pan souris, limites clamped 30-3000 keV
- Toggle échelle log/linéaire onglet Background
- Extraction continuum détecteur (isotope peaks subtracted + Gaussian smoothing)
- Reprise snapshot précédent au démarrage capture_background.py
- Suppression refs "Théorique" et "Bruit capteur" de l'interface
- Plugin chartjs-plugin-zoom + hammerjs via CDN
- Fix Chart constructor spread operator

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 23:26:28 +02:00

93 lines
5.0 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Radiacode 103 — Dashboard</title>
<link rel="stylesheet" href="/static/css/style.css?v=2">
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-annotation@3.0.1/dist/chartjs-plugin-annotation.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/hammerjs@2.0.8/hammer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-zoom@2.0.1/dist/chartjs-plugin-zoom.min.js"></script>
</head>
<body>
<header>
<h1>Radiacode 103</h1>
<div id="status-bar">
<span id="status-connected" class="status-dot"></span>
<span id="status-cps">-- CPS</span>
<span id="status-live-time">-- h</span>
</div>
</header>
<nav>
<a href="#spectrum" class="tab active" data-tab="spectrum">Spectre</a>
<a href="#history" class="tab" data-tab="history">Historique</a>
<a href="#background" class="tab" data-tab="background">Background</a>
<a href="#cps" class="tab" data-tab="cps">CPS</a>
</nav>
<main>
<section id="tab-spectrum" class="tab-content active">
<div class="chart-container">
<button class="exit-fullscreen-btn" title="Sortir du plein écran">&#x2715;</button>
<canvas id="spectrum-chart"></canvas>
</div>
<div class="controls">
<label><input type="checkbox" id="show-difference"> Background soustrait</label>
<label><input type="checkbox" id="log-scale" checked> Echelle log</label>
<label><input type="checkbox" id="show-isotope-lines"> Raies isotopiques</label>
<label id="lines-detected-label" style="display:none"><input type="checkbox" id="lines-detected-only" checked> Détectés uniquement</label>
<label><input type="checkbox" id="show-bg-overlay"> Overlay background</label>
<button id="download-csv" class="btn-small">CSV</button>
<button id="reset-zoom-spectrum" class="btn-small" style="display:none" title="Réinitialiser le zoom"></button>
<button id="fullscreen-btn" class="btn-small" title="Plein écran">&#x26F6;</button>
</div>
<div id="isotopes-table"></div>
</section>
<section id="tab-history" class="tab-content">
<div id="history-list"></div>
</section>
<section id="tab-background" class="tab-content">
<div class="bg-stats" id="bg-stats"></div>
<div class="chart-header">
<label style="font-size:0.85em;color:#888;display:flex;align-items:center;gap:4px"><input type="checkbox" id="show-bg-smooth" checked> Lissé</label>
<label style="font-size:0.85em;color:#888;display:flex;align-items:center;gap:4px"><input type="checkbox" id="show-bg-continuum"> Continuum</label>
<label style="display:none;font-size:0.85em;color:#888"><input type="checkbox" id="show-bg-reference"> Ref 24h</label>
<label style="font-size:0.85em;color:#888;display:flex;align-items:center;gap:4px"><input type="checkbox" id="bg-scale-log" checked> Log</label>
<button id="reset-zoom-bg" class="btn-small" style="display:none" title="Réinitialiser le zoom"></button>
<button class="btn-small fullscreen-btn" title="Plein écran">&#x26F6;</button>
</div>
<div class="chart-container">
<button class="exit-fullscreen-btn" title="Sortir du plein écran">&#x2715;</button>
<canvas id="background-chart"></canvas>
</div>
<div id="peaks-table"></div>
</section>
<section id="tab-cps" class="tab-content">
<div class="controls">
<button onclick="loadCps(1)">1h</button>
<button onclick="loadCps(6)">6h</button>
<button onclick="loadCps(24)">24h</button>
<button onclick="loadCps(168)">7j</button>
<button id="reset-zoom-cps" class="btn-small" style="display:none" title="Réinitialiser le zoom"></button>
<button class="btn-small fullscreen-btn" title="Plein écran">&#x26F6;</button>
</div>
<div class="chart-container">
<button class="exit-fullscreen-btn" title="Sortir du plein écran">&#x2715;</button>
<canvas id="cps-chart"></canvas>
</div>
</section>
</main>
<script src="/static/js/isotope_lines.js?v=3"></script>
<script src="/static/js/spectrum.js?v=6"></script>
<script src="/static/js/history.js?v=2"></script>
<script src="/static/js/background.js?v=11"></script>
<script src="/static/js/cps.js?v=5"></script>
<script src="/static/js/app.js?v=3"></script>
</body>
</html>