summaryrefslogtreecommitdiff
path: root/web/templates/partials/ics-feeds.html
diff options
context:
space:
mode:
Diffstat (limited to 'web/templates/partials/ics-feeds.html')
-rw-r--r--web/templates/partials/ics-feeds.html43
1 files changed, 43 insertions, 0 deletions
diff --git a/web/templates/partials/ics-feeds.html b/web/templates/partials/ics-feeds.html
new file mode 100644
index 0000000..4ee1ad6
--- /dev/null
+++ b/web/templates/partials/ics-feeds.html
@@ -0,0 +1,43 @@
+{{define "ics-feed-list"}}
+<div id="ics-feed-list" class="space-y-3">
+ {{if .Feeds}}
+ {{range .Feeds}}
+ <div class="flex flex-wrap items-center gap-3 p-3 rounded-lg border border-white/10 bg-white/5">
+ <div class="flex-1 min-w-0">
+ <div class="flex items-center gap-2">
+ <span class="text-white {{if not .Enabled}}opacity-50{{end}}">{{.Name}}</span>
+ {{if not .Enabled}}<span class="text-xs text-white/40">(off)</span>{{end}}
+ </div>
+ <div class="text-xs text-white/40 truncate">{{.URL}}</div>
+ <div class="text-xs mt-1 {{if .LastError}}text-red-400{{else}}text-white/40{{end}}">
+ {{if .LastError}}
+ Failed: {{.LastError}}
+ {{else}}
+ {{.EventCount}} events ยท last checked {{.LastFetched}}
+ {{end}}
+ </div>
+ </div>
+ <form hx-post="/settings/ics-feeds/{{.ID}}/toggle" hx-target="#ics-feed-list" hx-swap="outerHTML">
+ <input type="hidden" name="enabled" value="{{if .Enabled}}false{{else}}true{{end}}">
+ <button type="submit" class="text-xs px-3 py-1.5 rounded-lg bg-white/10 hover:bg-white/20 text-white/70 hover:text-white transition-colors">
+ {{if .Enabled}}Disable{{else}}Enable{{end}}
+ </button>
+ </form>
+ <button class="text-xs px-3 py-1.5 rounded-lg border border-red-500/30 text-red-400 hover:bg-red-500/10 transition-colors"
+ hx-delete="/settings/ics-feeds/{{.ID}}"
+ hx-target="#ics-feed-list"
+ hx-swap="outerHTML"
+ hx-confirm="Remove {{.Name}}? Its events disappear from the timeline.">
+ Remove
+ </button>
+ </div>
+ {{end}}
+ {{else}}
+ <p class="text-sm text-white/40">
+ No calendar feeds yet. Paste an .ics or webcal:// link below โ€” published
+ schedules (sports fixtures, school terms, bin collections) are almost
+ always distributed this way.
+ </p>
+ {{end}}
+</div>
+{{end}}