diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Account.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Account.razor index dc4b2b07..62823be1 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Account.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Account.razor @@ -69,10 +69,7 @@
- Fleet roles come from LDAP group membership via the - Authentication:Ldap:GroupToRole mapping. To change them, - edit the LDAP group on the directory server; the next sign-in picks up the change. - Sign out + sign back in to refresh the cookie claim. + Sign out and sign back in to refresh the cookie claim after a role change.
diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/AlarmsHistorian.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/AlarmsHistorian.razor index a957ca51..55c3be0f 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/AlarmsHistorian.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/AlarmsHistorian.razor @@ -15,13 +15,7 @@

Alarms historian sink

-
- Snapshot from the local node's HistorianAdapterActor. Default sink - is a no-op (NullAlarmHistorianSink); production wires - LocalDbStoreAndForwardSink — buffering into this node's LocalDb, and - draining to the HistorianGateway (SendEvent) only while this node holds - the Primary role. Polling every @PollSeconds s. -
+
Polling every @PollSeconds s.
@if (_status is null) { diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Alerts.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Alerts.razor index dca6f8df..58dd2250 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Alerts.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Alerts.razor @@ -25,9 +25,7 @@
- Live alarm transitions from the cluster's alerts DPS topic. Shows - the most-recent @Capacity entries since the page opened; reload for a fresh window. Sources: - ScriptedAlarmActor, native driver alarm bridges (AB CIP ALMD, Galaxy where wired). + Shows the most-recent @Capacity entries since the page opened; reload for a fresh window.
@if (_rows.Count == 0) @@ -91,30 +89,34 @@ else 'alarm-commands' topic; the owning node applies it (ownership filter). *@
- - +
+ + +
- - +
+ + +
@if (_opResultAlarmId.Equals(e.AlarmId) && _opResultMessage is not null) { diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ApiKeys.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ApiKeys.razor index 8fc31a67..576a2144 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ApiKeys.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ApiKeys.razor @@ -9,19 +9,6 @@

OPC UA API keys

- - @if (_created is not null) { -
- PKI store layout: {PkiStoreRoot}/own (this server's identity), - issuer / trusted (peers we accept), - rejected (peers we've turned away). F13a wires SDK - auto-creation so the own-store self-signs on first boot. -
- @if (_rows is null) {

Loading…

@@ -30,14 +23,16 @@ else { @if (_statusMsg is not null) { -
@_statusMsg
+
@_statusMsg
} @if (_pending is { } p) {
Confirm @p.Verb of @p.Subject? - - +
+ + +
} @foreach (var store in _rows) @@ -89,15 +84,17 @@ else - @if (store.Kind == StoreKind.Rejected) - { - - } - else - { - - } - +
+ @if (store.Kind == StoreKind.Rejected) + { + + } + else + { + + } + +
diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Hosts.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Hosts.razor index be387ea8..3596d416 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Hosts.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Hosts.razor @@ -35,13 +35,6 @@ -
- Each row is one Akka cluster member identified by host:port. Roles - drive which actors run on which node — admin nodes host the - control-plane singletons, driver nodes host the per-node runtime - actors. The leader columns identify which member currently owns each role's singletons. -
- @if (_rows is null) {

Loading…

@@ -125,12 +118,6 @@ else } -
- Driver health is keyed per driver instance across the cluster, not per Akka member — - the health feed carries no per-member identity. These rows are therefore cluster-scoped: - one entry per configured driver instance, grouped under its cluster. -
- @if (_driverGroups is null) {

Loading…

diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Reservations.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Reservations.razor index 6f636d87..63fdefe7 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Reservations.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Reservations.razor @@ -16,12 +16,6 @@ } else { -
- External IDs (ZTag, SAPID) are reserved fleet-wide via this table. Reservations bind a - value to an Equipment's UUID so the ID can move with the equipment across cluster - reshuffles without colliding with another cluster's equipment. -
-
@_rows.Count reservation@(_rows.Count == 1 ? "" : "s")
@if (_rows.Count == 0) diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/RoleGrants.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/RoleGrants.razor index 47b272d3..afa68372 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/RoleGrants.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/RoleGrants.razor @@ -64,7 +64,7 @@ @r.LdapGroup @r.Role - + } } @@ -78,7 +78,7 @@
Fallback (appsettings) (@(_options.GroupToRole?.Count ?? 0))
- These Authentication:Ldap:GroupToRole entries apply when a group has no database row above. + These Security:Ldap:GroupToRole entries apply when a group has no database row above.
@if (_options.GroupToRole is null || _options.GroupToRole.Count == 0) { diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ScriptEdit.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ScriptEdit.razor index 466b67f8..fcb433c0 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ScriptEdit.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ScriptEdit.razor @@ -60,11 +60,13 @@ else
- @if (!string.IsNullOrWhiteSpace(_error)) {
@_error
} + @if (!string.IsNullOrWhiteSpace(_error)) {
@_error
}
- - Cancel +
+ + Cancel +
@if (!IsNew) { }
diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ScriptLog.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ScriptLog.razor index d7c4f3e9..fbe41e43 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ScriptLog.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/ScriptLog.razor @@ -28,17 +28,12 @@ -
- Live tail of script-logs DPS topic, capped at @Capacity entries. - Filter by minimum level + script ID. Sources: VirtualTagActor (F8), ScriptedAlarmActor (F9). -
- @if (VisibleRows.Count == 0) {
@if (_rows.Count == 0) { - No script-log entries yet. Engine emit (F8/F9) is pending. + No script-log entries yet. } else { diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Scripts.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Scripts.razor index 04ab3d7d..56c26050 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Scripts.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Scripts.razor @@ -17,12 +17,6 @@ } else { -
- Scripts are fleet-wide C# expression compilations referenced by virtual tags and scripted - alarms. The editor provides Roslyn-backed IntelliSense — completions, diagnostics, hover, - and tag-path suggestions for ctx.GetTag / ctx.SetVirtualTag literals. -
-
@_rows.Count script@(_rows.Count == 1 ? "" : "s")
@if (_rows.Count == 0) @@ -44,7 +38,7 @@ else -
@s.SourceCode
+
@s.SourceCode
}