Add HTML5 setup SSE updates
This commit is contained in:
@@ -1038,7 +1038,13 @@ def render_html5_project_setup(*, project_id: str, projects: Iterable[object], s
|
||||
sources = getattr(setup, "import_sources", []) or []
|
||||
source_cards = "".join(_import_source_card(source) for source in sources)
|
||||
content = f"""
|
||||
<main class="workspace setup-workspace" data-html5-page="setup" data-project-id="{escape(project_id)}">
|
||||
<main
|
||||
class="workspace setup-workspace"
|
||||
data-html5-page="setup"
|
||||
data-project-id="{escape(project_id)}"
|
||||
hx-ext="sse"
|
||||
sse-connect="/html5/projects/{quote(project_id)}/setup/events"
|
||||
>
|
||||
{_topbar(project_id, project_nav)}
|
||||
<section class="setup-layout">
|
||||
<aside class="panel">
|
||||
@@ -1187,7 +1193,7 @@ def render_html5_import_check(project_id: str, check: object | None = None) -> s
|
||||
def render_html5_import_job(project_id: str, job: object | None = None) -> str:
|
||||
if job is None:
|
||||
return f"""
|
||||
<div class="import-job" data-html5-import-job>
|
||||
<div class="import-job" data-html5-import-job sse-swap="setup-import-job" hx-swap="outerHTML">
|
||||
<div class="panel-title flush">Фоновый импорт</div>
|
||||
<p class="muted padded">Фоновая задача импорта для проекта {escape(project_id)} еще не запускалась.</p>
|
||||
</div>
|
||||
@@ -1199,14 +1205,14 @@ def render_html5_import_job(project_id: str, job: object | None = None) -> str:
|
||||
source = str(payload.get("source") or "")
|
||||
stage = str(payload.get("stage") or "")
|
||||
logs = payload.get("logs") if isinstance(payload.get("logs"), list) else []
|
||||
poll = ' hx-trigger="every 2s" hx-swap="outerHTML"' if status in {"QUEUED", "RUNNING"} else ""
|
||||
logs_html = "".join(f"<li>{escape(str(item))}</li>" for item in logs[-6:])
|
||||
return f"""
|
||||
<div
|
||||
class="import-job"
|
||||
data-html5-import-job
|
||||
hx-get="/html5/projects/{quote(project_id)}/setup/jobs/{quote(job_id)}"
|
||||
{poll}
|
||||
sse-swap="setup-import-job"
|
||||
hx-swap="outerHTML"
|
||||
>
|
||||
<div class="panel-title flush">Фоновый импорт</div>
|
||||
<div class="check-head">
|
||||
@@ -1231,7 +1237,7 @@ def render_html5_setup_summary(project_id: str, setup: object) -> str:
|
||||
class="setup-summary"
|
||||
data-html5-setup-summary
|
||||
hx-get="/html5/projects/{quote(project_id)}/setup/summary"
|
||||
hx-trigger="every 5s"
|
||||
sse-swap="setup-summary"
|
||||
hx-swap="outerHTML"
|
||||
>
|
||||
<div class="section-title">
|
||||
|
||||
Reference in New Issue
Block a user