Skip to main content

max / makenotwork

3.0 KB · 78 lines History Blame Raw
1 {% extends "base.html" %}
2
3 {% block title %}Admin: Waitlist - Makenot.work{% endblock %}
4 {% block body_attrs %} class="padded-page admin-page"{% endblock %}
5
6 {% block head %}
7 {% endblock %}
8
9 {% block content %}
10 {% include "partials/site_header.html" %}
11
12 <div class="container">
13 {% include "partials/admin_nav.html" %}
14
15 <h1 class="page-title">Waitlist Management</h1>
16
17 <div class="stats-row">
18 <div class="stat-box">
19 <div class="number">{{ stats.total_pending }}</div>
20 <div class="label">Pending</div>
21 </div>
22 <div class="stat-box">
23 <div class="number">{{ stats.total_approved }}</div>
24 <div class="label">Approved</div>
25 </div>
26 <div class="stat-box">
27 <div class="number">{{ stats.total_spam }}</div>
28 <div class="label">Spam</div>
29 </div>
30 <div class="stat-box">
31 <div class="number">{{ stats.total_creators }}</div>
32 <div class="label">Total Creators</div>
33 </div>
34 </div>
35
36 <div class="lottery-form">
37 <form hx-post="/api/admin/lottery" hx-target="body" class="lottery-form">
38 <div class="form-group">
39 <label for="lottery-count">Lottery draw count</label>
40 <input type="number" id="lottery-count" name="count" min="1" max="100" value="5">
41 </div>
42 <button type="submit" class="btn-primary"
43 hx-confirm="Run the lottery? This will create a wave, assign hand-picks, and draw random winners.">
44 Run Lottery
45 </button>
46 </form>
47 </div>
48
49 <div class="filter-bar">
50 <span class="label">Filter:</span>
51 <button class="{% if current_filter.is_empty() %}btn-primary{% else %}btn-secondary{% endif %}"
52 hx-get="/admin/waitlist/entries"
53 hx-target="#entries-table"
54 hx-swap="innerHTML"
55 >All</button>
56 <button class="{% if current_filter == "pending" %}primary{% else %}secondary{% endif %}"
57 hx-get="/admin/waitlist/entries?status=pending"
58 hx-target="#entries-table"
59 hx-swap="innerHTML"
60 >Pending</button>
61 <button class="{% if current_filter == "approved" %}primary{% else %}secondary{% endif %}"
62 hx-get="/admin/waitlist/entries?status=approved"
63 hx-target="#entries-table"
64 hx-swap="innerHTML"
65 >Approved</button>
66 <button class="{% if current_filter == "spam" %}primary{% else %}secondary{% endif %}"
67 hx-get="/admin/waitlist/entries?status=spam"
68 hx-target="#entries-table"
69 hx-swap="innerHTML"
70 >Spam</button>
71 </div>
72
73 <div id="entries-table">
74 {% include "partials/admin_waitlist_entries.html" %}
75 </div>
76 </div>
77 {% endblock %}
78