cestina, UI, UX
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
(() => {
|
||||
if (window.AppFactoryOperationsLive) {
|
||||
if (window.CSBotOperationsLive) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,16 @@
|
||||
const statusBadge = (status) => {
|
||||
const value = String(status || "");
|
||||
const normalized = value.toLowerCase();
|
||||
const labels = {
|
||||
queued: "čeká",
|
||||
running: "běží",
|
||||
cancelled_requested: "žádost o zrušení",
|
||||
cancelled: "zrušeno",
|
||||
success: "úspěšné",
|
||||
failed: "selhalo",
|
||||
ok: "úspěšné",
|
||||
error: "chyba",
|
||||
};
|
||||
let className = "pill pill-muted";
|
||||
if (["success", "ok", "succeeded", "done", "deployed", "completed"].includes(normalized)) {
|
||||
className = "pill pill-success";
|
||||
@@ -27,12 +37,12 @@
|
||||
} else if (["failed", "failure", "error", "cancelled", "canceled"].includes(normalized)) {
|
||||
className = "pill pill-danger";
|
||||
}
|
||||
return `<span class="${className}">${escapeHtml(value)}</span>`;
|
||||
return `<span class="${className}">${escapeHtml(labels[normalized] || value)}</span>`;
|
||||
};
|
||||
|
||||
const workerBadge = (online) => online
|
||||
? '<span class="pill pill-success">ONLINE</span>'
|
||||
: '<span class="pill pill-danger">OFFLINE</span>';
|
||||
? '<span class="pill pill-success">online</span>'
|
||||
: '<span class="pill pill-danger">offline</span>';
|
||||
|
||||
const setText = (selector, value) => {
|
||||
document.querySelectorAll(selector).forEach((el) => {
|
||||
@@ -51,7 +61,7 @@
|
||||
<td>${escapeHtml(job.created_at)}</td>
|
||||
</tr>
|
||||
`).join("");
|
||||
return rows || '<tr><td colspan="6">Zatím nejsou evidované žádné joby.</td></tr>';
|
||||
return rows || '<tr><td colspan="6">Zatím nejsou evidované žádné úlohy.</td></tr>';
|
||||
};
|
||||
|
||||
const renderWorkers = (workers) => {
|
||||
@@ -107,16 +117,21 @@
|
||||
setText("[data-live-count='jobs.running']", snapshot.jobs?.running);
|
||||
setText("[data-live-count='jobs.failed_24h']", snapshot.jobs?.failed_24h);
|
||||
setText("[data-live-count='jobs.success_24h']", snapshot.jobs?.success_24h);
|
||||
setText("[data-live-count='apps.active']", snapshot.apps?.active);
|
||||
setText("[data-live-count='apps.problematic']", snapshot.apps?.problematic);
|
||||
setText("[data-live-count='workers.online']", snapshot.workers?.online);
|
||||
setText("[data-live-count='workers.offline']", snapshot.workers?.offline);
|
||||
setText("[data-live-count='workers.total']", (snapshot.workers?.online || 0) + (snapshot.workers?.offline || 0));
|
||||
setText("[data-live-count='deployments.running']", snapshot.deployments?.running);
|
||||
setText("[data-live-count='deployments.failed_24h']", snapshot.deployments?.failed_24h);
|
||||
setText("[data-live-count='deployments.success_24h']", snapshot.deployments?.success_24h);
|
||||
setText("[data-live-count='deployments.today']", snapshot.deployments?.today);
|
||||
|
||||
document.querySelectorAll("[data-live-table='jobs.recent']").forEach((el) => { el.innerHTML = renderJobs(snapshot.jobs?.recent); });
|
||||
document.querySelectorAll("[data-live-table='jobs.failed']").forEach((el) => { el.innerHTML = renderJobs(snapshot.jobs?.recent_failed); });
|
||||
document.querySelectorAll("[data-live-table='workers.recent']").forEach((el) => { el.innerHTML = renderWorkers(snapshot.workers?.recent); });
|
||||
document.querySelectorAll("[data-live-table='deployments.recent']").forEach((el) => { el.innerHTML = renderDeployments(snapshot.deployments?.recent); });
|
||||
document.querySelectorAll("[data-live-table='deployments.failed']").forEach((el) => { el.innerHTML = renderDeployments(snapshot.deployments?.recent_failed); });
|
||||
document.querySelectorAll("[data-live-table='audit.recent']").forEach((el) => { el.innerHTML = renderAudit(snapshot.audit?.recent); });
|
||||
|
||||
(snapshot.workers?.recent || []).forEach((worker) => {
|
||||
@@ -159,6 +174,6 @@
|
||||
});
|
||||
};
|
||||
|
||||
window.AppFactoryOperationsLive = { connect };
|
||||
window.CSBotOperationsLive = { connect };
|
||||
connect();
|
||||
})();
|
||||
|
||||
@@ -76,6 +76,14 @@ nav a {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.nav-group {
|
||||
color: rgba(255, 255, 255, 0.62);
|
||||
margin-left: 14px;
|
||||
font-size: 11px;
|
||||
font-weight: 800;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.user-menu {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
Reference in New Issue
Block a user