mirror of
				https://github.com/Theodor-Springmann-Stiftung/musenalm.git
				synced 2025-10-31 18:25:33 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			205 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			6.0 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>
 | |
| 		<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 align-middle bg-slate-200 px-2 font-sans text-sm py-0.5 rounded mx-1
 | |
| 						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 -}}
 | 
