mirror of
				https://github.com/Theodor-Springmann-Stiftung/musenalm.git
				synced 2025-11-03 19:55:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			210 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			210 lines
		
	
	
		
			6.2 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">
 | 
						|
					const tablist = document.getElementById("entries-tabs");
 | 
						|
					const checkbox = document.getElementById("showall");
 | 
						|
					{{- if eq (len $model.result.CResult) 1 -}}
 | 
						|
						if (checkbox) {
 | 
						|
							if (tablist) {
 | 
						|
								tablist.showAll();
 | 
						|
							}
 | 
						|
							checkbox.checked = true;
 | 
						|
							checkbox.disabled = true;
 | 
						|
						}
 | 
						|
					{{- else -}}
 | 
						|
					if (tablist && checkbox) {
 | 
						|
						checkbox.addEventListener("change", () => {
 | 
						|
							if (checkbox && checkbox.checked) {
 | 
						|
								tablist.showAll();
 | 
						|
							} else {
 | 
						|
								tablist.default();
 | 
						|
							}
 | 
						|
						});
 | 
						|
					}
 | 
						|
					{{- end -}}
 | 
						|
				</script>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
		<div class="mt-8">
 | 
						|
			<tab-list id="entries-tabs">
 | 
						|
				{{- 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 -}}
 |