Remove KPI trend subtitles on server dashboard.
Publish telemt-api gateway Docker image / test (push) Successful in 27s
Publish telemt-api gateway Docker image / build-and-push (push) Successful in 2m19s

Drop per-card trend footer text and related previous-value calculation from the server overview KPI block.

Made-with: Cursor
This commit is contained in:
Denozordec
2026-04-09 23:30:40 +07:00
parent 7c731b93c1
commit ba9d2fc374
@@ -25,16 +25,6 @@
let summary = $state<StatsSummaryData | null>(null);
let sys = $state<SystemInfoData | null>(null);
type NodeKpiPrev = {
uptime: number;
conn: number;
bad: number;
users: number;
handshake: number;
};
let kpiPrev = $state<NodeKpiPrev | null>(null);
function num(v: unknown): number {
if (typeof v === 'number' && Number.isFinite(v)) return v;
if (typeof v === 'string' && v.trim() !== '') {
@@ -44,38 +34,15 @@
return 0;
}
function trendFooter(current: number | null, prev: number | null, invert = false): string {
if (current == null || prev == null || !Number.isFinite(current) || !Number.isFinite(prev)) {
return 'первое обновление';
}
const delta = current - prev;
if (delta === 0) return 'к прошлому обновлению: без изменений';
const sign = delta > 0 ? '+' : '-';
const absDelta = Math.abs(delta);
const mood = invert ? (delta < 0 ? 'лучше' : 'хуже') : delta > 0 ? 'рост' : 'снижение';
return `к прошлому обновлению: ${sign}${absDelta} (${mood})`;
}
async function loadFor(a: string) {
loading = true;
err = null;
try {
const prev =
summary && sys
? {
uptime: num(sys.uptime_seconds),
conn: num(summary.connections_total),
bad: num(summary.connections_bad_total),
users: num(summary.configured_users),
handshake: num(summary.handshake_timeouts_total)
}
: null;
const [h, s, i] = await Promise.all([
fetchTelemt<HealthData>(a, 'health'),
fetchStatsSummary(a),
fetchTelemt<SystemInfoData>(a, 'system/info')
]);
kpiPrev = prev;
health = h.data;
summary = s.data;
sys = i.data;
@@ -150,7 +117,6 @@
<KpiStatCard
accent="violet"
label="Аптайм"
footer={trendFooter(sys ? uptimeSec : null, kpiPrev?.uptime ?? null)}
valueClass="text-xl"
>
{#snippet icon()}
@@ -161,7 +127,6 @@
<KpiStatCard
accent="info"
label="Соединения (всего)"
footer={trendFooter(summary ? connTotal : null, kpiPrev?.conn ?? null)}
valueClass="text-xl"
>
{#snippet icon()}
@@ -172,7 +137,6 @@
<KpiStatCard
accent="danger"
label="Bad connections"
footer={trendFooter(summary ? badTotal : null, kpiPrev?.bad ?? null, true)}
valueClass="text-xl"
>
{#snippet icon()}
@@ -183,7 +147,6 @@
<KpiStatCard
accent="warning"
label="Handshake timeouts"
footer={trendFooter(summary ? handshakeT : null, kpiPrev?.handshake ?? null, true)}
valueClass="text-xl"
>
{#snippet icon()}
@@ -194,7 +157,6 @@
<KpiStatCard
accent="neutral"
label="Пользователей в конфиге"
footer={trendFooter(summary ? cfgUsers : null, kpiPrev?.users ?? null)}
valueClass="text-xl"
>
{#snippet icon()}