organize the recent checks

This commit is contained in:
2026-03-10 14:10:34 +00:00
parent b8f097848f
commit cc9ef27ba0
4 changed files with 149 additions and 21 deletions

View File

@@ -21,6 +21,10 @@
<p class="period-label">Showing: {{ period_label }}</p>
{% endif %}
<form method="get" action="{{ url_for('report', service_id=service.id) }}" class="date-range-form">
<input type="hidden" name="preset" value="{{ preset or '' }}">
<input type="hidden" name="status" value="{{ status_filter or '' }}">
<input type="hidden" name="search" value="{{ search or '' }}">
<input type="hidden" name="per_page" value="{{ per_page }}">
<label>From</label>
<input type="datetime-local" name="from" value="{{ from_date }}" placeholder="Start (optional)">
<label>To</label>
@@ -71,12 +75,19 @@
<input type="hidden" name="preset" value="{{ preset or '' }}">
<input type="hidden" name="from" value="{{ from_date }}">
<input type="hidden" name="to" value="{{ to_date }}">
<input type="hidden" name="page" value="1">
<select name="status">
<option value="">All</option>
<option value="ok" {% if status_filter == 'ok' %}selected{% endif %}>OK only</option>
<option value="error" {% if status_filter == 'error' %}selected{% endif %}>Errors only</option>
</select>
<input type="text" name="search" value="{{ search }}" placeholder="Search error message...">
<select name="per_page">
<option value="10" {% if per_page == 10 %}selected{% endif %}>10 per page</option>
<option value="25" {% if per_page == 25 %}selected{% endif %}>25 per page</option>
<option value="50" {% if per_page == 50 %}selected{% endif %}>50 per page</option>
<option value="100" {% if per_page == 100 %}selected{% endif %}>100 per page</option>
</select>
<button type="submit">Filter</button>
</form>
<table class="checks-table">
@@ -110,6 +121,45 @@
</tbody>
</table>
{% if checks_total > 0 %}
<nav class="pagination">
<span class="pagination-info">
Showing {{ (page - 1) * per_page + 1 }}-{{ min(page * per_page, checks_total) }} of {{ checks_total }}
</span>
<div class="pagination-links">
{% if page > 1 %}
<a href="{{ url_for('report', service_id=service.id, preset=preset or '', from=from_date, to=to_date, status=status_filter or '', search=search or '', per_page=per_page, page=page-1) }}" class="pagination-btn">Previous</a>
{% endif %}
{% if total_pages <= 7 %}
{% for p in range(1, total_pages + 1) %}
{% if p == page %}
<span class="pagination-btn pagination-current">{{ p }}</span>
{% else %}
<a href="{{ url_for('report', service_id=service.id, preset=preset or '', from=from_date, to=to_date, status=status_filter or '', search=search or '', per_page=per_page, page=p) }}" class="pagination-btn">{{ p }}</a>
{% endif %}
{% endfor %}
{% else %}
<a href="{{ url_for('report', service_id=service.id, preset=preset or '', from=from_date, to=to_date, status=status_filter or '', search=search or '', per_page=per_page, page=1) }}" class="pagination-btn">1</a>
{% if page > 3 %}<span class="pagination-ellipsis"></span>{% endif %}
{% for p in range(max(2, page - 1), min(total_pages, page + 1) + 1) %}
{% if p == page %}
<span class="pagination-btn pagination-current">{{ p }}</span>
{% else %}
<a href="{{ url_for('report', service_id=service.id, preset=preset or '', from=from_date, to=to_date, status=status_filter or '', search=search or '', per_page=per_page, page=p) }}" class="pagination-btn">{{ p }}</a>
{% endif %}
{% endfor %}
{% if page < total_pages - 2 %}<span class="pagination-ellipsis"></span>{% endif %}
{% if total_pages > 1 %}
<a href="{{ url_for('report', service_id=service.id, preset=preset or '', from=from_date, to=to_date, status=status_filter or '', search=search or '', per_page=per_page, page=total_pages) }}" class="pagination-btn">{{ total_pages }}</a>
{% endif %}
{% endif %}
{% if page < total_pages %}
<a href="{{ url_for('report', service_id=service.id, preset=preset or '', from=from_date, to=to_date, status=status_filter or '', search=search or '', per_page=per_page, page=page+1) }}" class="pagination-btn">Next</a>
{% endif %}
</div>
</nav>
{% endif %}
<p>
<a href="/">&larr; Back to Dashboard</a>
<span style="margin-left: 1rem;">