File size: 2,050 Bytes
bbe872c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | {% extends "base.html" %}
{% set active = "errors" %}
{% block title %} β errors{% endblock %}
{% block content %}
<h1 class="page-title">Download Errors</h1>
<!-- Date filter -->
<form class="filter-bar" method="get" action="/errors">
<input type="date" name="date_from" class="filter-input" value="{{ request.query_params.get('date_from', '') }}" />
<input type="date" name="date_to" class="filter-input" value="{{ request.query_params.get('date_to', '') }}" />
<button type="submit" class="btn btn-primary">Filter</button>
<a href="/errors" class="btn btn-secondary">Clear</a>
</form>
<div class="card table-card">
<div class="table-scroll">
<table class="data-table">
<thead>
<tr>
<th>Timestamp</th>
<th>User</th>
<th>URL</th>
<th>Platform</th>
<th>Error</th>
</tr>
</thead>
<tbody>
{% if errors %}
{% for row in errors %}
<tr>
<td class="mono text-secondary">{{ row.started_at[:19] if row.started_at else 'β' }}</td>
<td>{{ row.username or row.user_id or 'β' }}</td>
<td>
{% if row.url %}
<a href="{{ row.url }}" target="_blank" rel="noopener" class="url-cell" title="{{ row.url }}">
{{ row.url[:60] }}{% if row.url|length > 60 %}β¦{% endif %}
</a>
{% else %}β{% endif %}
</td>
<td>
{% if row.platform %}
<span class="badge badge-platform">{{ row.platform }}</span>
{% else %}β{% endif %}
</td>
<td class="error-message">{{ row.error_message or 'β' }}</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="5" class="empty-state empty-state--success">
<span class="empty-check">β</span> No errors in the selected period. Nice.
</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
</div>
{% endblock %}
|