mirror of
				https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
				synced 2025-10-31 18:05:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {{- /* Places overview page body */ -}}
 | |
| <div class="grid grid-cols-1 lg:grid-cols-4 gap-6">
 | |
| 	{{- /* Main content */ -}}
 | |
| 	<div class="lg:col-span-3">
 | |
| 		{{- /* Places grid */ -}}
 | |
| 		{{ if .model.Places }}
 | |
| 			<div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4 mt-6">
 | |
| 				{{ range $placeID := .model.Sorted }}
 | |
| 					{{ $place := index $.model.Places $placeID }}
 | |
| 					{{ template "_place_card" $place }}
 | |
| 				{{ end }}
 | |
| 			</div>
 | |
| 		{{ else }}
 | |
| 			<div class="bg-slate-50 rounded-lg p-8 text-center mt-6">
 | |
| 				<div class="text-slate-500 mb-2">
 | |
| 					<svg class="w-12 h-12 mx-auto mb-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
 | |
| 						<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"/>
 | |
| 						<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"/>
 | |
| 					</svg>
 | |
| 				</div>
 | |
| 				<h3 class="text-lg font-medium text-slate-900 mb-2">Keine Orte gefunden</h3>
 | |
| 				<p class="text-slate-600">Es wurden keine Orte in der Datenbank gefunden.</p>
 | |
| 			</div>
 | |
| 		{{ end }}
 | |
| 	</div>
 | |
| 
 | |
| 	{{- /* Sidebar */ -}}
 | |
| 	<div class="lg:col-span-1 sticky top-0 self-start">
 | |
| 		<div class="bg-slate-50 p-6 filter-sidebar">
 | |
| 			<h1 class="text-2xl font-bold text-slate-800 mb-4">Orte</h1>
 | |
| 
 | |
| 			<p class="text-slate-600 mb-6">
 | |
| 				Verzeichnis aller in der Zeitung erwähnten Orte und Lokalitäten
 | |
| 			</p>
 | |
| 
 | |
| 			{{- /* Search Filter */ -}}
 | |
| 			<div class="mb-4">
 | |
| 				<generic-filter
 | |
| 					placeholder="Ortsnamen eingeben..."
 | |
| 					item-selector="[data-place-name]"
 | |
| 					search-attributes="data-place-name,data-modern-name"
 | |
| 					count-selector="[data-filter-count]"
 | |
| 					item-type="Orte"
 | |
| 					item-type-singular="Ort">
 | |
| 				</generic-filter>
 | |
| 			</div>
 | |
| 
 | |
| 			<div class="text-sm text-slate-700 mb-4" data-filter-count>
 | |
| 				Alle Orte ({{ len .model.Places }})
 | |
| 			</div>
 | |
| 		</div>
 | |
| 
 | |
| 		{{- /* Statistics */ -}}
 | |
| 		<div class="bg-slate-50 border border-slate-200 rounded-lg p-4 mt-4">
 | |
| 			<div class="text-sm text-slate-700 space-y-2">
 | |
| 				<div class="flex justify-between">
 | |
| 					<span>Orte gesamt:</span>
 | |
| 					<span class="font-medium">{{ len .model.Places }}</span>
 | |
| 				</div>
 | |
| 				<div class="flex justify-between">
 | |
| 					<span>Beiträge mit Ort:</span>
 | |
| 					<span class="font-medium">{{ .model.TotalPiecesWithPlaces }}</span>
 | |
| 				</div>
 | |
| 				{{- if .model.SelectedPlace -}}
 | |
| 					<div class="flex justify-between">
 | |
| 						<span>Beiträge hier:</span>
 | |
| 						<span class="font-medium">{{ len .model.SelectedPlace.Pieces }}</span>
 | |
| 					</div>
 | |
| 				{{- end -}}
 | |
| 			</div>
 | |
| 		</div>
 | |
| 	</div>
 | |
| </div> | 
