Files
gpatruno 48a1b900c7
Build / build (push) Has been cancelled
webapp
2026-06-06 21:59:51 +02:00

107 lines
3.2 KiB
Plaintext

<%- include('partials/page-start') %>
<%- include('partials/page-header', { title, subtitle: 'Vue d\'ensemble du serveur en temps réel' }) %>
<section class="stats-grid">
<article class="stat-card">
<span class="stat-label">Joueurs en ligne</span>
<strong class="stat-value accent"><%= fmt.formatNumber(stats.onlinePlayers) %></strong>
</article>
<article class="stat-card">
<span class="stat-label">Joueurs inscrits</span>
<strong class="stat-value"><%= fmt.formatNumber(stats.totalPlayers) %></strong>
</article>
<article class="stat-card">
<span class="stat-label">Niveau moyen</span>
<strong class="stat-value"><%= stats.averageLevel %></strong>
</article>
<article class="stat-card">
<span class="stat-label">Money en circulation</span>
<strong class="stat-value"><%= fmt.formatMoney(stats.totalMoney) %></strong>
</article>
<article class="stat-card">
<span class="stat-label">Groupes actifs</span>
<strong class="stat-value"><%= fmt.formatNumber(stats.totalGroups) %></strong>
</article>
</section>
<section class="panel">
<div class="panel-header">
<h2>Joueurs connectés</h2>
<span class="badge"><%= onlinePlayers.length %></span>
</div>
<% if (onlinePlayers.length === 0) { %>
<p class="empty">Aucun joueur connecté pour le moment.</p>
<% } else { %>
<table class="table">
<thead>
<tr>
<th>Joueur</th>
<th>Niveau</th>
<th>Classe</th>
<th>Race</th>
<th>Money</th>
<th></th>
</tr>
</thead>
<tbody>
<% onlinePlayers.forEach(function(p) { %>
<tr>
<td>
<span class="player-name">
<span class="status-dot online inline"></span>
<%= p.display_name %>
</span>
</td>
<td><%= p.level %></td>
<td><%= p.classLabel %></td>
<td><%= p.raceLabel %></td>
<td><%= fmt.formatMoney(p.money) %></td>
<td><a class="link" href="/players/<%= p.uuid %>">Profil</a></td>
</tr>
<% }); %>
</tbody>
</table>
<% } %>
</section>
<section class="panel">
<div class="panel-header">
<h2>Dernières connexions</h2>
</div>
<% if (recentPlayers.length === 0) { %>
<p class="empty">Aucun joueur enregistré.</p>
<% } else { %>
<table class="table">
<thead>
<tr>
<th>Joueur</th>
<th>Niveau</th>
<th>Statut</th>
<th>Dernière connexion</th>
<th></th>
</tr>
</thead>
<tbody>
<% recentPlayers.forEach(function(p) { %>
<tr>
<td><%= p.display_name %></td>
<td><%= p.level %></td>
<td>
<% if (p.isOnline) { %>
<span class="tag tag-online">En ligne</span>
<% } else { %>
<span class="tag tag-offline">Hors ligne</span>
<% } %>
</td>
<td><%= fmt.formatTimestamp(p.last_date_connected) %></td>
<td><a class="link" href="/players/<%= p.uuid %>">Profil</a></td>
</tr>
<% }); %>
</tbody>
</table>
<% } %>
</section>
<%- include('partials/page-end') %>