83 lines
2.6 KiB
HTML
83 lines
2.6 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}System - MyWhoosh Garmin Sync{% endblock %}
|
|
|
|
{% block content %}
|
|
<h1>System</h1>
|
|
|
|
<div class="card">
|
|
<dl class="info-grid">
|
|
<dt>Application version</dt>
|
|
<dd>{{ app_version }}</dd>
|
|
|
|
<dt>Last scheduler tick</dt>
|
|
<dd>{{ last_tick or "-" }}</dd>
|
|
|
|
<dt>Next scheduler tick</dt>
|
|
<dd>{{ next_tick or "-" }}</dd>
|
|
|
|
<dt>User count</dt>
|
|
<dd>{{ user_count }}</dd>
|
|
|
|
<dt>Activity count</dt>
|
|
<dd>{{ activity_count }}</dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<form method="post" action="/sync-all" class="inline-form">
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
|
|
<button type="submit">Sync all now</button>
|
|
</form>
|
|
|
|
<h2>Sync scheduling</h2>
|
|
<div class="card">
|
|
<form method="post" action="/system/scheduler-settings" class="stacked-form">
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
|
|
|
|
<label for="day_start_hour">Day starts at (hour, 0-23)</label>
|
|
<input type="number" id="day_start_hour" name="day_start_hour" min="0" max="23"
|
|
value="{{ scheduler_settings.day_start_hour }}" required>
|
|
|
|
<label for="day_interval_minutes">Sync interval during the day (minutes)</label>
|
|
<input type="number" id="day_interval_minutes" name="day_interval_minutes" min="1"
|
|
value="{{ scheduler_settings.day_interval_minutes }}" required>
|
|
|
|
<label for="night_start_hour">Night starts at (hour, 0-23)</label>
|
|
<input type="number" id="night_start_hour" name="night_start_hour" min="0" max="23"
|
|
value="{{ scheduler_settings.night_start_hour }}" required>
|
|
|
|
<label for="night_interval_minutes">Sync interval during the night (minutes)</label>
|
|
<input type="number" id="night_interval_minutes" name="night_interval_minutes" min="1"
|
|
value="{{ scheduler_settings.night_interval_minutes }}" required>
|
|
|
|
<button type="submit">Save</button>
|
|
</form>
|
|
</div>
|
|
|
|
<h2>System log</h2>
|
|
<div class="card">
|
|
{% if log_entries %}
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Time</th>
|
|
<th>Source</th>
|
|
<th>Message</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for entry in log_entries %}
|
|
<tr>
|
|
<td>{{ entry.created_at }}</td>
|
|
<td>{{ entry.source }}</td>
|
|
<td>{{ entry.message }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% else %}
|
|
<p class="empty-state">No system log entries.</p>
|
|
{% endif %}
|
|
</div>
|
|
{% endblock %}
|