{{ $model := . }}
{ if (value !== '' && value !== null && value !== undefined) { params.set(key, value); } }); return `/baende/results/?${params.toString()}`; }, buildPageUrl(overrides = {}) { const params = new URLSearchParams(); const next = { search: this.search, letter: this.selectedLetter, status: this.status, person: this.person, user: this.user, year: this.year, place: this.place, sort: this.sortField, order: this.sortOrder, offset: this.offset, ...overrides, }; Object.entries(next).forEach(([key, value]) => { if (value !== '' && value !== null && value !== undefined) { params.set(key, value); } }); const query = params.toString(); return query ? `/baende/?${query}` : '/baende/'; }, applyFilter(overrides = {}, indicator = 'body') { Object.entries(overrides).forEach(([key, value]) => { this[key] = value; }); this.offset = 0; this.hasMore = true; const url = this.buildResultsUrl(); htmx.ajax('GET', url, { target: '#baenderesults', swap: 'outerHTML', indicator, }); }, clearFilters() { this.status = ''; this.person = ''; this.user = ''; this.year = ''; this.place = ''; }, closeOtherDropdowns(current) { document.querySelectorAll('details').forEach((d) => { if (d !== current) d.open = false; }); }, changeSort(field) { if (this.sortField === field) { this.sortOrder = this.sortOrder === 'asc' ? 'desc' : 'asc'; } else { this.sortField = field; this.sortOrder = 'asc'; } this.offset = 0; this.hasMore = true; const params = new URLSearchParams(); params.set('sort', this.sortField); params.set('order', this.sortOrder); params.set('offset', 0); this.appendFilters(params); if (this.search) { params.set('search', this.search); } if (this.selectedLetter) { params.set('letter', this.selectedLetter); } const queryString = params.toString(); htmx.ajax('GET', `/baende/results/?${queryString}`, { target: '#baenderesults', swap: 'outerHTML', indicator: 'body' }); }, updateUrl() { const params = new URLSearchParams(); params.set('offset', this.offset); params.set('sort', this.sortField); params.set('order', this.sortOrder); this.appendFilters(params); if (this.search) { params.set('search', this.search); } if (this.selectedLetter) { params.set('letter', this.selectedLetter); } const query = params.toString(); const newUrl = query ? `/baende/?${query}` : '/baende/'; window.history.replaceState(null, '', newUrl); }, loadMoreUrl() { const params = new URLSearchParams(); params.set('offset', this.offset); params.set('sort', this.sortField); params.set('order', this.sortOrder); this.appendFilters(params); if (this.search) { params.set('search', this.search); } if (this.selectedLetter) { params.set('letter', this.selectedLetter); } return `/baende/more/?${params.toString()}`; } }" @htmx:after-swap.window=" if ($event.detail.target && $event.detail.target.id === 'baenderesults') { const responseUrl = $event.detail.xhr?.responseURL || window.location.href; const params = new URL(responseUrl).searchParams; sortField = params.get('sort') || sortField; sortOrder = params.get('order') || sortOrder; status = params.get('status') || ''; person = params.get('person') || ''; user = params.get('user') || ''; year = params.get('year') || ''; place = params.get('place') || ''; search = params.get('search') || ''; selectedLetter = params.get('letter') || ''; updateUrl(); } " class="container-normal font-sans mt-10">

Bände A–Z

Alle
{{- range $_, $ch := $model.letters -}} {{ $ch }} {{- end -}}
Alle {{- range $_, $s := $model.filter_statuses -}} {{ $s.label }} {{- end -}}
Alle
{{- range $_, $u := $model.filter_users -}} {{ $u.Name }} {{- end -}}
Alle
{{- range $_, $y := $model.filter_years -}} {{- $label := $y -}} {{- if eq $y 0 -}}{{- $label = "ohne Jahr" -}}{{- end -}} {{ $label }} {{- end -}}
Alle
{{- range $_, $p := $model.filter_places -}} {{ $p.Name }} {{- end -}}
Spalten
{{ if $model.current_count }}{{ $model.current_count }} / {{ end }}{{ if $model.total_count }}{{ $model.total_count }}{{ else }}{{ len $model.result.Entries }}{{ end }} Bände
{{ template "_baende_table" $model }}
Band löschen?
Lade Informationen …