Einzelbeitragsansicht

This commit is contained in:
Simon Martens
2025-02-28 00:00:37 +01:00
parent caaf86f90d
commit ebe2a68d35
9 changed files with 377 additions and 90 deletions

View File

@@ -60,13 +60,26 @@
{{ template "entrydata" $model }}
<div class="container-oversize" id="almanachcontents">
{{- range $i, $c := $model.result.Contents -}}
{{- $rels := index $model.result.ContentsAgents $c.Id -}}
{{- $coll := index $model.result.CInfoByContent $c.MusenalmID -}}
{{- if and $coll (index $coll 0) -}}
{{- end -}}
{{- template "_content" Arr $c $model.result.Entry $rels $model.result.Agents -}}
{{- end -}}
</div>
{{- 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="bg-stone-200 text-sm px-3 py-0.5 rounded mt-1">
<b>{{- len $model.result.Contents }}</b> erfasste Beiträge &middot;
<i class="ri-sort-number-asc"></i> Anzeige nach Reihenfolge
</div>
</div>
</div>
<div class="flex justify-center"></div>
<div class="mt-8">
{{- range $i, $c := $model.result.Contents -}}
{{- $rels := index $model.result.ContentsAgents $c.Id -}}
{{- $coll := index $model.result.CInfoByContent $c.MusenalmID -}}
{{- if and $coll (index $coll 0) -}}
{{- end -}}
{{- template "_content" Arr $c $model.result.Entry $rels $model.result.Agents -}}
{{- end -}}
</div>
</div>
{{- end -}}

View File

@@ -15,13 +15,14 @@
{{ $isFra := false }}
{{ $isEng := false }}
{{- $hasContents := len $model.result.Contents -}}
<div class="container-oversize mt-12">
<div class="container-oversize mt-12 pb-0 mb-0">
<div class="pb-1.5 ml-32"><i class="ri-book-line"></i> Almanach</div>
<div class=" border relative pt-0">
<div class="ml-32 relative pt-2 bg-stone-50 mt-0 w-max flex flex-col"></div>
<div class="container-normal !py-8" id="">
<div class="flex flex-col" id="entrydata">
<div class="pt-0 {{ if $hasContents -}}contentsentrydata{{- end -}}" id="entrydata">
<div class="container-normal !py-8">
<div class="flex flex-col">
<div class="entryrow">
<div class="fieldlabel">Almanach-Nummer</div>
<div class="fieldvalue">{{ $model.result.Entry.MusenalmID }}</div>

View File

@@ -0,0 +1,64 @@
{{- $model := . }}
{{/* type BeitragResult struct {
Entry *dbmodels.Entry
Places []*dbmodels.Place
Series []*dbmodels.Series
Content *dbmodels.Content
Agents map[string]*dbmodels.Agent // <- Key is agent id
EntriesSeries map[string]*dbmodels.REntriesSeries // <- Key is series id
EntriesAgents []*dbmodels.REntriesAgents
ContentsAgents []*dbmodels.RContentsAgents // <- Key is content id
}
*/}}
<div id="breadcrumbs">
<div>
<div class="">Almanache <i class="ri-arrow-right-wide-line"></i></div>
<div>
<a href="/almanach/{{- $model.result.Entry.MusenalmID -}}">
{{- $model.result.Entry.PreferredTitle -}}
</a>
</div>
<div>
<i class="ri-arrow-right-wide-line"></i>Beitrag Nr.
<b>{{ $model.result.Content.MusenalmID }}</b>
</div>
<div class="grow"></div>
<div class="backbutton">
<a href="/almanach/{{- $model.result.Entry.MusenalmID -}}" class="no-underline">
<i class="ri-arrow-left-long-line"></i> Zum Almanach
</a>
</div>
</div>
</div>
<div class="container-normal mt-12 flex flex-col font-serif">
<div class="font-sans"><i class="ri-article-line"></i> Einzelbeitrag</div>
<h1 class="text-3xl font-bold">
{{ $model.result.Entry.PreferredTitle }},
{{ if $model.result.Content.Extent -}}
S.
{{ $model.result.Content.Extent }}
{{ else -}}
Nr.
{{ $model.result.Content.MusenalmID }}
{{- end -}}
</h1>
<span class="">
{{- $arr := $model.result.Content.MusenalmType -}}
{{- if $arr -}}
{{- range $i, $p := $arr -}}
<span
class="inline-block align-middle bg-slate-200 px-2 font-sans text-sm py-0.5
rounded mx-1 mt-1.5 hover:text-slate-900 no-underline">
{{- $p -}}
</span>
{{- end -}}
{{- end -}}
</span>
<div class="mt-7">
{{- template "_content" Arr $model.result.Content $model.result.Entry $model.result.ContentsAgents $model.result.Agents true -}}
</div>
</div>

View File

@@ -3,6 +3,7 @@
.2 - *Entry
.3 - []*RContentsAgents
.4 - map[string]*Agent
.5 bool SingleView
*/}}
{{- $content := index . 0 -}}
@@ -10,29 +11,48 @@
{{- $rcas := index . 2 -}}
{{- $agents := index . 3 -}}
{{- $singleView := false -}}
{{- if gt (len .) 4 -}}
{{- $singleView = index . 4 -}}
{{- end -}}
<div class="content flex flex-row font-serif" id="{{- $content.Id -}}">
<div class="w-36 shrink-0 grow-0 flex flex-col items-end columnone">
{{- if $content.Extent -}}
<div>
<span class="font-sans text-sm">S. </span>
<b>{{- $content.Extent -}}</b>
</div>
{{- end -}}
{{- if $content.MusenalmType -}}
<div class="flex flex-col gap-y-1 items-end">
{{- range $_, $t := $content.MusenalmType -}}
<div class="font-sans text-sm bg-stone-100 px-1 py-0.5 rounded w-max">
{{- $t -}}
</div>
{{- end -}}
</div>
{{- end -}}
{{- if not $singleView -}}
<div class="w-36 shrink-0 grow-0 flex flex-col items-end columnone">
{{- if $content.Extent -}}
<div>
<span class="font-sans text-sm">S. </span>
<b>{{- $content.Extent -}}</b>
</div>
{{- end -}}
{{- if $content.MusenalmType -}}
<div class="flex flex-col gap-y-1 items-end">
{{- range $_, $t := $content.MusenalmType -}}
<div class="font-sans text-sm bg-stone-100 px-1 py-0.5 rounded w-max">
{{- $t -}}
</div>
{{- end -}}
</div>
{{- end -}}
</div>
{{- end -}}
</div>
<div class="grow columntwo">
<div class="fields">
{{- if $singleView -}}
<div class="fieldlabel">Almanach</div>
<div class="fieldvalue">
<a href="/almanach/{{- $entry.MusenalmID -}}">
{{- $entry.PreferredTitle -}}
</a>
{{- if $content.Extent -}}
, <span class="font-sans text-sm">S. </span>
<b>{{- $content.Extent -}}</b>
{{- end -}}
</div>
{{- end -}}
{{- if $content.TitleStmt -}}
<div class="fieldlabel">Titel</div>
<div class="italic fieldvalue">{{- $content.TitleStmt -}}</div>
@@ -48,17 +68,15 @@
{{- if $rcas -}}
<div class="fieldlabel">Personen</div>
<div class="fieldvalue">
{{- range $_, $rca := $rcas -}}
<div class="flex flex-col gap-y-2">
<div class="flex flex-col">
{{- range $_, $rca := $rcas -}}
{{- $agent := index $agents $rca.Agent -}}
{{- if $agent -}}
<div class="font-sans text-base bg-stone-100 px-1 py-0.5 rounded w-max mb-1">
<a href="/person/{{- $agent.Id -}}">{{- $agent.Name -}}</a>
({{ $agent.BiographicalData -}})
</div>
{{- end -}}
</div>
{{- end -}}
<div class="font-sans text-base bg-stone-100 px-1 py-0.5 rounded w-max">
<a href="/person/{{- $agent.Id -}}">{{- $agent.Name -}}</a>
({{ $agent.BiographicalData -}})
</div>
{{- end -}}
</div>
</div>
{{- end -}}
{{- if $content.Annotation -}}
@@ -72,47 +90,75 @@
</div>
</div>
{{- if not $singleView -}}
{{- $scans := $content.ImagePaths -}}
{{- $slen := len $scans -}}
{{- $double := false -}}
{{- if gt $slen 2 -}}
{{- $double = true -}}
{{- end -}}
<div
class="{{- if $double }}
w-[20rem]
{{- else }}
w-[10rem]
{{- end }} grow-0 shrink-0 columnthree">
{{- if $scans -}}
<div class="{{- if $double -}}grid grid-cols-2{{- end -}}">
{{- range $_, $scan := $scans -}}
<div
class="border-6 hover:border-zinc-400 transition-all duration-75
border-zinc-100 overflow-hidden">
<popup-image data-image-url="{{- $scan -}}">
<img
src="{{- $scan -}}?thumb=300x0"
class="w-36 h-36 object-cover
cursor-pointer" />
</popup-image>
</div>
{{- end -}}
</div>
{{- end -}}
</div>
<div class="w-24 shrink-0 grow-0 items-end flex flex-col columnfour">
<div class="font-sans text-sm bg-stone-100 px-2 font-bold py-0.5 rounded w-max">
<span class="text-xs font-normal pr-1">NR</span>
{{ $content.MusenalmID -}}
</div>
<div class="font-sans py-0.5 text-xs">
<a
href="/beitrag/{{ $content.MusenalmID }}"
class="no-underline rounded bg-stone-100 px-1.5">
Einzelansicht <i class="ri-links-line"></i>
</a>
</div>
</div>
{{- end -}}
</div>
{{- if $singleView -}}
{{- $scans := $content.ImagePaths -}}
{{- $slen := len $scans -}}
{{- $double := false -}}
{{- if gt $slen 2 -}}
{{- $double = true -}}
{{- end -}}
<div
class="{{- if $double }}
w-[20rem]
{{- else }}
w-[10rem]
{{- end }} grow-0 shrink-0 columnthree">
<div class="">
{{- if $scans -}}
<div class="{{- if $double -}}grid grid-cols-2{{- end -}}">
{{- range $_, $scan := $scans -}}
<div class="flex flex-row row-auto gap-4 mt-6 flex-wrap">
{{- range $i, $scan := $scans -}}
<div
class="border-6 hover:border-zinc-400 transition-all duration-75
class="transition-all duration-75
border-zinc-100 overflow-hidden">
<popup-image data-image-url="{{- $scan -}}">
<img
src="{{- $scan -}}?thumb=300x0"
class="w-36 h-36 object-cover
cursor-pointer" />
src="{{- $scan -}}?thumb=0x1000"
class="max-h-[32rem] border-6 hover:border-zinc-400 object-cover cursor-pointer" />
</popup-image>
</div>
{{- end -}}
</div>
{{- end -}}
</div>
<div class="w-24 shrink-0 grow-0 items-end flex flex-col columnfour">
<div class="font-sans text-sm bg-stone-100 px-2 font-bold py-0.5 rounded w-max">
<span class="text-xs font-normal pr-1">NR</span>
{{ $content.MusenalmID -}}
</div>
<div class="font-sans py-0.5 text-xs">
<a
href="/beitreag/{{ $content.MusenalmID }}"
class="no-underline rounded bg-stone-100 px-1.5">
<i class="ri-links-line"></i> Permalink
</a>
</div>
</div>
</div>
{{- end -}}