86 lines
3.1 KiB
HTML
86 lines
3.1 KiB
HTML
|
|
<!doctype html>
|
||
|
|
<html lang="fr">
|
||
|
|
<head>
|
||
|
|
<meta charset="utf-8" />
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
|
<title>Classement des doses</title>
|
||
|
|
<link rel="stylesheet" href="/styles.css" />
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
<div class="page">
|
||
|
|
<header class="page-header">
|
||
|
|
<h1>Classement des doses</h1>
|
||
|
|
<div class="admin-controls">
|
||
|
|
<span id="admin-status" class="admin-status hidden">Mode admin</span>
|
||
|
|
<button id="admin-login-btn" class="btn btn-ghost">Connexion admin</button>
|
||
|
|
<button id="admin-logout-btn" class="btn btn-ghost hidden">Déconnexion</button>
|
||
|
|
</div>
|
||
|
|
</header>
|
||
|
|
|
||
|
|
<main>
|
||
|
|
<section class="card">
|
||
|
|
<h2>Doses par jour</h2>
|
||
|
|
<div class="chart-wrap">
|
||
|
|
<canvas id="dose-chart" height="320"></canvas>
|
||
|
|
</div>
|
||
|
|
<p id="chart-empty" class="empty-state hidden">Enregistrez une dose pour voir le graphique.</p>
|
||
|
|
|
||
|
|
<h3 class="totals-heading">Total des doses</h3>
|
||
|
|
<div class="totals-row" id="totals-row"></div>
|
||
|
|
<p id="totals-empty" class="empty-state hidden">Aucune dose enregistrée.</p>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
<section class="card">
|
||
|
|
<h2>Classement</h2>
|
||
|
|
<div id="date-picker-row" class="date-picker-row admin-only hidden">
|
||
|
|
<label for="dose-date-input">Modifier les doses du :</label>
|
||
|
|
<input type="date" id="dose-date-input" />
|
||
|
|
</div>
|
||
|
|
<table class="leaderboard" id="leaderboard-table">
|
||
|
|
<thead>
|
||
|
|
<tr>
|
||
|
|
<th class="col-rank">#</th>
|
||
|
|
<th class="col-name">Joueur</th>
|
||
|
|
<th class="col-total">Doses</th>
|
||
|
|
<th class="col-actions admin-only hidden">Modifier</th>
|
||
|
|
<th class="col-remove admin-only hidden"></th>
|
||
|
|
</tr>
|
||
|
|
</thead>
|
||
|
|
<tbody id="leaderboard-body"></tbody>
|
||
|
|
</table>
|
||
|
|
<p id="leaderboard-empty" class="empty-state hidden">Aucun joueur pour le moment.</p>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
<section id="add-player-section" class="card admin-only hidden">
|
||
|
|
<h2>Ajouter un joueur</h2>
|
||
|
|
<form id="add-player-form" class="add-player-form">
|
||
|
|
<input type="text" id="player-name-input" placeholder="Nom du joueur" maxlength="40" autocomplete="off" required />
|
||
|
|
<button type="submit" class="btn btn-primary">Ajouter</button>
|
||
|
|
</form>
|
||
|
|
<p id="add-player-error" class="form-error hidden"></p>
|
||
|
|
</section>
|
||
|
|
</main>
|
||
|
|
|
||
|
|
<footer class="page-footer">
|
||
|
|
<p>Une victoire = une dose. Seul l'admin peut ajouter/annuler des doses et ajouter/supprimer des joueurs.</p>
|
||
|
|
</footer>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<dialog id="admin-dialog">
|
||
|
|
<form id="admin-login-form" method="dialog">
|
||
|
|
<h2>Connexion admin</h2>
|
||
|
|
<label for="admin-password-input">Mot de passe</label>
|
||
|
|
<input type="password" id="admin-password-input" autocomplete="current-password" required />
|
||
|
|
<p id="admin-login-error" class="form-error hidden">Mot de passe incorrect.</p>
|
||
|
|
<div class="dialog-actions">
|
||
|
|
<button type="button" id="admin-cancel-btn" class="btn btn-ghost">Annuler</button>
|
||
|
|
<button type="submit" class="btn btn-primary">Connexion</button>
|
||
|
|
</div>
|
||
|
|
</form>
|
||
|
|
</dialog>
|
||
|
|
|
||
|
|
<script src="/vendor/chart.umd.js"></script>
|
||
|
|
<script src="/app.js"></script>
|
||
|
|
</body>
|
||
|
|
</html>
|