Notfifications /reihen

This commit is contained in:
Simon Martens
2025-02-21 17:02:16 +01:00
parent ca1320608f
commit 0d79239fd8
9 changed files with 214 additions and 93 deletions

View File

@@ -1,9 +1,7 @@
{{ $model := . }}
{{ if $model.letters }}
<div
class="flex flex-row border-b px-3 border-zinc-300 items-end min-h-14"
x-data="{ search : '{{ $model.search }}' }">
<div class="flex flex-row border-b px-3 border-zinc-300 items-end min-h-14">
<div id="alphabet" class="alphabet flex flex-row items-end text-xl">
{{ range $id, $r := .letters }}
<a
@@ -23,10 +21,7 @@
<div class="flex-grow"></div>
<div
class="min-w-[22.5rem] max-w-96 flex flex-row bg-stone-50 relative"
:class="search ?
'activesearch' : ''">
<div class="min-w-[22.5rem] max-w-96 flex flex-row bg-stone-50 relative">
<div class="pb-0">
<i class="ri-search-line"></i><i class="-ml-0.5 inline-block ri-arrow-right-s-line"></i>
</div>
@@ -36,14 +31,16 @@
type="search"
name="search"
value="{{ $model.search }}"
x-model="search"
placeholder="Almanach-Nr oder Suchbegriff"
x-model="search"
hx-get=""
hx-trigger="input changed delay=1000ms, keyup[key=='Enter']"
hx-trigger="input changed delay=500ms, keyup[key=='Enter']"
hx-sync="this:replace"
hx-select="#searchcontent"
hx-target="#searchcontent"
autocomplete="off" />
autocomplete="off"
{{ if $model.active }}autofocus="true"{{ end }}
{{ if $model.search }}disabled="true"{{ end }} />
</div>
<div id="permalink" class="font-serif ml-3 min-w-7 pb-1">
<a

View File

