Adds a self-hosted stylesheet (no CDN dependencies) with a card-based dashboard and color-coded status badges, and shows the last 10 sync runs per user on the detail page.
46 lines
1.4 KiB
HTML
46 lines
1.4 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Sync result - MyWhoosh Garmin Sync{% endblock %}
|
|
|
|
{% block content %}
|
|
<h1>Sync result</h1>
|
|
<div class="page-actions">
|
|
<a class="btn secondary" href="/">Back to dashboard</a>
|
|
</div>
|
|
<div class="card">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>User</th>
|
|
<th>Status</th>
|
|
<th>Discovered</th>
|
|
<th>Imported</th>
|
|
<th>Skipped</th>
|
|
<th>Failed</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for outcome in outcomes %}
|
|
<tr>
|
|
<td>{{ outcome.user_id if outcome.user_id is not none else "unknown" }}</td>
|
|
<td><span class="badge badge-{{ outcome.status }}">{{ outcome.status }}</span></td>
|
|
<td>{{ outcome.discovered }}</td>
|
|
<td>{{ outcome.imported }}</td>
|
|
<td>{{ outcome.skipped }}</td>
|
|
<td>{{ outcome.failed }}</td>
|
|
</tr>
|
|
{% if outcome.message %}
|
|
<tr>
|
|
<td colspan="6" class="summary-error">{{ outcome.message }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% else %}
|
|
<tr>
|
|
<td colspan="6" class="empty-state">No outcomes.</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% endblock %}
|