67 lines
2.4 KiB
HTML
67 lines
2.4 KiB
HTML
{% extends "layout.html" %}
|
|
{% block title %}Snapshots - chat{% endblock %}
|
|
{% block content %}
|
|
<header class="page-header">
|
|
<h1>Snapshots</h1>
|
|
<form method="post" action="/snapshots/take" class="inline-edit">
|
|
<button type="submit">Take snapshot now</button>
|
|
</form>
|
|
</header>
|
|
|
|
{% if preview %}
|
|
<section class="snapshot-preview">
|
|
<h2>Preview: {{ preview.snapshot_id }}</h2>
|
|
<dl>
|
|
<dt>kind</dt><dd>{{ preview.kind }}</dd>
|
|
<dt>filename</dt><dd>{{ preview.filename }}</dd>
|
|
<dt>file size (bytes)</dt><dd>{{ preview.file_size_bytes }}</dd>
|
|
<dt>snapshot last_event_id</dt><dd>{{ preview.last_event_id }}</dd>
|
|
<dt>current event_log max id</dt><dd>{{ preview.current_event_log_max_id }}</dd>
|
|
<dt>events since snapshot</dt><dd>{{ preview.event_delta }}</dd>
|
|
<dt>events stored in snapshot</dt><dd>{{ preview.event_log_rows_in_snapshot }}</dd>
|
|
</dl>
|
|
</section>
|
|
{% endif %}
|
|
|
|
{% if snapshots %}
|
|
<table class="snapshot-list">
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Kind</th>
|
|
<th>Created (UTC)</th>
|
|
<th>Size (bytes)</th>
|
|
<th>last_event_id</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for snap in snapshots %}
|
|
<tr>
|
|
<td>{{ snap.snapshot_id }}</td>
|
|
<td>{{ snap.kind }}</td>
|
|
<td>{{ snap.created_at }}</td>
|
|
<td>{{ snap.file_size_bytes }}</td>
|
|
<td>{{ snap.last_event_id if snap.last_event_id is not none else '?' }}</td>
|
|
<td>
|
|
<a href="/snapshots/{{ snap.snapshot_id }}/preview?kind={{ snap.kind }}">Preview</a>
|
|
<details class="snapshot-row-restore">
|
|
<summary>Restore</summary>
|
|
<form method="post" action="/snapshots/restore/{{ snap.snapshot_id }}" class="inline-edit">
|
|
<input type="hidden" name="kind" value="{{ snap.kind }}">
|
|
<label>Type "{{ snap.snapshot_id }}" to confirm:
|
|
<input type="text" name="confirm_id" required>
|
|
</label>
|
|
<button type="submit">Restore from this snapshot</button>
|
|
</form>
|
|
</details>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% else %}
|
|
<p class="muted">No snapshots yet. Use "Take snapshot now" to create one.</p>
|
|
{% endif %}
|
|
{% endblock %}
|