feat(adminui): typed native-alarm section in the raw tag modal (#642)
NativeAlarmModel: IsAlarm=false now removes the alarm key; advisory Warnings, driver gating, order-safe Edit. Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
+10
@@ -68,6 +68,16 @@ removed later.
|
||||
auto-creates nested groups; typed columns win over `TagConfigJson` on conflict (flagged in
|
||||
the review grid). **Import is all-or-nothing** — any invalid row blocks the whole commit.
|
||||
Export round-trips the same shape.
|
||||
- **Native alarm section (Gitea #642)** — the Edit-tag modal carries a shared `NativeAlarmEditor`
|
||||
below the per-driver editor / JSON textarea: a "Native alarm (Part 9 condition)" switch plus
|
||||
`alarmType`, `severity` (1..1000) and `historizeToAveva` (default/yes/no), writing the
|
||||
driver-agnostic `alarm` object of `TagConfig`. Offered only for `IAlarmSource` drivers (MTConnect,
|
||||
AbCip, FOCAS, OpcUaClient, Galaxy — `NativeAlarmModel.SupportsNativeAlarms`); on any other driver an
|
||||
existing `alarm` object is shown with a "no effect" note and a Remove button, never silently
|
||||
dropped. Switching it off REMOVES the `alarm` key. Validation is advisory only (warnings) — the
|
||||
deploy gate has no `alarm` rule and the server clamps severity, so the editor is never stricter.
|
||||
Every edit re-parses the latest `ConfigJson` (`NativeAlarmModel.Edit`), so it composes with the
|
||||
driver editor in either order. Not yet on the manual-entry grid (use JSON/CSV there).
|
||||
- **Browse device…** — enabled per the two-tier resolution (bespoke `IDriverBrowser` →
|
||||
universal `DiscoveryDriverBrowser` when the driver's `ITagDiscovery.SupportsOnlineDiscovery`
|
||||
is true → grayed out otherwise). Multi-selected leaves become raw `Tag` rows under the
|
||||
|
||||
Reference in New Issue
Block a user