@@ -0,0 +1,106 @@
|
||||
<%- 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') %>
|
||||
Reference in New Issue
Block a user