fix(adminui): link the dead scoped-CSS bundle; add btn/notice-alert/tree-twist rules
Foundation task of the AdminUI UI sweep. CSS/link/doc only — no behavior change
beyond restoring styles that were built but never served.
- App.razor: link the RCL's scoped-CSS bundle
(_content/ZB.MOM.WW.OtOpcUa.AdminUI/ZB.MOM.WW.OtOpcUa.AdminUI.bundle.scp.css).
It is produced on every compile and served by the Host, but nothing referenced
it, so ContextMenu.razor.css was dead at runtime and context menus rendered
in-flow with no position:fixed.
- site.css: three additions.
* .btn / .btn-sm sizing as Bootstrap CSS-VARIABLE overrides (never box
properties — .btn-group depends on Bootstrap's own .btn rules for its seams
and end-cap radii). Theme 0.3.1 ships no .btn rule, so Bootstrap's 1rem
applied against the theme's 0.9rem body. Upstreaming candidate, same as the
ignitionoee router's app.css.
* .notice-alert — red variant of the kit's amber .notice, on the --bad/
--bad-bg/--bad-border tokens. The 13 existing call sites hack this with
style="border-color:var(--alert)", and no --alert token exists anywhere, so
the tint silently no-ops today. Call-site migration is a separate task.
* .tree-twist — shared 18px expander column for the tree components, replacing
repeated inline style="width:18px". Rows are d-flex, so flex-basis is what
actually holds the column. Adoption is a separate task.
- ContextMenu.razor.css: correct the header comment — the kit is light-only
(no dark block in Theme 0.3.1, site.css, or this file). No rule changes.
- docs/Telemetry.md: record that driver-health is keyed per driver instance
across the cluster, not per Akka member (the wire record carries no per-member
identity). The fact previously lived only in Hosts.razor page copy.
- docs/Configuration.md: new audit-log subsection recording that EventId gives
cross-restart dedup, enforced by the filtered unique index
UX_ConfigAuditLog_EventId, so a retried apply inserts no duplicate row;
CorrelationId joins a row to its originating workflow. Previously only in the
historical v2 rebuild plan and ClusterAudit page copy.
This commit is contained in:
@@ -97,6 +97,21 @@ single stream per (central, driver-node) pair carries all four, rather than one
|
||||
Proto field evolution is additive-only (never renumber/reuse a tag), locked by a contract test that
|
||||
reflects over the `oneof` cases.
|
||||
|
||||
### `driver-health` is keyed per driver instance, not per Akka member
|
||||
|
||||
`DriverHealthChanged` carries no per-Akka-member identity — a snapshot names the driver instance it
|
||||
describes, never the node that published it. `IDriverStatusSnapshotStore` therefore keys on the
|
||||
driver instance, and the `/hosts` driver table renders **cluster-scoped** rows: one entry per
|
||||
configured driver instance, grouped under its cluster, rather than one entry per (member, driver)
|
||||
pair. A pair's two nodes running the same deployed driver contribute to the same row, with the most
|
||||
recent snapshot winning.
|
||||
|
||||
That is the correct granularity for what the channel reports — a driver instance's transport health
|
||||
is a property of the instance's configuration and its device, not of which member happens to host
|
||||
it — but it does mean the panel cannot answer "which node saw this?". Adding that would mean
|
||||
widening the wire record, not changing the page. The one sub-instance breakdown the channel *does*
|
||||
carry is per-host connectivity, below.
|
||||
|
||||
### Per-host connectivity rides `driver-health` (Gitea #521)
|
||||
|
||||
`DriverHealthChanged.HostStatuses` carries each driver's `IHostConnectivityProbe.GetHostStatuses()`
|
||||
|
||||
Reference in New Issue
Block a user