7b0b9c7365
Solution + 23 src projects + 26 test projects renamed; folders, csproj, namespaces, and ScadaLinkDbContext/ScadaBridgeDbContext class updated. ActorSystem "scadalink" → "scadabridge", Akka seed-node URLs migrated. SQL roles/logins, LDAP domains, CLI command name, and CLI config dir (~/.scadalink → ~/.scadabridge) also renamed. Build green; 5 Host.Tests fail awaiting SQL login rename in next commit. Pre-existing StaleTagMonitor timing flakes unchanged. Rename script committed at tools/rename-to-scadabridge.sh.
61 lines
3.0 KiB
Plaintext
61 lines
3.0 KiB
Plaintext
@*
|
|
Site Call Audit (#22) Task 7 — three Health-dashboard KPI tiles for the
|
|
Site Call channel: Buffered / Parked / Stuck. Renders Bootstrap card tiles
|
|
in a single row, each acting as a navigation link to a pre-filtered Site
|
|
Calls report view. The component is purely presentational — the parent page
|
|
owns the refresh loop and passes the latest snapshot via the Snapshot
|
|
parameter. Mirrors AuditKpiTiles and the Notification Outbox KPI section.
|
|
*@
|
|
|
|
@namespace ZB.MOM.WW.ScadaBridge.CentralUI.Components.Health
|
|
@inject NavigationManager Navigation
|
|
|
|
<div class="d-flex justify-content-between align-items-center mb-2">
|
|
<h6 class="text-muted mb-0">Site Calls</h6>
|
|
<a class="small" href="/site-calls/report">View details →</a>
|
|
</div>
|
|
<div class="row g-3 mb-3">
|
|
@* ── Buffered tile ─────────────────────────────────────────────────────── *@
|
|
<div class="col-lg-4 col-md-6 col-12">
|
|
<button type="button"
|
|
class="card h-100 w-100 text-start border-0 shadow-none p-0 site-call-kpi-tile"
|
|
data-test="site-call-kpi-buffered"
|
|
@onclick="NavigateToBuffered">
|
|
<div class="card-body text-center">
|
|
<h3 class="mb-0">@BufferedDisplay</h3>
|
|
<small class="text-muted">Buffered</small>
|
|
</div>
|
|
</button>
|
|
</div>
|
|
|
|
@* ── Stuck tile ────────────────────────────────────────────────────────── *@
|
|
<div class="col-lg-4 col-md-6 col-12">
|
|
<button type="button"
|
|
class="card h-100 w-100 text-start border-0 shadow-none p-0 site-call-kpi-tile @StuckBorderClass"
|
|
data-test="site-call-kpi-stuck"
|
|
@onclick="NavigateToStuck">
|
|
<div class="card-body text-center">
|
|
<h3 class="mb-0 @StuckTextClass">@StuckDisplay</h3>
|
|
<small class="text-muted">Stuck</small>
|
|
</div>
|
|
</button>
|
|
</div>
|
|
|
|
@* ── Parked tile ───────────────────────────────────────────────────────── *@
|
|
<div class="col-lg-4 col-md-6 col-12">
|
|
<button type="button"
|
|
class="card h-100 w-100 text-start border-0 shadow-none p-0 site-call-kpi-tile @ParkedBorderClass"
|
|
data-test="site-call-kpi-parked"
|
|
@onclick="NavigateToParked">
|
|
<div class="card-body text-center">
|
|
<h3 class="mb-0 @ParkedTextClass">@ParkedDisplay</h3>
|
|
<small class="text-muted">Parked</small>
|
|
</div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
@if (!IsAvailable && !string.IsNullOrEmpty(ErrorMessage))
|
|
{
|
|
<div class="text-muted small mb-3">Site Call KPIs unavailable: @ErrorMessage</div>
|
|
}
|