mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2025-10-29 17:25:32 +00:00
151 lines
3.9 KiB
Plaintext
151 lines
3.9 KiB
Plaintext
{{/* .common
|
|
type CommonReihenData struct {
|
|
Years []int
|
|
Places []*dbmodels.Place
|
|
Letters []string
|
|
Agents []*dbmodels.Agent
|
|
}
|
|
|
|
.result
|
|
type SeriesListResult struct {
|
|
Series []*dbmodels.Series
|
|
Entries map[string]*dbmodels.Entry // <-- Key is Entry.ID
|
|
EntriesSeries map[string][]*dbmodels.REntriesSeries // <-- Key is Series.ID
|
|
|
|
// Only on agent request
|
|
Agent *dbmodels.Agent
|
|
EntriesAgents map[string][]*dbmodels.REntriesAgents // <-- Key is Entry.ID
|
|
|
|
// Only on search request
|
|
IDSeries []*dbmodels.Series
|
|
AltSeries []*dbmodels.Series
|
|
|
|
// Only on place request
|
|
Place *dbmodels.Place
|
|
}
|
|
|
|
// Parameters:
|
|
.letter
|
|
.search
|
|
.hidden
|
|
|
|
.record
|
|
.record.Image(Path)
|
|
.record.Text
|
|
|
|
.startpage
|
|
*/}}
|
|
|
|
{{ $model := . }}
|
|
{{ if and .startpage .record }}
|
|
{{ template "hero" . }}
|
|
{{ end }}
|
|
|
|
|
|
<!-- INFO: 1. Container -->
|
|
<div x-data="{ search : '{{ $model.search }}' }" :class="search ? 'searchfilter' : ''">
|
|
<!-- INFO: 2. Header -->
|
|
<div id="pageheading" class="headingcontainer">
|
|
<h1 class="heading">Bände nach Reihentiteln</h1>
|
|
{{ template "notifier" . }}
|
|
|
|
{{ if not (or .search .hidden) }}
|
|
<div class="mt-2">
|
|
{{ template "alphabet" Dict "active" .letter "letters" $model.common.Letters "search" .search }}
|
|
</div>
|
|
{{ else }}
|
|
<div class="mt-2 border-b w-full"></div>
|
|
{{ end }}
|
|
</div>
|
|
|
|
<!-- INFO: 2. Breite Anzeige -->
|
|
<div
|
|
class="{{ if or .search .hidden }}
|
|
container-normal
|
|
{{ else }}
|
|
container-oversize
|
|
{{ end }} mt-4">
|
|
{{ if not (or .search .hidden) }}
|
|
{{ template "filter" . }}
|
|
{{ end }}
|
|
|
|
|
|
<!-- INFO: 3. Treffer -->
|
|
<div id="searchcontent" class="font-serif">
|
|
{{ if and .search $model.result.IDSeries }}
|
|
<div class="mb-1 max-w-[60rem] hyphens-auto">
|
|
{{ range $id, $r := $model.result.IDSeries }}
|
|
{{ template "_reihe" (Arr $r $model.result.Entries $model.result.EntriesSeries true false false) }}
|
|
{{ end }}
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ if $model.result.Series }}
|
|
<div class="mb-1 max-w-[60rem] hyphens-auto">
|
|
{{ range $id, $r := $model.result.Series }}
|
|
{{ template "_reihe" (Arr $r $model.result.Entries $model.result.EntriesSeries false false
|
|
false)
|
|
}}
|
|
{{ end }}
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ if and .search $model.result.AltSeries }}
|
|
{{ if $model.result.IDSeries }}
|
|
<div class="border-b text-sm font-sans text-right pb-0.5">
|
|
Treffer in Almanach-Nummer ↑
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ if $model.result.Series }}
|
|
<div class="border-b text-sm font-sans text-right pb-0.5">
|
|
Treffer in Reihentiteln ↑
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ if not (or $model.result.Series $model.result.IDSeries) }}
|
|
<div class="border-b text-sm font-sans text-right pb-0.5">
|
|
Keine Treffer im Reihentitel
|
|
<i class="ri-forbid-line inline-bloc -mr-0.5"></i>
|
|
</div>
|
|
{{ end }}
|
|
<div class="border-t mb-1.5 text-sm font-sans text-right pt-0.5">
|
|
Treffer in allen Feldern (inkl. Anmerkungen & Verweise) ↓
|
|
</div>
|
|
<div class="mb-1 max-w-[60rem] hyphens-auto">
|
|
{{ range $id, $r := $model.result.AltSeries }}
|
|
{{ template "_reihe" (Arr $r $model.result.Entries $model.result.EntriesSeries false true true) }}
|
|
{{ end }}
|
|
</div>
|
|
{{ end }}
|
|
{{ if not (or $model.result.Series $model.result.AltSeries $model.result.IDSeries) }}
|
|
<div class="mt-8">
|
|
Keine Reihen
|
|
{{ if .search }}für {{ .search }}{{ end }}
|
|
gefunden.
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ if $model.search }}
|
|
<script type="module">
|
|
let elements = document.querySelectorAll('.reihen-text');
|
|
let mark_instance = new Mark(elements);
|
|
// INFO: we wait a little bit before marking, to settle everything
|
|
setTimeout(() => {
|
|
mark_instance.mark('{{ $model.search }}', {
|
|
"seperateWordSearch": true,
|
|
});
|
|
}, 200);
|
|
</script>
|
|
{{ end }}
|
|
|
|
|
|
<!-- INFO: Ende 3. Treffer -->
|
|
</div>
|
|
|
|
<!-- INFO: Ende 2. Breite Anzeige -->
|
|
</div>
|
|
|
|
<!-- INFO: Ende 1. Container -->
|
|
</div>
|