mirror of
https://github.com/prdlk/glance.git
synced 2026-08-02 09:21:39 +00:00
77 lines
3.2 KiB
YAML
77 lines
3.2 KiB
YAML
- type: custom-api
|
|
title: Personal Events
|
|
cache: 15m
|
|
url: http://glances-ical-api:8076/events
|
|
parameters:
|
|
url: https://calendar.google.com/calendar/ical/prnk28%40gmail.com/public/basic.ics
|
|
limit: 5
|
|
template: |
|
|
{{ $events := .JSON.Array "events" }}
|
|
{{ $count := len $events }}
|
|
{{ $limit := 3 }} <!-- how many upcoming to show before collapse -->
|
|
|
|
{{ if eq $count 0 }}
|
|
<div style="padding:8px 10px; border-radius:10px; background:var(--surface-2);">
|
|
No entries found.
|
|
</div>
|
|
{{ end }}
|
|
|
|
<!-- 1) Ongoing first (never collapsible) -->
|
|
<ul class="list list-gap-10">
|
|
{{ range $i, $e := $events }}
|
|
{{ $ongoing := $e.Bool "ongoing" }}
|
|
{{ if $ongoing }}
|
|
{{ $start := $e.String "start" | parseTime "rfc3339" }}
|
|
{{ $end := $e.String "end" | parseTime "rfc3339" }}
|
|
{{ $name := $e.String "name" }}
|
|
{{ $url := $e.String "url" }}
|
|
<li>
|
|
<div class="flex items-center justify-between gap-10">
|
|
<!-- Left: name (highlight) + absolute date -->
|
|
<div>
|
|
{{ if $url }}
|
|
<a class="size-h3 color-highlight block text-truncate" href="{{ $url }}" target="_blank" rel="noreferrer" title="{{ $name }}">{{ $name }}</a>
|
|
{{ else }}
|
|
<span class="size-h3 color-highlight block text-truncate" title="{{ $name }}">{{ $name }}</span>
|
|
{{ end }}
|
|
<div style="font-size:.85em;">{{ $start | formatTime "Mon, 02 Jan 2006" }}</div>
|
|
</div>
|
|
<!-- Right: relative time until END -->
|
|
<div class="size-h3 color-primary" style="white-space:nowrap;">
|
|
ends <span {{ $end | toRelativeTime }}></span>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
{{ end }}
|
|
{{ end }}
|
|
</ul>
|
|
|
|
<!-- 2) Upcoming, collapsible after $limit -->
|
|
{{ $shown := 0 }}
|
|
<ul class="list list-gap-10 collapsible-container" data-collapse-after="{{ $limit }}">
|
|
{{ range $i, $e := $events }}
|
|
{{ $ongoing := $e.Bool "ongoing" }}
|
|
{{ if not $ongoing }}
|
|
{{ $start := $e.String "start" | parseTime "rfc3339" }}
|
|
{{ $name := $e.String "name" }}
|
|
{{ $url := $e.String "url" }}
|
|
<li {{ if ge $shown $limit }}class="collapsible-item"{{ end }}>
|
|
<div class="flex items-center justify-between gap-10">
|
|
<!-- Left: name (highlight) + absolute date -->
|
|
<div>
|
|
{{ if $url }}
|
|
<a class="size-h3 color-highlight block text-truncate" href="{{ $url }}" target="_blank" rel="noreferrer" title="{{ $name }}">{{ $name }}</a>
|
|
{{ else }}
|
|
<span class="size-h3 color-highlight block text-truncate" title="{{ $name }}">{{ $name }}</span>
|
|
{{ end }}
|
|
<div style="font-size:.85em;">{{ $start | formatTime "Mon, 02 Jan 2006" }}</div>
|
|
</div>
|
|
<!-- Right: relative time until START -->
|
|
<div class="size-h3 color-primary" style="white-space:nowrap;" {{ $start | toRelativeTime }}></div>
|
|
</div>
|
|
</li>
|
|
{{ $shown = add $shown 1 }}
|
|
{{ end }}
|
|
{{ end }}
|
|
</ul>
|