A decentralized event management and credentialing system built on atproto.
1{% extends "admin_base.html" %}
2
3{% block title %}AcudoRule Management - Admin Panel{% endblock %}
4
5{% block content %}
6<!-- Page Header -->
7<div class="mb-5">
8 <div class="columns is-vcentered">
9 <div class="column">
10 <h1 class="title is-4">AcudoRule Management</h1>
11 </div>
12 <div class="column is-narrow">
13 <div class="field is-grouped">
14 <p class="control">
15 <a href="/admin/acudo-rules/new" class="button is-success">New Rule</a>
16 </p>
17 <p class="control">
18 <span class="tag is-large is-info">{{ total_rules }} Rules</span>
19 </p>
20 </div>
21 </div>
22 </div>
23</div>
24
25<!-- Rules Table -->
26{% if rules %}
27<div class="box">
28 <div class="table-container">
29 <table class="table is-fullwidth is-striped is-hoverable">
30 <thead>
31 <tr>
32 <th>ID</th>
33 <th>Order</th>
34 <th>Rule</th>
35 <th width="200">Actions</th>
36 </tr>
37 </thead>
38 <tbody>
39 {% for rule in rules %}
40 <tr>
41 <td>
42 <code class="has-text-info">{{ rule.id }}</code>
43 </td>
44 <td>
45 <span class="tag is-light">{{ rule.order }}</span>
46 </td>
47 <td>
48 <details>
49 <summary class="has-text-link is-clickable">
50 View Rule JSON
51 </summary>
52 <div class="json-display mt-2">
53 <pre class="has-background-light p-2">{{ rule.rule_json }}</pre>
54 </div>
55 </details>
56 </td>
57 <td>
58 <div class="buttons are-small">
59 <a href="/admin/acudo-rules/{{ rule.id }}/edit"
60 class="button is-warning">
61 Edit
62 </a>
63 <form method="POST"
64 action="/admin/acudo-rules/{{ rule.id }}/delete"
65 style="display: inline;"
66 onsubmit="return confirm('Are you sure you want to delete this rule?');">
67 <button type="submit" class="button is-danger">
68 Delete
69 </button>
70 </form>
71 </div>
72 </td>
73 </tr>
74 {% endfor %}
75 </tbody>
76 </table>
77 </div>
78</div>
79{% else %}
80<div class="notification is-info">
81 <p class="has-text-centered">
82 No AcudoRules found.
83 <a href="/admin/acudo-rules/new">Create your first rule</a>.
84 </p>
85</div>
86{% endif %}
87
88<style>
89.json-display {
90 max-height: 200px;
91 overflow-y: auto;
92 font-family: monospace;
93 font-size: 0.85rem;
94}
95</style>
96{% endblock %}