46 lines
2.0 KiB
HTML
46 lines
2.0 KiB
HTML
{% extends 'admin/base.html' %}
|
|
{% block content %}
|
|
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
<h4 class="m-0">Events</h4>
|
|
<a class="btn btn-success" href="{{ url_for('admin.event_new') }}">New Event</a>
|
|
</div>
|
|
|
|
<div class="alert alert-info py-2">
|
|
<div><strong>HTTP trigger</strong> (LAN): open one of these URLs</div>
|
|
<div class="small">
|
|
<code>{{ request.host_url }}trigger/<event_id></code> or <code>{{ request.host_url }}trigger_by_name/<event_name></code>
|
|
(add <code>?force=1</code> to bypass cooldown)
|
|
</div>
|
|
</div>
|
|
<table class="table table-striped table-sm">
|
|
<thead><tr><th>ID</th><th>Name</th><th>UDP</th><th>Cooldown</th><th>Last triggered</th><th></th></tr></thead>
|
|
<tbody>
|
|
{% for e in events %}
|
|
<tr>
|
|
<td>{{ e.id }}</td>
|
|
<td>
|
|
{{ e.name }}
|
|
</td>
|
|
<td>{% if e.udp_port and e.udp_payload %}<code>{{ e.udp_port }}</code> / <code>{{ e.udp_payload }}</code>{% endif %}</td>
|
|
<td>{{ e.cooldown_seconds }}s</td>
|
|
<td>{{ e.last_triggered or '' }}</td>
|
|
<td class="text-end">
|
|
<form method="post" action="{{ url_for('admin.event_trigger', event_id=e.id) }}" style="display:inline">
|
|
<button class="btn btn-outline-success btn-sm" type="submit">Trigger</button>
|
|
</form>
|
|
<a class="btn btn-outline-primary btn-sm" href="{{ url_for('admin.event_edit', event_id=e.id) }}">Edit</a>
|
|
<form method="post" action="{{ url_for('admin.event_delete', event_id=e.id) }}" style="display:inline" onsubmit="return confirm('Delete event?');">
|
|
<button class="btn btn-outline-danger btn-sm" type="submit">Delete</button>
|
|
</form>
|
|
|
|
<div class="small text-muted mt-1">
|
|
<div><code>/trigger/{{ e.id }}?force=1</code></div>
|
|
<div><code>/trigger_by_name/{{ e.name|urlencode }}?force=1</code></div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endblock %}
|