105 lines
3.3 KiB
HTML
105 lines
3.3 KiB
HTML
<!doctype html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Détail tenant — simple-cost-dashboard</title>
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js"></script>
|
|
</head>
|
|
<body>
|
|
|
|
<header class="topbar">
|
|
<div class="topbar-title">
|
|
<h1 id="tenant-title">Chargement…</h1>
|
|
<span class="breadcrumb"><a href="/">← Vue globale</a></span>
|
|
</div>
|
|
</header>
|
|
|
|
<main class="container">
|
|
|
|
<div id="status-banner"></div>
|
|
|
|
<div class="kpi-row" id="kpi-row">
|
|
<div class="card kpi-card">
|
|
<p class="kpi-label" id="kpi-current-label">Total — période</p>
|
|
<p class="kpi-value" id="kpi-current">—</p>
|
|
</div>
|
|
<div class="card kpi-card kpi-card-comparison">
|
|
<p class="kpi-label" id="kpi-previous-label">Total — période précédente</p>
|
|
<p class="kpi-value" id="kpi-previous">—</p>
|
|
</div>
|
|
<div class="card kpi-card kpi-card-comparison">
|
|
<p class="kpi-label">Évolution</p>
|
|
<p class="kpi-value" id="kpi-delta">—</p>
|
|
</div>
|
|
<div class="card kpi-card">
|
|
<p class="kpi-label" id="kpi-ytd-label">Total depuis le 1er janvier</p>
|
|
<p class="kpi-value" id="kpi-ytd">—</p>
|
|
</div>
|
|
</div>
|
|
|
|
<p class="section-title">Coûts</p>
|
|
<div class="card chart-card">
|
|
<div class="chart-card-header">
|
|
<div>
|
|
<h2 id="daily-chart-title">Coûts journaliers</h2>
|
|
<p class="chart-card-sub">EUR, converti au taux du jour de collecte</p>
|
|
</div>
|
|
<div class="range-toggle" id="range-toggle">
|
|
<button data-range="7">7 jours</button>
|
|
<button data-range="30">30 jours</button>
|
|
<button data-range="365">1 an</button>
|
|
</div>
|
|
</div>
|
|
<div class="chart-canvas-wrap">
|
|
<canvas id="daily-chart"></canvas>
|
|
</div>
|
|
<p class="chart-card-sub" style="margin: 10px 0 0;">Clique une ou plusieurs barres pour filtrer la répartition par service ci-dessous.</p>
|
|
</div>
|
|
|
|
<p class="section-title" id="services-section-title">Répartition par service (30 derniers jours)</p>
|
|
<div id="services-selection-note" class="selection-note" style="margin: -8px 0 14px;"></div>
|
|
<div class="chart-grid">
|
|
<div class="card chart-card">
|
|
<div class="chart-card-header">
|
|
<div>
|
|
<h2>Top services</h2>
|
|
<p class="chart-card-sub" id="services-chart-sub"> </p>
|
|
</div>
|
|
</div>
|
|
<div class="chart-canvas-wrap">
|
|
<canvas id="services-chart"></canvas>
|
|
</div>
|
|
</div>
|
|
<div class="card chart-card">
|
|
<div class="chart-card-header">
|
|
<div>
|
|
<h2>Détail</h2>
|
|
</div>
|
|
</div>
|
|
<div id="services-table-wrap">
|
|
<div class="skeleton">Chargement…</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</main>
|
|
|
|
<div class="drawer-backdrop" id="drawer-backdrop"></div>
|
|
<aside class="drawer" id="resource-drawer" aria-hidden="true">
|
|
<div class="drawer-header">
|
|
<div>
|
|
<h3 id="drawer-title">Service</h3>
|
|
<p id="drawer-sub"> </p>
|
|
</div>
|
|
<button class="drawer-close" id="drawer-close" aria-label="Fermer">×</button>
|
|
</div>
|
|
<div class="drawer-body" id="drawer-body"></div>
|
|
</aside>
|
|
|
|
<script src="/static/common.js"></script>
|
|
<script src="/static/tenant.js"></script>
|
|
</body>
|
|
</html>
|