mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2025-10-29 01:05:32 +00:00
180 lines
5.5 KiB
Plaintext
180 lines
5.5 KiB
Plaintext
{{ $model := . }}
|
|
{{/* .result:
|
|
type AlmanachResult struct {
|
|
Entry *dbmodels.Entry
|
|
Agent *dbmodels.Agent
|
|
Entries map[string]*dbmodels.Entry
|
|
Places []*dbmodels.Place
|
|
Series []*dbmodels.Series
|
|
Contents []*dbmodels.Content
|
|
Agents map[string]*dbmodels.Agent // <- Key is agent id
|
|
EntriesSeries map[string]*dbmodels.REntriesSeries // <- Key is series id
|
|
EntriesAgents []*dbmodels.REntriesAgents
|
|
ContentsAgents map[string][]*dbmodels.RContentsAgents // <- Key is content id
|
|
|
|
|
|
CInfoByCollection map[string]*dbmodels.CollectionInfo
|
|
CInfoByContent map[int][]*dbmodels.CollectionInfo
|
|
}
|
|
|
|
|
|
.parameters {
|
|
Sort string
|
|
MusenalmID string
|
|
PersonFilter string
|
|
TitleFilter string
|
|
EntryFilter string
|
|
TypeFilter []string
|
|
Scanfilter bool
|
|
}
|
|
*/}}
|
|
|
|
|
|
<div id="breadcrumbs">
|
|
{{- range $i, $s := $model.result.Series -}}
|
|
<div>
|
|
<div class="{{ if $i -}}opacity-0 pointer-events-none select-none{{- end -}}">
|
|
<a href="/reihen/?letter={{- First $s.Title -}}" class="">Reihen</a>
|
|
<i class="ri-arrow-right-wide-line"></i>
|
|
</div>
|
|
<div>
|
|
<a href="/reihe/{{- $s.MusenalmID -}}">{{ $s.Title }}</a>
|
|
</div>
|
|
<div>
|
|
{{- if $model.result.Entry.Year -}}
|
|
<i class="ri-arrow-right-wide-line"></i> <b>{{ $model.result.Entry.Year }}</b>
|
|
{{- else -}}
|
|
<i class="ri-arrow-right-wide-line"></i> <b>[o. J.]</b>
|
|
{{- end -}}
|
|
</div>
|
|
<div class="grow"></div>
|
|
{{- if not $i -}}
|
|
<div class="backbutton">
|
|
<a href="/reihen/?letter=A" class="no-underline">
|
|
<i class="ri-arrow-left-long-line"></i> Alle Bände nach Reihentiteln
|
|
</a>
|
|
</div>
|
|
{{- end -}}
|
|
</div>
|
|
{{- end -}}
|
|
</div>
|
|
|
|
{{ template "entrydata" $model }}
|
|
|
|
{{- if $model.result.Contents | len -}}
|
|
<div class="container-oversize mt-0 pt-0" id="almanachcontents">
|
|
<div class="flex relative justify-center">
|
|
<div class="-translate-y-[50%] flex flex-col items-center">
|
|
<h2 class="relative bg-stone-50 px-5 font-bold text-3xl w-max mb-1">Inhalt</h2>
|
|
<div class="flex flex-row justify-center">
|
|
<div class="bg-stone-200 text-sm px-3 py-0.5 rounded mt-1">
|
|
{{- if $model.filters.Type -}}
|
|
{{- $i := len $model.result.Contents -}}
|
|
{{- if eq $i 1 -}}
|
|
<b>{{- $i }}</b> Beitrag der Kategorie <b>{{ $model.filters.Type }}</b> ·
|
|
{{- else -}}
|
|
<b>{{- $i }}</b> Beiträge der Kategorie <b>{{ $model.filters.Type }}</b> ·
|
|
{{- end -}}
|
|
{{- else if $model.filters.OnlyScans -}}
|
|
<i class="ri-image-line"></i>
|
|
{{- $i := len $model.result.Contents -}}
|
|
{{- if eq $i 1 -}}
|
|
<b>{{- $i }} Digitalisat · </b>
|
|
{{- else -}}
|
|
<b>{{- $i }} Digitalisate ·</b>
|
|
{{- end -}}
|
|
{{- else -}}
|
|
{{- if eq (len $model.result.Contents) 1 -}}
|
|
<b>{{- len $model.result.Contents }}</b> erfasster Beitrag ·
|
|
{{- else -}}
|
|
<b>{{- len $model.result.Contents }}</b> erfasste Beiträge ·
|
|
{{- end -}}
|
|
{{- end -}}
|
|
<i class="ri-sort-number-asc"></i> Anzeige nach Reihenfolge
|
|
</div>
|
|
{{- if or $model.filters.Type $model.filters.OnlyScans -}}
|
|
<div class="flex flex-row items-center justify-center ml-2.5">
|
|
<div class="block bg-stone-200 text-sm px-3 py-0.5 rounded mt-1">
|
|
<i class="ri-arrow-left-long-line"></i>
|
|
<a
|
|
href="./"
|
|
hx-target="#almanachcontents"
|
|
hx-select="#almanachcontents"
|
|
hx-swap="outerHTML show:none"
|
|
hx-indicator="body">
|
|
Alle Beiträge anzeigen
|
|
</a>
|
|
</div>
|
|
</div>
|
|
{{- end -}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="flex flex-row justify-end">
|
|
{{- if gt (len $model.result.Types) 1 -}}
|
|
<div>
|
|
<form
|
|
method="GET"
|
|
hx-boost="false"
|
|
x-target="almanachcontents"
|
|
aria-label="Filter für Beitragstypen">
|
|
<label
|
|
for="typefilter"
|
|
class="align-baseline h-min self-end pb-1 mr-1.5 text-sm font-sans text-stone-700">
|
|
Kategorie
|
|
</label>
|
|
<select
|
|
class="h-min pb-1 border-b-4 border-zinc-300 px-1.5 mr-8"
|
|
name="typefilter"
|
|
id="typefilter"
|
|
autocomplete="off"
|
|
@change.debounce="$el.form.requestSubmit()">
|
|
<option value="">Alle</option>
|
|
{{- range $i, $t := $model.result.Types -}}
|
|
<option
|
|
value="{{- $t -}}"
|
|
{{- if eq $model.filters.Type $t -}}selected{{- end -}}>
|
|
{{- $t -}}
|
|
</option>
|
|
{{- end -}}
|
|
</select>
|
|
<button x-show="false">Filtern</button>
|
|
</form>
|
|
</div>
|
|
{{- end -}}
|
|
{{- if $model.result.HasScans -}}
|
|
<div>
|
|
<form
|
|
method="GET"
|
|
hx-boost="false"
|
|
x-target="almanachcontents"
|
|
aria-label="Filter für digialisierte Beiträge">
|
|
<label
|
|
for="onlyscans"
|
|
class="align-baseline h-min self-end pb-1 mr-1.5 text-sm font-sans text-stone-700">
|
|
Nur Digitalisate anzeigen
|
|
</label>
|
|
<input
|
|
class=""
|
|
type="checkbox"
|
|
id="onlyscans"
|
|
name="onlyscans"
|
|
autocomplete="off"
|
|
@change.debounce="$el.form.requestSubmit()"
|
|
{{ if $model.filters.OnlyScans -}}checked{{- end -}} />
|
|
<button x-show="false">Filtern</button>
|
|
</form>
|
|
</div>
|
|
{{- end -}}
|
|
</div>
|
|
<div class="mt-8">
|
|
{{- range $i, $c := $model.result.Contents -}}
|
|
{{- $rels := index $model.result.ContentsAgents $c.Id -}}
|
|
{{- template "_content" Arr $c $model.result.Entry $rels $model.result.Agents -}}
|
|
{{- end -}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{- end -}}
|