fix(ui): исправить раздвоение интерфейса при htmx-фильтрации
Проблема: htmx через hx-target="#scans-table-container" получал полную HTML-страницу (с <html>, <nav>, <head>) и вставлял её внутрь существующей страницы → дублировался header. Решение: шаблоны разделены на полные + фрагменты: - _scans_table.html — только filter-bar + таблица + пагинация - _packages_table.html — аналогично - web/routes.py: проверка HX-Request хедера → отдаём фрагмент
This commit is contained in:
@@ -76,8 +76,10 @@ async def scans_list(
|
||||
scans = (await session.execute(q)).scalars().all()
|
||||
total = await session.scalar(count_q)
|
||||
|
||||
template = "_scans_table.html" if request.headers.get("HX-Request") else "scans_list.html"
|
||||
|
||||
return _render(
|
||||
"scans_list.html",
|
||||
template,
|
||||
scans=scans,
|
||||
page=page,
|
||||
per_page=per_page,
|
||||
@@ -136,8 +138,10 @@ async def packages_list(
|
||||
total = await session.scalar(total_q)
|
||||
rows = (await session.execute(rows_q)).all()
|
||||
|
||||
template = "_packages_table.html" if request.headers.get("HX-Request") else "packages_list.html"
|
||||
|
||||
return _render(
|
||||
"packages_list.html",
|
||||
template,
|
||||
packages=rows,
|
||||
page=page,
|
||||
per_page=per_page,
|
||||
|
||||
Reference in New Issue
Block a user