summaryrefslogtreecommitdiff
path: root/web/templates/partials/ics-feeds.html
blob: 4ee1ad6c9abd1a7ae57dc1dfb1b8ea28205b5443 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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}}