{{define "partials/gallery_htmx.html"}} {{template "partials/thumbnail_grid.html" .}} {{/* OOB sidebar update: replaces #sidebar-inner with current page's tags/folders */}} {{/* OOB status line so the match count reflects the new search */}} {{/* OOB search warning so a filter value outside its closed vocabulary is flagged on every search */}}
{{if .SearchWarning}}{{.SearchWarning}}{{end}}
{{/* OOB footer cell so the "N hidden images in the current search" tracks the new search */}} {{with .HiddenByCeiling}}::{{.}} hidden {{plural . "image" "images"}} in the current search{{end}} {{/* OOB toolbar: keeps the Actions chooser button in sync with the current search. Without this, the toolbar rendered on full-page load goes stale on every htmx swap. */}}
{{template "partials/save_search_area.html" .}}
{{/* OOB chooser body: the dialog wrapper itself isn't swapped (so an open dialog stays open), but its entries are conditional on .Query / .Result.Total and would go stale on HTMX search updates without this. */}}
{{template "partials/batch_actions_body.html" .}}
{{/* OOB footer timer: the layout's "page loaded in N ms" sits outside #gallery-grid, so without an OOB swap it keeps showing the original full-page load number across every htmx search and pagination. */}} {{pageLoadMs .RequestStart}} {{end}}