mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-30 09:35:31 +00:00
map
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
{{- /* Places overview page body */ -}}
|
||||
<div class="grid grid-cols-1 lg:grid-cols-4 gap-6">
|
||||
<div class="grid grid-cols-1 lg:grid-cols-7 gap-8">
|
||||
{{- /* Main content - Places list */ -}}
|
||||
<div class="lg:col-span-3">
|
||||
<div class="lg:col-span-5">
|
||||
{{- /* Places list */ -}}
|
||||
{{ if .model.Places }}
|
||||
<div class="bg-white border border-slate-200 rounded-lg mt-6">
|
||||
<div class="bg-white mt-6">
|
||||
{{ range $placeID := .model.Sorted }}
|
||||
{{ $place := index $.model.Places $placeID }}
|
||||
{{ $pieceCount := index $.model.PlacePieceCounts $placeID }}
|
||||
@@ -20,7 +20,7 @@
|
||||
<div class="block p-4 hover:bg-slate-50 transition-colors duration-200 cursor-pointer">
|
||||
<div class="flex items-start justify-between gap-2">
|
||||
<div class="flex-1 min-w-0">
|
||||
<h3 class="font-medium text-slate-800 mb-1 truncate">
|
||||
<h3 class="font-bold text-slate-800 mb-1 truncate">
|
||||
{{ if $place.Names }}
|
||||
{{ index $place.Names 0 }}
|
||||
{{ else }}
|
||||
@@ -41,6 +41,24 @@
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="flex-shrink-0 flex items-center gap-2">
|
||||
<!-- External links -->
|
||||
{{ if ne $geonames nil }}
|
||||
{{ if ne $geonames.WikipediaURL "" }}
|
||||
<a href="https://{{ $geonames.WikipediaURL }}" target="_blank" class="hover:opacity-80 transition-opacity no-underline" title="Wikipedia" onclick="event.stopPropagation()">
|
||||
<img src="/assets/wikipedia.png" alt="Wikipedia" class="w-5 h-5">
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if and (ne $geonames.Lat "") (ne $geonames.Lng "") }}
|
||||
<a href="https://www.openstreetmap.org/?mlat={{ $geonames.Lat }}&mlon={{ $geonames.Lng }}&zoom=12" target="_blank" class="hover:opacity-80 transition-opacity no-underline" title="OpenStreetMap" onclick="event.stopPropagation()">
|
||||
<i class="ri-map-pin-line text-base text-green-600"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ if $place.Geo }}
|
||||
<a href="{{ $place.Geo }}" target="_blank" class="hover:opacity-80 transition-opacity no-underline" title="Geonames" onclick="event.stopPropagation()">
|
||||
<i class="ri-global-line text-base text-blue-600"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
<span class="inline-flex items-center px-2 py-1 text-xs font-medium bg-slate-100 text-slate-700 rounded">
|
||||
{{ $pieceCount }}
|
||||
</span>
|
||||
@@ -65,49 +83,34 @@
|
||||
</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>
|
||||
|
||||
<div class="lg:col-span-2 sticky top-0 self-start">
|
||||
{{- /* Top Section - Title, Description, Search */ -}}
|
||||
<div class="bg-slate-50 p-6 border-b border-slate-200 filter-sidebar">
|
||||
<h1 class="text-2xl font-bold text-slate-800 mb-2">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 class="flex items-center gap-4">
|
||||
<div class="flex-1">
|
||||
<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="flex items-center text-sm font-bold text-slate-700 whitespace-nowrap" data-filter-count></div>
|
||||
</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>
|
||||
{{- /* Bottom Section - Map */ -}}
|
||||
<div class="bg-white p-6">
|
||||
<places-map data-places="{{ .model.PlacesJSON }}" class="w-full"></places-map>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user