Веб-UI: темы, навигация API, статистика и доработки API
- Шапка: логотип Kubernetes, ссылка на главную, выпадающее меню API (Swagger/ReDoc/Health), переключатель светлой/тёмной темы (localStorage). - Светлая тема в синей гамме; выравнивание кнопки темы в ряду с пилюлями. - Дашборд: единая карточка ошибки health/stats, подсказка Docker/Podman, поле container_cli в GET /stats, total_workers_from_meta всегда число (0 без meta). - Правки кластеров, job_store, compose, документация и частичные шаблоны.
This commit is contained in:
+16
-1
@@ -61,7 +61,7 @@ templates = Jinja2Templates(directory=str(_templates_dir))
|
||||
|
||||
@app.get("/", response_class=HTMLResponse, summary="Веб-интерфейс")
|
||||
async def dashboard(request: Request) -> HTMLResponse:
|
||||
"""Главная страница с формой создания и таблицей кластеров."""
|
||||
"""Главная страница: обзор, сводка по узлам, таблица кластеров."""
|
||||
if not _templates_dir.is_dir():
|
||||
return HTMLResponse(
|
||||
content="<p>Шаблоны не найдены. Ожидается каталог app/templates/</p>",
|
||||
@@ -75,6 +75,21 @@ async def dashboard(request: Request) -> HTMLResponse:
|
||||
)
|
||||
|
||||
|
||||
@app.get("/cluster-create", response_class=HTMLResponse, summary="Создание кластера и задания")
|
||||
async def cluster_create_page(request: Request) -> HTMLResponse:
|
||||
"""Форма создания кластера, прогресс и список последних заданий."""
|
||||
if not _templates_dir.is_dir():
|
||||
return HTMLResponse(
|
||||
content="<p>Шаблоны не найдены. Ожидается каталог app/templates/</p>",
|
||||
status_code=500,
|
||||
)
|
||||
return templates.TemplateResponse(
|
||||
request,
|
||||
"cluster_create.html",
|
||||
{"app_title": settings.app_title, "nav_active": "cluster_create"},
|
||||
)
|
||||
|
||||
|
||||
@app.get("/ui", include_in_schema=False)
|
||||
async def ui_redirect() -> RedirectResponse:
|
||||
"""Удобный алиас на корень UI."""
|
||||
|
||||
Reference in New Issue
Block a user