92 lines
3.0 KiB
Plaintext
92 lines
3.0 KiB
Plaintext
<h1>Admin Dashboard</h1>
|
|
|
|
<div class="dashboard-stats">
|
|
<div class="stat-card">
|
|
<div class="stat-value"><%= total_players %></div>
|
|
<div class="stat-label">Total Players</div>
|
|
<a href="/admin/players" class="stat-link">Manage Players →</a>
|
|
</div>
|
|
|
|
<div class="stat-card">
|
|
<div class="stat-value"><%= active_tournaments %></div>
|
|
<div class="stat-label">Active Tournaments</div>
|
|
<a href="/admin/tournaments" class="stat-link">Manage Tournaments →</a>
|
|
</div>
|
|
|
|
<div class="stat-card">
|
|
<div class="stat-value"><%= completed_tournaments %></div>
|
|
<div class="stat-label">Completed Tournaments</div>
|
|
<a href="/admin/tournaments" class="stat-link">View History →</a>
|
|
</div>
|
|
|
|
<div class="stat-card">
|
|
<div class="stat-value"><%= recent_matches.count %></div>
|
|
<div class="stat-label">Recent Matches</div>
|
|
<a href="/admin/matches" class="stat-link">Record Match →</a>
|
|
</div>
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<div class="quick-actions">
|
|
<h2>Quick Actions</h2>
|
|
<div class="action-buttons">
|
|
<% if defined?(current_user) && current_user %>
|
|
<a href="/admin/matches/new" class="btn btn-primary">Record Match Result</a>
|
|
<% if EuchreCamp::Services::Authorization.can?(current_user, :create_tournament) %>
|
|
<a href="/admin/tournaments/new" class="btn btn-primary">Create Tournament</a>
|
|
<% end %>
|
|
<% if EuchreCamp::Services::Authorization.can?(current_user, :edit_any_record) %>
|
|
<a href="/admin/players/new" class="btn btn-primary">Add Player</a>
|
|
<% end %>
|
|
<a href="/admin/matches/upload" class="btn">Upload CSV</a>
|
|
<% else %>
|
|
<a href="/admin/matches/new" class="btn btn-primary">Record Match Result</a>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<div class="recent-activity">
|
|
<h2>Recent Matches</h2>
|
|
<% if recent_matches.any? %>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Match ID</th>
|
|
<th>Team 1</th>
|
|
<th>Score</th>
|
|
<th>Team 2</th>
|
|
<th>Date</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<% recent_matches.each do |match| %>
|
|
<tr>
|
|
<td data-label="Match ID"><%= match[:id] %></td>
|
|
<td data-label="Team 1"><%= match[:team_1].map { |p| p[:name] }.join(' + ') %></td>
|
|
<td data-label="Score"><strong><%= match[:score] %></strong></td>
|
|
<td data-label="Team 2"><%= match[:team_2].map { |p| p[:name] }.join(' + ') %></td>
|
|
<td data-label="Date"><%= match[:played_at]&.strftime('%Y-%m-%d') || '-' %></td>
|
|
</tr>
|
|
<% end %>
|
|
</tbody>
|
|
</table>
|
|
<% else %>
|
|
<p>No matches recorded yet.</p>
|
|
<% end %>
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<div class="admin-links">
|
|
<h2>Admin Sections</h2>
|
|
<ul>
|
|
<li><a href="/admin/players">Player Management</a> - Add, edit, and manage players</li>
|
|
<li><a href="/admin/tournaments">Tournament Management</a> - Create and manage tournaments</li>
|
|
<li><a href="/admin/matches">Match Entry</a> - Record individual match results</li>
|
|
<li><a href="/admin/matches/upload">CSV Upload</a> - Bulk import matches from CSV</li>
|
|
</ul>
|
|
</div>
|