cestina, UI, UX
This commit is contained in:
+29
-11
@@ -49,7 +49,25 @@ def render_status_pill(status: str | None) -> str:
|
||||
else:
|
||||
class_name = "pill pill-muted"
|
||||
|
||||
return f'<span class="{class_name}">{html.escape(status_value)}</span>'
|
||||
labels = {
|
||||
"running": "běží",
|
||||
"pending": "čeká",
|
||||
"queued": "ve frontě",
|
||||
"in_progress": "probíhá",
|
||||
"starting": "startuje",
|
||||
"success": "úspěšné",
|
||||
"ok": "úspěšné",
|
||||
"succeeded": "úspěšné",
|
||||
"done": "hotovo",
|
||||
"deployed": "nasazeno",
|
||||
"completed": "dokončeno",
|
||||
"failed": "selhalo",
|
||||
"failure": "selhalo",
|
||||
"error": "chyba",
|
||||
"cancelled": "zrušeno",
|
||||
"canceled": "zrušeno",
|
||||
}
|
||||
return f'<span class="{class_name}">{html.escape(labels.get(normalized, status_value))}</span>'
|
||||
|
||||
|
||||
def parse_timestamp(value: str | None) -> datetime | None:
|
||||
@@ -229,14 +247,14 @@ async def deployments_page(
|
||||
<div class="card">
|
||||
<h2>Historie nasazení</h2>
|
||||
<p class="muted">Přehled posledních běhů nasazení a jejich výsledků.</p>
|
||||
<a class="btn" href="/portal">← Zpět na portál</a>
|
||||
<a class="btn" href="/portal/operations">← Zpět na přehled</a>
|
||||
</div>
|
||||
|
||||
<div class="stats-grid">
|
||||
<div class="stat-card stat-total"><span>Total deploys</span><strong>{stats.get("total") or 0}</strong></div>
|
||||
<div class="stat-card stat-danger"><span>Failed deploys</span><strong>{stats.get("failed") or 0}</strong></div>
|
||||
<div class="stat-card stat-warning"><span>Running deploys</span><strong>{stats.get("running") or 0}</strong></div>
|
||||
<div class="stat-card stat-success"><span>Success rate</span><strong>{stats.get("success_rate") or 0}%</strong></div>
|
||||
<div class="stat-card stat-total"><span>Celkem nasazení</span><strong>{stats.get("total") or 0}</strong></div>
|
||||
<div class="stat-card stat-danger"><span>Selhaná nasazení</span><strong>{stats.get("failed") or 0}</strong></div>
|
||||
<div class="stat-card stat-warning"><span>Běžící nasazení</span><strong>{stats.get("running") or 0}</strong></div>
|
||||
<div class="stat-card stat-success"><span>Úspěšnost</span><strong>{stats.get("success_rate") or 0}%</strong></div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
@@ -335,19 +353,19 @@ async def deployment_detail_page(
|
||||
{failed_notice}
|
||||
<p>
|
||||
<a class="btn" href="/portal/deployments">← Zpět na nasazení</a>
|
||||
<a class="btn btn-secondary" href="/portal/apps/{app_url_id}">Detail aplikace</a>
|
||||
<a class="btn btn-secondary" href="/portal/deployments/{html.escape(str(deployment_id))}/logs/raw">Raw logy</a>
|
||||
<a class="btn btn-secondary" href="/portal/apps/{app_url_id}">Detail služby</a>
|
||||
<a class="btn btn-secondary" href="/portal/deployments/{html.escape(str(deployment_id))}/logs/raw">Surové logy</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2>Souhrn</h2>
|
||||
<table>
|
||||
<tr><th>Aplikace</th><td><a href="/portal/apps/{app_url_id}">{app_id}</a></td></tr>
|
||||
<tr><th>Služba</th><td><a href="/portal/apps/{app_url_id}">{app_id}</a></td></tr>
|
||||
<tr><th>Typ</th><td>{kind}</td></tr>
|
||||
<tr><th>Status</th><td>{status}</td></tr>
|
||||
<tr><th>Trigger source</th><td>{trigger_source}</td></tr>
|
||||
<tr><th>Triggered by</th><td>{triggered_by}</td></tr>
|
||||
<tr><th>Zdroj spuštění</th><td>{trigger_source}</td></tr>
|
||||
<tr><th>Spustil</th><td>{triggered_by}</td></tr>
|
||||
<tr><th>Commit author</th><td>{commit_author}</td></tr>
|
||||
<tr><th>Pusher</th><td>{pusher}</td></tr>
|
||||
<tr><th>Spuštěno</th><td>{started_at}</td></tr>
|
||||
|
||||
Reference in New Issue
Block a user