mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2025-10-29 17:25:32 +00:00
190 lines
5.8 KiB
Plaintext
190 lines
5.8 KiB
Plaintext
{{/* .result:
|
|
type AgentResult struct {
|
|
Agent *dbmodels.Agent
|
|
|
|
BResult []*dbmodels.Series // Sorted
|
|
Entries map[string]*dbmodels.Entry // KEY: Entry ID
|
|
EntriesSeries map[string][]*dbmodels.REntriesSeries // KEY: Series ID
|
|
EntriesAgents map[string][]*dbmodels.REntriesAgents // KEY: Entry ID
|
|
|
|
CResult []*dbmodels.Entry /// Sorted
|
|
Contents map[string][]*dbmodels.Content // KEY: entry ID
|
|
ContentsAgents map[string][]*dbmodels.RContentsAgents // KEY: Content ID
|
|
Agents map[string]*dbmodels.Agent // KEY: Agent ID
|
|
}
|
|
*/}}
|
|
|
|
{{ $model := . }}
|
|
|
|
|
|
<div id="breadcrumbs">
|
|
<div>
|
|
<div>
|
|
<a href="/personen?letter={{- First $model.result.Agent.Name -}}">Personen & Körperschaften</a>
|
|
<i class="ri-arrow-right-wide-line"></i> <b>{{ $model.result.Agent.Name }}</b>
|
|
</div>
|
|
<div class="backbutton">
|
|
<a href="/personen/" class="no-underline"> <i class="ri-arrow-left-long-line"></i> Alle Personen & Körperschaften </a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container-normal font-serif mt-12">
|
|
{{ if $model.result.Agent.CorporateBody }}
|
|
<div class="font-sans">
|
|
<i class="ri-team-line"></i>
|
|
<span class="filtercategory">Körperschaft</span>
|
|
</div>
|
|
{{ else }}
|
|
<div class="font-sans">
|
|
<i class="ri-user-line"></i>
|
|
<span class="filtercategory">Person</span>
|
|
</div>
|
|
{{ end }}
|
|
<h1 class="text-3xl font-bold">{{ $model.result.Agent.Name }}</h1>
|
|
{{- if $model.result.Agent.Pseudonyms -}}
|
|
<p class="italic">
|
|
auch:
|
|
<span class="">{{ $model.result.Agent.Pseudonyms }}</span>
|
|
</p>
|
|
{{- end -}}
|
|
<div>
|
|
<span class="">
|
|
{{ $model.result.Agent.BiographicalData }}
|
|
</span>
|
|
{{- if $model.result.Agent.References }}
|
|
<span class="inline-block bg-stone-200 px-2 mx-1 font-sans text-sm rounded align-middle">
|
|
{{ $model.result.Agent.References }}
|
|
</span>
|
|
{{ end }}
|
|
<span class="">
|
|
{{- $arr := $model.result.Agent.ProfessionArray -}}
|
|
{{- if $arr -}}
|
|
{{- range $i, $p := $arr -}}
|
|
<a
|
|
href="/personen/?letter={{- Upper (First $model.result.Agent.Name) -}}&filter={{ Lower $p }}#{{- $model.result.Agent.Id -}}"
|
|
class="inline-block bg-slate-200 px-2 text-sm font-sans rounded mx-1 align-middle
|
|
hover:text-slate-900 no-underline">
|
|
{{- $p -}}
|
|
</a>
|
|
{{- end -}}
|
|
{{- end -}}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
{{- if .result.BResult -}}
|
|
<div class="container-normal flex flex-col font-serif mt-7">
|
|
<h2 class=" font-sans flex flex-row items-center gap-x-3 mb-6">
|
|
<div class="-ml-0.5">
|
|
<i class="ri-book-line"></i>
|
|
{{ if eq $model.result.LenEntries 1 }}
|
|
<b>Ein Band</b>
|
|
{{- else }}
|
|
<b>{{- $model.result.LenEntries }}</b>
|
|
Bände
|
|
{{- end }}
|
|
in
|
|
{{- if eq $model.result.LenSeries 1 }}
|
|
<b>einer Reihe</b>
|
|
{{- else }}
|
|
<b>{{ $model.result.LenSeries }}</b> Reihen
|
|
{{- end }}
|
|
</div>
|
|
|
|
{{- if len $model.result.CResult -}}
|
|
<div>·</div>
|
|
<div class="flex flex-row py-1 items-center text-base">
|
|
<i class="ri-arrow-down-double-line mr-1"></i>
|
|
<a class="" href="#almanachcontents">Beiträge</a>
|
|
<div
|
|
class="inline-block mx-2 text-xs bg-slate-800 text-white font-bold px-1.5 py-0.5
|
|
rounded">
|
|
{{- $model.result.LenContents -}}
|
|
</div>
|
|
</div>
|
|
{{- end -}}
|
|
</h2>
|
|
<div class="flex flex-col gap-y-6 mb-6">
|
|
{{ range $id, $r := .result.BResult }}
|
|
<div class="grow-0 max-w-[48rem]">
|
|
<div>
|
|
<span class="font-bold">{{ $r.Title }}</span>
|
|
</div>
|
|
{{ if $r.Annotation }}
|
|
<div class="max-w-[48rem]">
|
|
<span class="">{{ Safe $r.Annotation }}</span>
|
|
</div>
|
|
{{ end }}
|
|
<div class="">
|
|
{{- $bds := index $model.result.EntriesSeries $r.Id -}}
|
|
{{ template "personreiherelations" (Arr $r $bds $model.result.Entries true
|
|
$model.result.EntriesAgents)
|
|
}}
|
|
</div>
|
|
</div>
|
|
{{ end }}
|
|
</div>
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{- if len $model.result.CResult -}}
|
|
<div class="container-normal mt-12 pt-0" id="almanachcontents">
|
|
<div class="font-sans flex flex-row gap-x-3 mb-8">
|
|
<div>
|
|
<i class="ri-article-line"></i>
|
|
{{ if eq $model.result.LenContents 1 }}
|
|
<b>Ein Beitrag</b>
|
|
{{- else }}
|
|
<b>{{- $model.result.LenContents }}</b>
|
|
Beiträge
|
|
{{- end }}
|
|
in
|
|
{{- if eq (len $model.result.CResult) 1 }}
|
|
<b>einem Band</b>
|
|
{{- else }}
|
|
<b>{{ len $model.result.CResult }}</b> Bänden
|
|
{{- end }}
|
|
</div>
|
|
<div>·</div>
|
|
<div>
|
|
<input type="checkbox" id="showall" autocomplete="off" />
|
|
<label for="showall" class="cursor-pointer select-none ml-1">Alle anzeigen</label>
|
|
<script type="module">
|
|
entriestabs?.hookupShowAll(showall);
|
|
{{- if eq (len $model.result.CResult) 1 -}}
|
|
entriestabs?.showAll();
|
|
showall?.checked = true;
|
|
showall?.disabled = true;
|
|
{{- end -}}
|
|
</script>
|
|
</div>
|
|
</div>
|
|
<div class="mt-8">
|
|
<tab-list id="entriestabs">
|
|
{{- range $_, $e := $model.result.CResult -}}
|
|
{{- $contents := index $model.result.Contents $e.Id -}}
|
|
<div
|
|
class="font-serif flex flex-row justify-between hover:text-slate-900 text-stone-600
|
|
font-bold border-b pb-0.5 mb-2 tab-list-head items-end">
|
|
<div>
|
|
{{ $e.PreferredTitle }}
|
|
<i class="ri-arrow-right-s-fill show-closed"></i>
|
|
<i class="ri-arrow-down-s-fill show-opened"></i>
|
|
</div>
|
|
<div class="inline-block font-sans bg-slate-800 text-white h-max text-sm px-1.5 rounded">
|
|
{{- len $contents -}}
|
|
</div>
|
|
</div>
|
|
<div class="mb-7 hidden tab-list-panel">
|
|
{{- range $i, $c := $contents -}}
|
|
{{- $rels := index $model.result.ContentsAgents $c.Id -}}
|
|
{{- template "_content" Arr $c $e $rels $model.result.Agents false true -}}
|
|
{{- end -}}
|
|
</div>
|
|
{{- end -}}
|
|
</tab-list>
|
|
</div>
|
|
</div>
|
|
{{- end -}}
|