Files
musenalm/views/routes/almanach/components/contents.gohtml
Simon Martens 6be9663617 small changes
2025-06-01 02:03:38 +02:00

81 lines
3.5 KiB
Plaintext

{{ $model := . }}
<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> &middot;
{{- else -}}
<b>{{- $i }}</b> Beiträge der Kategorie <b>{{ $model.filters.Type }}</b> &middot;
{{- end -}}
{{- else if $model.filters.OnlyScans -}}
<i class="ri-image-line"></i>&nbsp;
{{- $i := len $model.result.Contents -}}
{{- if eq $i 1 -}}
<b>{{- $i }} Digitalisat &middot; </b>
{{- else -}}
<b>{{- $i }} Digitalisate &middot;</b>
{{- end -}}
{{- else -}}
{{- if eq (len $model.result.Contents) 1 -}}
<b>{{- len $model.result.Contents }}</b> erfasster Beitrag &middot;
{{- else -}}
<b>{{- len $model.result.Contents }}</b> erfasste Beiträge &middot;
{{- 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>
<form method="GET" hx-boost="false" x-target="almanachcontents" aria-label="Filter für Beitragstypen">
<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" @change.debounce="$el.form.requestSubmit()">
<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>
<button x-show="false">Filtern</button>
</form>
</div>
{{- end -}}
{{- if $model.result.HasScans -}}
<div>
<form method="GET" hx-boost="false" x-target="almanachcontents" aria-label="Filter für digialisierte Beiträge">
<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" @change.debounce="$el.form.requestSubmit()" {{ if $model.filters.OnlyScans -}}checked{{- end -}} />
<button x-show="false">Filtern</button>
</form>
</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>