Files
Paperwall/web/templates/index.html
T
Honey a19a7ea49e Fix manual switch reverting instantly, add weather forecast
- scheduler: "Show X now" was a true one-shot -- reverted on the very next
  5s tick, causing the flash-to-X-then-flash-back-to-clock behavior. Now
  pins for 5 minutes (still preemptable by Navidrome priority, which stays
  authoritative). Added a "Resume automatic" action/button and status
  display showing what's pinned and until when.
- weather: daily forecast strip (3/5/7 days, selectable in settings) below
  current conditions, via Open-Meteo's daily= params in the same request.
  Fixed a bad symbol choice along the way -- DejaVu Sans has no glyph for
  the partly-cloudy emoji, was rendering as a tofu box; swapped to the
  plain cloud symbol, verified glyph coverage for the whole WMO code table.
2026-07-21 23:06:16 +02:00

51 lines
1.9 KiB
HTML

{% extends "base.html" %}
{% block content %}
<h1>Status</h1>
<div class="card">
<div class="section-label">Preview</div>
<div class="preview-wrap">
<img class="preview" src="{{ url_for('static', filename='preview.png') }}?t={{ status.last_render_at }}" alt="preview">
</div>
</div>
<div class="card">
<div class="section-label">Overview</div>
<dl class="status-grid">
<dt>Current screen</dt><dd>{{ status.current_screen or "-" }}</dd>
<dt>Last render</dt><dd>{{ status.last_render_at or "-" }}</dd>
<dt>Last panel write</dt><dd>{{ status.last_display_write_at or "-" }}</dd>
<dt>Navidrome priority</dt>
<dd><span class="badge {{ 'on' if navidrome_priority else 'off' }}">{{ "on" if navidrome_priority else "off" }}</span></dd>
<dt>Rotation</dt>
<dd>
<span class="badge {{ 'on' if rotation.enabled else 'off' }}">{{ "on" if rotation.enabled else "off" }}</span>
{{ rotation.screens | join(" → ") }} (every {{ rotation.interval_minutes }} min)
</dd>
{% if status.manual_screen %}
<dt>Manual pin</dt>
<dd><span class="badge on">{{ screens[status.manual_screen].display_name }}</span> until {{ status.manual_until }}</dd>
{% endif %}
</dl>
</div>
<div class="card">
<div class="section-label">Actions</div>
<div class="actions">
<form class="inline" method="post" action="{{ url_for('refresh_now') }}">
<button type="submit">Refresh now</button>
</form>
{% for screen_id, screen in screens.items() %}
<form class="inline" method="post" action="{{ url_for('switch_now', screen_id=screen_id) }}">
<button class="secondary" type="submit">Show {{ screen.display_name }}</button>
</form>
{% endfor %}
{% if status.manual_screen %}
<form class="inline" method="post" action="{{ url_for('resume_rotation') }}">
<button class="secondary" type="submit">Resume automatic</button>
</form>
{% endif %}
</div>
</div>
{% endblock %}