@@ -1,9 +1,10 @@
{{ $model := index . 0 }}
{{ $r := index . 1 }}
{{ $showidseries := index . 2 }}
{{ $markar := index . 3 }}
{{ $r := index . 0 }}
{{ $entries := index . 1 }}
{{ $relations := index . 2 }}
{{ $showidseries := index . 3 }}
{{ $markar := index . 4 }}
{{ $bds := index $model.relations $r.Id }}
{{ $bds := index $relations $r.Id }}
<div class="flex flex-row mb-1.5">
@@ -18,7 +19,7 @@
<div class="font-sans text-sm px-2 py-1 bg-stone-100 searchable my-0.5">
Almanach-Nr.
<span class="reihen-text">
{{ (index $model.entries
{{ (index $entries
$rel.Entry).MusenalmID
}}
</span>
@@ -41,20 +42,7 @@
</div>
<div></div>
<div class="ml-3">
{{ if $bds }}
{{ range $_, $rel := $bds }}
{{ $bd := index $model.entries $rel.Entry }}
{{ if $bd }}
<a href="/almanach/{{ $bd.MusenalmID }}">
{{ if ne $bd.Year 0 }}
{{ $bd.Year }}
{{ else }}
[o.J.]
{{ end }} </a
>&ensp;
{{ end }}
{{ end }}
{{ end }}
{{ template "_reiherelations" (Arr $r $bds $entries false) }}
</div>
</div>
</div>

View File

@@ -0,0 +1,22 @@
{{ $reihe := index . 0 }}
{{ $rels := index . 1 }}
{{ $entries := index . 2 }}
{{ $shownos := index . 3 }}
{{ if $rels }}
{{ range $_, $rel := $rels }}
{{ $bd := index $entries $rel.Entry }}
{{ if $bd }}
<a href="/almanach/{{ $bd.MusenalmID }}">
{{ if ne $bd.Year 0 }}
{{ $bd.Year }}
{{ else }}
[o.J.]
{{ end }} </a
>&ensp;
{{ if $shownos }}
{{ $bd.MusenalmID }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}

View File

@@ -1,6 +1,24 @@
{{ if .series }}
{{ .series.Title }}
<div>
{{ Safe .series.Annotation }}
{{ $model := . }}
{{ $r := $model.series }}
<div class="flex flex-col font-serif mt-16">
<div class="grow-0 max-w-[48rem]">
<div>
<span class="font-bold">{{ $r.Title }}</span>
{{ if $r.References }}
<div class="text-sm font-sans px-2 py-1 ml-2 bg-stone-100 w-max inline-block">
{{ $r.References }}
</div>
{{ end }}
</div>
{{ if $r.Annotation }}
<div class="max-w-[48rem]">
<span class="">{{ Safe $r.Annotation }}</span>
</div>
{{ end }}
<div class="">
{{ template "_reiherelations" (Arr $r $model.relations $model.entries true) }}
</div>
</div>
{{ end }}
</div>

View File

@@ -1,76 +1,157 @@
{{ $model := . }}
<div id="pageheading" class="headingcontainer">
<h1 class="heading">Bände nach Reihentiteln</h1>
<div class="mt-2">
{{ template "_alphabet" Dict "active" .letter "letters" .letters "search" .search }}
<div x-data="{ search : '{{ $model.search }}' }" :class="search ? 'searchfilter' : ''">
<div id="pageheading" class="headingcontainer">
<h1 class="heading">Bände nach Reihentiteln</h1>
<div class="flex flex-row justify-center ">
{{ if .letter }}
<div class="notifier" x-show="!search">
<i class="ri-sort-alphabet-asc"></i>
<span class="filtercategory">Alle Reihen</span> &middot;
<span class="">Anfangsbuchstabe <span class="filterterm">{{ .letter }}</span></span>
</div>
{{ end }}
<div class="notifier" x-show="search">
<i class="ri-search-line"></i>
<span class="filtercategory">Suche</span>
&middot; <span class="filterterm" x-text="search"></span>
</div>
{{ if .a }}
<div class="notifier" x-show="!search">
{{ if .a.CorporateBody }}
<i class="ri-team-line"></i>
<span class="filtercategory">Verlag, Druckerei oder Vertrieb</span> &middot;
{{ else }}
<i class="ri-user-line"></i>
<span class="filtercategory">Herausgeber:in</span> &middot;
{{ end }}
<span class="filterterm">{{ .a.Name }}</span>
</div>
{{ end }}
{{ if .p }}
<div class="notifier" x-show="!search">
<i class="ri-map-pin-line"></i>
<span class="filtercategory">Erscheinungsort</span> &middot;
<span class="filterterm">{{ .p.Name }}</span>
</div>
{{ end }}
{{ if .year }}
<div class="notifier" x-show="!search">
<i class="ri-calendar-line"></i>
<span class="filtercategory">Geltungsjahr</span> &middot;
<span class="filterterm">{{ .year }}</span>
</div>
{{ end }}
{{ if not .letter }}
<div class="notifier ml-2" x-show="!search">
<a href="/reihen" class="no-underline">
<i class="ri-arrow-left-long-line"></i> Alle Reihen anzeigen
</a>
</div>
{{ end }}
<div class="notifier ml-2" x-show="search">
<a href="/reihen" class="no-underline">
<i class="ri-arrow-left-long-line"></i> Alle Reihen anzeigen
</a>
</div>
</div>
{{ if not .search }}
<div class="mt-2">
{{ template "_alphabet" Dict "active" .letter "letters" .letters "search" .search }}
</div>
{{ else }}
<div class="mt-2 border-b border-zinc-300 w-full"></div>
{{ end }}
</div>
</div>
</div>
<div class="mt-6">
{{ template "_reihenfilter" . }}
</div>
<div id="searchcontent" class="font-serif">
{{ if $model.search }}
<script type="module">
let elements = document.querySelectorAll('.reihen-text');
let mark_instance = new Mark(elements);
// INFO: we wait a little bit before marking, to settle everything
setTimeout(() => {
mark_instance.mark('{{ $model.search }}', {
"seperateWordSearch": true,
});
}, 200);
</script>
{{ if not .search }}
<div class="mt-8">
{{ template "_reihenfilter" . }}
</div>
{{ else }}
<div class="mt-8 w-full"></div>
{{ end }}
<div class="-ml-16">
{{ if and .search .idseries }}
<div class="mb-1 max-w-[60rem] hyphens-auto">
{{ range $id, $r := .idseries }}
{{ template "_reihe" (Arr $model $r true false) }}
{{ end }}
</div>
<div id="searchcontent" class="font-serif">
{{ if $model.search }}
<script type="module">
let elements = document.querySelectorAll('.reihen-text');
let mark_instance = new Mark(elements);
// INFO: we wait a little bit before marking, to settle everything
setTimeout(() => {
mark_instance.mark('{{ $model.search }}', {
"seperateWordSearch": true,
});
}, 200);
</script>
{{ end }}
{{ if .series }}
<div class="mb-1 max-w-[60rem] hyphens-auto">
{{ range $id, $r := .series }}
{{ template "_reihe" (Arr $model $r false false) }}
{{ end }}
</div>
{{ end }}
{{ if and .search .altseries }}
{{ if .idseries }}
<div class="border-b text-sm font-sans text-right pb-0.5">
Treffer in Almanach-Nummer &uarr;
<div class="-ml-16">
{{ if and .search .idseries }}
<div class="mb-1 max-w-[60rem] hyphens-auto">
{{ range $id, $r := .idseries }}
{{ template "_reihe" (Arr $r $model.entries $model.relations true false) }}
{{ end }}
</div>
{{ end }}
{{ if .series }}
<div class="border-b text-sm font-sans text-right pb-0.5">
Treffer in Reihentiteln &uarr;
<div class="mb-1 max-w-[60rem] hyphens-auto">
{{ range $id, $r := .series }}
{{ template "_reihe" (Arr $r $model.entries $model.relations false false) }}
{{ end }}
</div>
{{ end }}
<div class="border-t mb-1.5 text-sm font-sans text-right pt-0.5">
Treffer in allen Feldern (Anmerkungen, Verweisen etc.) &darr;
</div>
<div class="mb-1 max-w-[60rem] hyphens-auto">
{{ range $id, $r := .altseries }}
{{ template "_reihe" (Arr $model $r false true) }}
{{ if and .search .altseries }}
{{ if .idseries }}
<div class="border-b text-sm font-sans text-right pb-0.5">
Treffer in Almanach-Nummer &uarr;
</div>
{{ end }}
{{ if .series }}
<div class="border-b text-sm font-sans text-right pb-0.5">
Treffer in Reihentiteln &uarr;
</div>
{{ end }}
{{ if not (or .series .idseries) }}
<div class="border-b text-sm font-sans text-right pb-0.5">
Keine Treffer im Reihentitel
<i class="ri-forbid-line inline-bloc -mr-0.5"></i>
</div>
{{ end }}
<div class="border-t mb-1.5 text-sm font-sans text-right pt-0.5">
Treffer in allen Feldern (Anmerkungen, Verweisen etc.) &darr;
</div>
<div class="mb-1 max-w-[60rem] hyphens-auto">
{{ range $id, $r := .altseries }}
{{ template "_reihe" (Arr $r $model.entries $model.relations false true) }}
{{ end }}
</div>
{{ end }}
</div>
{{ if not (or .series .altseries .idseries) }}
<div class="mt-8">
Keine Reihen
{{ if .search }}für {{ .search }}{{ end }}
gefunden.
</div>
{{ end }}
</div>
{{ if not (or .series .altseries .idseries) }}
<div class="mt-8">
Keine Reihen
{{ if .search }}für {{ .search }}{{ end }}
gefunden.
</div>
{{ end }}
</div>