Files
loot-hunt/src/views/loot/profile.ejs
Mike Johnston 4255d95c68
Some checks failed
Build Images and Deploy / Update-PROD-Stack (push) Failing after 14s
first commit
2026-02-28 00:01:41 -05:00

107 lines
4.1 KiB
Plaintext

<%- include('../partials/header') %>
<div class="container">
<div style="margin-bottom: 1rem;">
<a href="/hunt/<%= pkg.hunt_short_name %>" style="color: var(--muted); text-decoration: none;">&larr; Back to <%= pkg.hunt_name %></a>
</div>
<div class="card">
<div class="package-hero">
<div class="card-number">#<%= pkg.card_number %></div>
<div class="hunt-name"><a href="/hunt/<%= pkg.hunt_short_name %>"><%= pkg.hunt_name %></a></div>
<div style="font-family: monospace; color: var(--muted); margin-top: 0.25rem;"><%= pkg.unique_code %></div>
</div>
<div class="stats-row">
<div class="stat-box">
<div class="value"><%= pkg.scan_count %></div>
<div class="label">Total Scans</div>
</div>
<div class="stat-box">
<div class="value"><%= pkg.first_scanner_name || '&mdash;' %></div>
<div class="label">First Finder</div>
</div>
<div class="stat-box">
<div class="value"><%= pkg.last_scanner_name || '&mdash;' %></div>
<div class="label">Most Recent</div>
</div>
</div>
</div>
<% if (pkg.first_scan_image) { %>
<div class="card">
<div class="card-header">&#x1F4F8; First Finder's Photo</div>
<img src="<%= pkg.first_scan_image %>" alt="Package photo" class="package-image">
</div>
<% } %>
<%/* First scanner can upload image */%>
<% if (isFirstScanner && !pkg.first_scan_image) { %>
<div class="card">
<div class="card-header">&#x1F4F8; Upload a Photo</div>
<p style="color: var(--muted); font-size: 0.9rem;">As the first finder, you can upload a photo for this package.</p>
<form method="POST" action="/loot/<%= pkg.hunt_short_name %>/<%= pkg.unique_code %>/image" enctype="multipart/form-data">
<div class="form-group">
<input type="file" name="image" accept="image/*" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary">Upload Photo</button>
</form>
</div>
<% } %>
<div class="card">
<div class="card-header">&#x1F4AC; Package Hint</div>
<% if (pkg.last_scan_hint) { %>
<p style="font-style: italic; font-size: 1.05rem;">"<%= pkg.last_scan_hint %>"</p>
<p style="font-size: 0.8rem; color: var(--muted);">Left by <%= pkg.last_scanner_name %></p>
<% } else { %>
<p style="color: var(--muted);">No hint has been left yet.</p>
<% } %>
<% if (isLastScanner) { %>
<form method="POST" action="/loot/<%= pkg.hunt_short_name %>/<%= pkg.unique_code %>/hint" style="margin-top: 1rem;">
<div class="form-group">
<label>Update Hint/Message</label>
<textarea name="hint" class="form-control" rows="2" maxlength="500" placeholder="Leave a hint or message for the next finder..."><%= pkg.last_scan_hint || '' %></textarea>
</div>
<button type="submit" class="btn btn-primary btn-sm">Save Hint</button>
</form>
<% } %>
</div>
<% if (scanHistory.length > 0) { %>
<div class="card">
<div class="card-header">Scan History</div>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>#</th>
<th>Player</th>
<th>Points</th>
<th>Time</th>
</tr>
</thead>
<tbody>
<% scanHistory.forEach((scan, i) => { %>
<tr>
<td><%= i + 1 %></td>
<td><%= scan.username %></td>
<td><% if (scan.points_awarded > 0) { %><span class="points-badge">+<%= scan.points_awarded %></span><% } else { %><span style="color: var(--muted);">0</span><% } %></td>
<td style="font-size: 0.85rem; color: var(--muted);"><%= new Date(scan.scanned_at).toLocaleString() %></td>
</tr>
<% }) %>
</tbody>
</table>
</div>
</div>
<% } %>
<div style="text-align: center; margin-top: 1rem;">
<a href="/hunt/<%= pkg.hunt_short_name %>" class="btn btn-outline">View All Packages</a>
<a href="/hunt/<%= pkg.hunt_short_name %>/leaderboard" class="btn btn-outline">Leaderboard</a>
</div>
</div>
<%- include('../partials/footer') %>