Initial commit: Wycz WoW Portfolio
This commit is contained in:
@@ -0,0 +1,195 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<title>Wycz — Administration</title>
|
||||
<link rel="icon" type="image/png" href="/images/logo5.png">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="/css/style.css">
|
||||
</head>
|
||||
<body class="admin-body">
|
||||
<header class="site-header">
|
||||
<div class="header-inner">
|
||||
<div class="brand">
|
||||
<img class="brand-logo" src="/images/logo5.png" alt="Logo Wycz">
|
||||
<div class="brand-text">
|
||||
<h1>ADMIN</h1>
|
||||
<p>Gestion des personnages et objectifs</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header-right">
|
||||
<div class="socials" id="socials"></div>
|
||||
<div class="header-status">
|
||||
<div id="header-live"></div>
|
||||
<a href="/" class="btn btn-ghost">Voir le site</a>
|
||||
<button class="btn btn-ghost" id="logout-btn" hidden>Déconnexion</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="container">
|
||||
<section id="login-view" hidden>
|
||||
<div class="login-box">
|
||||
<h2>Connexion administrateur</h2>
|
||||
<form id="login-form">
|
||||
<input type="password" id="login-password" placeholder="Mot de passe" autocomplete="current-password" required>
|
||||
<button type="submit" class="btn btn-primary">Se connecter</button>
|
||||
<div class="form-error" id="login-error" hidden></div>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="admin-view" hidden>
|
||||
<div class="tabs">
|
||||
<button class="tab-btn active" data-tab="chars">Personnages</button>
|
||||
<button class="tab-btn" data-tab="goals">Objectifs</button>
|
||||
<button class="tab-btn" data-tab="sessions">Suivi</button>
|
||||
<button class="tab-btn" data-tab="settings">Paramètres</button>
|
||||
<button class="tab-btn" data-tab="logs">Journal</button>
|
||||
</div>
|
||||
|
||||
<div class="tab-panel active" id="tab-chars">
|
||||
<div class="panel-toolbar">
|
||||
<h3>Personnages suivis</h3>
|
||||
<div class="toolbar-actions">
|
||||
<span class="hint" id="fetch-status"></span>
|
||||
<button class="btn btn-primary" id="refresh-all-btn">Tout actualiser</button>
|
||||
<button class="btn btn-primary" id="add-char-btn">+ Ajouter un personnage</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row hidden" id="add-char-form">
|
||||
<input type="text" id="nc-name" placeholder="Nom (ex: Wycz)" required>
|
||||
<input type="text" id="nc-realm" placeholder="Royaume (ex: Cho'gall)" required>
|
||||
<input type="text" id="nc-realm-slug" placeholder="Slug Blizzard (optionnel)">
|
||||
<select id="nc-region">
|
||||
<option value="eu">EU</option>
|
||||
<option value="us">US</option>
|
||||
</select>
|
||||
<select id="nc-class" aria-label="Classe">
|
||||
<option value="">Classe (optionnel)</option>
|
||||
<option>Guerrier</option><option>Paladin</option><option>Chasseur</option><option>Voleur</option>
|
||||
<option>Prêtre</option><option>Chevalier de la mort</option><option>Chaman</option><option>Mage</option>
|
||||
<option>Démoniste</option><option>Moine</option><option>Druide</option><option>Chasseur de démons</option>
|
||||
<option>Évocateur</option>
|
||||
</select>
|
||||
<input type="text" id="nc-note" placeholder="Note (ex: Chaman main)">
|
||||
<button class="btn btn-primary" id="nc-save">Ajouter</button>
|
||||
</div>
|
||||
<table class="admin-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Perso</th><th>Classe</th><th>Niveau</th><th>Royaume</th><th>Check-pvp</th><th>Sets PvP</th><th>Sets PvE</th><th>Ratings PvP</th><th>Titres</th><th>Actif</th><th>Maj</th><th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="chars-tbody"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="modal-backdrop" id="pvp-modal-backdrop" hidden>
|
||||
<div class="modal pvp-modal">
|
||||
<button class="modal-close" id="pvp-modal-close" aria-label="Fermer">×</button>
|
||||
<div class="modal-head">
|
||||
<div>
|
||||
<h3 id="pvp-modal-title">Ratings PvP</h3>
|
||||
<p id="pvp-modal-sub">Saison, maximum (xp), victoires et défaites par bracket</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pvp-form">
|
||||
<div class="pvp-section">
|
||||
<h4>Général</h4>
|
||||
<table class="admin-table">
|
||||
<thead><tr><th>Bracket</th><th>Cette saison</th><th>Max (xp)</th><th>Victoires</th><th>Défaites</th></tr></thead>
|
||||
<tbody id="pvp-general-body"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div id="pvp-specs"></div>
|
||||
<div class="pvp-actions">
|
||||
<button class="btn btn-primary" id="pvp-save">Enregistrer</button>
|
||||
<span class="hint" id="pvp-save-msg"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-panel" id="tab-goals">
|
||||
<div class="panel-toolbar"><h3>Objectifs et cibles</h3></div>
|
||||
<div class="goals-grid admin-goals" id="admin-goals"></div>
|
||||
</div>
|
||||
|
||||
<div class="tab-panel" id="tab-sessions">
|
||||
<div class="panel-toolbar">
|
||||
<h3>Suivi de session</h3>
|
||||
<button class="btn btn-ghost" id="session-undo" hidden title="Annuler le dernier match">Annuler le dernier match</button>
|
||||
</div>
|
||||
<p class="hint" style="margin-bottom:12px">Clique à chaque match joué : Victoire / Défaite par bracket. Les totaux du jour et des 7 derniers jours sont calculés automatiquement.</p>
|
||||
<div class="session-grid" id="session-grid"></div>
|
||||
</div>
|
||||
|
||||
<div class="tab-panel" id="tab-settings">
|
||||
<h3>API Blizzard</h3>
|
||||
<div class="settings-card">
|
||||
<p class="hint">Créez un client sur <a href="https://develop.battle.net/" target="_blank" rel="noopener">developers.battle.net</a> puis renseignez le Client ID et le Secret ci-dessous pour activer les ratings PvP, les hauts faits, les titres et l'apparence complète des personnages.</p>
|
||||
<div class="form-grid">
|
||||
<div><label>Client ID</label><input type="text" id="st-blizz-id"></div>
|
||||
<div><label>Client Secret</label><input type="password" id="st-blizz-secret" autocomplete="off"></div>
|
||||
</div>
|
||||
<button class="btn btn-primary" id="st-save-blizz">Enregistrer les identifiants</button>
|
||||
</div>
|
||||
<h3>Vue d'ensemble (saisie manuelle)</h3>
|
||||
<div class="settings-card">
|
||||
<p class="hint">Laissez vide pour utiliser les données automatiques (Raider.io / Blizzard), sinon renseignez vos propres valeurs.</p>
|
||||
<div class="form-grid">
|
||||
<div class="span-2"><label>Classes niveau 90 <span class="hint">(sélectionnez les classes à 90)</span></label><div class="class-select" id="st-manual-class90-select"></div></div>
|
||||
<div class="span-2"><label>Toutes les classes à 2300 en soloshuffle <span class="hint">(sélectionnez les classes)</span></label><div class="class-select" id="st-manual-ss2300-select"></div></div>
|
||||
<div><label>Victoires Gladiateur au-dessus de 2300 en 3v3 (sur 50)</label><input type="number" id="st-manual-glad-wins" min="0" max="50" placeholder="0"></div>
|
||||
<div class="span-2"><label>Classe en cours pour le farm Gladiateur <span class="hint">(cliquez sur la classe active)</span></label><div class="class-select" id="st-manual-glad-class-select"></div></div>
|
||||
<div><label>Boss tués sur le dernier raid mythique</label><input type="number" id="st-manual-bosses" min="0" max="99" placeholder="(auto)"></div>
|
||||
<div><label>Points de hauts faits</label><input type="number" id="st-manual-ach" min="0" placeholder="2258"></div>
|
||||
<div><label>Total de hauts faits</label><input type="number" id="st-manual-ach-total" min="0" placeholder="5843"></div>
|
||||
<div><label>Nom du dernier raid mythique</label><input type="text" id="st-raid-name" placeholder="L'Abîme Venimeux"></div>
|
||||
<div><label>Nombre de boss du raid</label><input type="number" id="st-raid-total" min="1"></div>
|
||||
<div><label>Lien Twitch</label><input type="text" id="st-twitch-url" placeholder="https://twitch.tv/wycz"></div>
|
||||
<div><label>Lien YouTube</label><input type="text" id="st-youtube-url" placeholder="https://youtube.com/@..."></div>
|
||||
<div><label>Lien TikTok</label><input type="text" id="st-tiktok-url" placeholder="https://tiktok.com/@..."></div>
|
||||
<div><label>Saison du titre Gladiateur <span class="hint">(affichée à côté du titre)</span></label><input type="text" id="st-glad-season" placeholder="S1 Midnight"></div>
|
||||
<div><label>Saison du titre Légende <span class="hint">(affichée à côté du titre)</span></label><input type="text" id="st-legend-season" placeholder="S1 Midnight"></div>
|
||||
</div>
|
||||
</div>
|
||||
<h3>Mises à jour</h3>
|
||||
<div class="settings-card">
|
||||
<div class="form-grid">
|
||||
<div><label>Fréquence (heures)</label><input type="number" id="st-interval" min="1"></div>
|
||||
<div><label>Build wago.tools</label><input type="text" id="st-build" placeholder="12.1.0.69111"></div>
|
||||
</div>
|
||||
<button class="btn btn-primary" id="st-save">Enregistrer</button>
|
||||
<button class="btn" id="st-refresh">Lancer une mise à jour complète</button>
|
||||
<span class="hint" id="st-last-fetch"></span>
|
||||
</div>
|
||||
<h3>Mot de passe administrateur</h3>
|
||||
<div class="settings-card">
|
||||
<div class="form-grid">
|
||||
<div><label>Mot de passe actuel</label><input type="password" id="pw-current"></div>
|
||||
<div><label>Nouveau mot de passe</label><input type="password" id="pw-next"></div>
|
||||
</div>
|
||||
<button class="btn btn-primary" id="pw-save">Changer le mot de passe</button>
|
||||
</div>
|
||||
<div class="form-error" id="settings-error" hidden></div>
|
||||
</div>
|
||||
|
||||
<div class="tab-panel" id="tab-logs">
|
||||
<h3>Journal des mises à jour</h3>
|
||||
<table class="admin-table">
|
||||
<thead><tr><th>Heure</th><th>Personnage</th><th>Source</th><th>Statut</th><th>Détail</th></tr></thead>
|
||||
<tbody id="logs-tbody"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<script src="/js/api.js"></script>
|
||||
<script src="/js/admin.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user