Files
Paperwall/web/templates/settings_weather.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

50 lines
1.9 KiB
HTML

{% extends "base.html" %}
{% block content %}
<h1>Weather</h1>
{% if error %}
<div class="toast error">{{ error }}</div>
{% endif %}
<form method="post">
<div class="card">
<div class="section-label">Location</div>
<p class="hint" style="margin: -0.25rem 0 1rem;">Uses Open-Meteo &mdash; no API key needed.</p>
<div class="field">
<label for="city">City</label>
<input type="text" id="city" name="city" placeholder="e.g. Berlin">
{% if settings.city %}
<p class="hint">Currently: {{ settings.city }} ({{ settings.latitude }}, {{ settings.longitude }})</p>
{% endif %}
</div>
</div>
<div class="card">
<div class="section-label">Forecast</div>
<div class="field">
<label for="forecast_days">Days to show</label>
<select id="forecast_days" name="forecast_days">
<option value="3" {{ "selected" if settings.forecast_days == 3 or not settings.forecast_days }}>3 days</option>
<option value="5" {{ "selected" if settings.forecast_days == 5 }}>5 days</option>
<option value="7" {{ "selected" if settings.forecast_days == 7 }}>7 days</option>
</select>
</div>
</div>
<div class="card">
<div class="section-label">Or enter coordinates manually</div>
<p class="hint" style="margin: -0.25rem 0 1rem;">Leave the city field above empty to use these instead.</p>
<div class="field">
<label for="latitude">Latitude</label>
<input type="text" id="latitude" name="latitude" value="{{ settings.latitude if settings.latitude is not none else '' }}" placeholder="e.g. 52.52">
</div>
<div class="field">
<label for="longitude">Longitude</label>
<input type="text" id="longitude" name="longitude" value="{{ settings.longitude if settings.longitude is not none else '' }}" placeholder="e.g. 13.40">
</div>
</div>
<button type="submit">Save</button>
</form>
{% endblock %}