From 8089570d56870cadd1c5fb534de4b5893e43c8d0 Mon Sep 17 00:00:00 2001 From: IK Date: Mon, 21 Sep 2026 20:43:31 +0700 Subject: [PATCH] feat: add media review search field --- apps/web/src/pages/admin/media.astro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/web/src/pages/admin/media.astro b/apps/web/src/pages/admin/media.astro index 5fb475b..0f14704 100644 --- a/apps/web/src/pages/admin/media.astro +++ b/apps/web/src/pages/admin/media.astro @@ -10,7 +10,7 @@ const apiUrl = import.meta.env.PUBLIC_API_URL || "http://localhost:8000";

Публикация требует явной причины и атомарно сохраняет fallback для rollback. Токен хранится только в памяти страницы.

- +
@@ -45,7 +45,7 @@ const apiUrl = import.meta.env.PUBLIC_API_URL || "http://localhost:8000"; async function load() { if (!root || !list || !filters) return; error?.setAttribute("hidden", ""); list.innerHTML = loading(); list.setAttribute("aria-busy", "true"); - const values = new FormData(filters); const params = new URLSearchParams({limit:"51", offset:String(offset)}); for (const key of ["entity_type", "media_role", "status"]) { const value = String(values.get(key) || ""); if (value) params.set(key, value); } + const values = new FormData(filters); const params = new URLSearchParams({limit:"51", offset:String(offset)}); for (const key of ["q", "entity_type", "media_role", "status"]) { const value = String(values.get(key) || "").trim(); if (value) params.set(key, value); } const response = await fetch(`${root.dataset.apiUrl}/api/v1/admin/media/catalog?${params}`, {headers:{Authorization:`Bearer ${token}`} }); if (!response.ok) { if (adminEndsSession(response.status)) endSession(); throw new Error(adminErrorMessage(response.status, "Не удалось загрузить медиатеку.")); } const rows: Record[] = await response.json(); keepSession(); list.removeAttribute("aria-busy");