Abschluss einfache Inhaltsuche

This commit is contained in:
Simon Martens
2025-03-01 04:48:47 +01:00
parent 8bc1fdb79c
commit 64c24480ca
8 changed files with 226 additions and 18 deletions

View File

@@ -140,14 +140,15 @@
{{- template "_fieldscript" -}}
{{- if $model.parameters.IsBeitraegeSearch -}}
<div class="cotents" id="searchresult">
<div class="cotents" id="searchresults">
{{- if $model.result.Hits -}}
{{ template "_filterlist" $model }}
{{- end -}}
<div class="container-normal">
<div class="container-normal" id="subresults">
{{ template "tablehead" $model }}
{{ template "pills" $model }}
{{- if $model.result.Hits -}}
<div class="mt-8" id="almanachcontents">
{{- range $_, $hit := $model.result.Hits -}}

View File

@@ -0,0 +1,38 @@
{{ $model := . }}
{{- $isFiltered := or $model.filters.Agent $model.filters.Year $model.filters.Type
$model.filters.OnlyScans
-}}
{{- if $isFiltered -}}
<div class="flex flex-row gap-x-3" id="searchpills">
{{- if $model.filters.Agent -}}
<filter-pill
data-queryparam="agentfilter"
data-value="{{ $model.filters.Agent }}"
data-text="Person">
</filter-pill>
{{- end -}}
{{- if $model.filters.Year -}}
<filter-pill
data-queryparam="yearfilter"
data-value="{{ $model.filters.Year }}"
data-text="Jahr">
</filter-pill>
{{- end -}}
{{- if $model.filters.Type -}}
<filter-pill
data-queryparam="typefilter"
data-value="{{ $model.filters.Type }}"
data-text="Typ">
</filter-pill>
{{- end -}}
{{- if $model.filters.OnlyScans -}}
<filter-pill
data-queryparam="onlyscans"
data-value="{{ $model.filters.OnlyScans }}"
data-text="Nur Digitalisate">
</filter-pill>
{{- end -}}
</div>
{{- end -}}

View File

@@ -63,11 +63,12 @@
id="onlyscans"
name="onlyscans"
autocomplete="off"
hx-get="{{- $model.parameters.ToQueryParamsBeitraege -}}"
hx-get="{{- $model.parameters.ToQueryParamsBeitraege -}} {{- $model.filters.ToQueryParamsWOScans -}}"
trigger="change"
hx-push-url="true"
hx-select="main"
hx-target="main"
hx-select="#searchresults"
hx-target="#searchresults"
hx-swap="outerHTML"
{{ if $model.filters.OnlyScans -}}checked{{- end -}} />
<label
@@ -82,11 +83,12 @@
name="sort"
id="sort"
autocomplete="off"
hx-get="{{- $model.parameters.ToQueryParamsBeitraege -}}"
hx-get="{{- $model.parameters.ToQueryParamsBeitraege -}}{{- $model.filters.ToQueryParams -}}"
trigger="change"
hx-push-url="true"
hx-select="main"
hx-target="main">
hx-select="#subresults"
hx-target="#subresults"
hx-swap="outerHTML show:window:top">
<option
value="year"
{{ if eq $model.parameters.Sort "year" -}}

View File

@@ -3,21 +3,24 @@
{{- $isFiltered := or $model.filters.Agent $model.filters.Year $model.filters.Type -}}
<div class="container-oversize " x-data="{ filters: '{{- $isFiltered -}}' }">
<div class="container-oversize ">
<button
class="w-full flex flex-row bg-slate-100 py-3 border-2 border-slate-100 hover:border-slate-900
cursor-pointer box-content hover:[&>_h2]:font-slate-900 select-none"
@click="filters = !filters">
id="filterlistbtn">
<h2 class="text-2xl text-stone-700 px-32">
Filter
<i class="ri-arrow-right-s-line" x-show="!filters"></i>
<i class="ri-arrow-down-s-line" x-show="filters"></i>
<i class="ri-arrow-right-s-line show-closed"></i>
<i class="ri-arrow-down-s-line show-opened"></i>
</h2>
</button>
<div
class="flex flex-row px-24 justify-between bg-slate-100 py-12 border-t-4 border-stone-50"
id="searchfilter"
x-show="filters">
class="flex flex-row px-24 justify-between bg-slate-100 py-12 border-t-4 border-stone-50 {{ if
$isFiltered
}}
hidden
{{ end }}"
id="searchfilter">
<div class="w-[30%] grow-0 shrink-0">
<filter-list
class=""
@@ -48,6 +51,30 @@
</div>
<script type="module">
let button = document.getElementById("filterlistbtn");
let filter = document.getElementById("searchfilter");
if (button && filter) {
toggleFilter();
if (button && filter) {
button.addEventListener("click", () => {
toggleFilter();
});
}
function toggleFilter() {
if (filter.classList.contains("hidden")) {
filter.classList.remove("hidden");
button.querySelector(".show-closed").classList.add("hidden");
button.querySelector(".show-opened").classList.remove("hidden");
} else {
filter.classList.add("hidden");
button.querySelector(".show-closed").classList.remove("hidden");
button.querySelector(".show-opened").classList.add("hidden");
}
}
}
let agentList = document.getElementById("agent-list");
if (agentList) {
agentList.items = {{ $model.result.AgentsList }};