mirror of
				https://github.com/Theodor-Springmann-Stiftung/musenalm.git
				synced 2025-10-31 10:15:32 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			174 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			5.3 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>
 | |
| 						<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"
 | |
| 							hx-get="./"
 | |
| 							trigger="change"
 | |
| 							hx-indicator="body"
 | |
| 							hx-select="#almanachcontents"
 | |
| 							hx-target="#almanachcontents"
 | |
| 							hx-swap="outerHTML show:none">
 | |
| 							<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>
 | |
| 					</div>
 | |
| 				{{- end -}}
 | |
| 				{{- if $model.result.HasScans -}}
 | |
| 					<div>
 | |
| 						<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"
 | |
| 							hx-get="./"
 | |
| 							trigger="change"
 | |
| 							hx-select="#almanachcontents"
 | |
| 							hx-target="#almanachcontents"
 | |
| 							hx-swap="outerHTML show:none"
 | |
| 							hx-indicator="body"
 | |
| 							{{ if $model.filters.OnlyScans -}}checked{{- end -}} />
 | |
| 					</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 -}}
 | 
