Joseph Doherty
7570df76d3
feat(adminui): editable OpcUaClient endpoint URL list via CollectionEditor
2026-05-29 09:41:09 -04:00
Joseph Doherty
244949caa3
feat(adminui): editable S7 tag list via CollectionEditor
2026-05-29 09:37:12 -04:00
Joseph Doherty
a5a0d06dbe
feat(adminui): editable FOCAS device + tag lists via CollectionEditor
2026-05-29 09:33:53 -04:00
Joseph Doherty
6882761f4c
feat(adminui): editable TwinCAT device + tag lists via CollectionEditor
2026-05-29 09:29:57 -04:00
Joseph Doherty
15f3797f1e
feat(adminui): editable AbLegacy device + tag lists via CollectionEditor
2026-05-29 09:26:25 -04:00
Joseph Doherty
534d670b21
feat(adminui): editable AbCip device + tag lists via CollectionEditor
2026-05-29 09:22:51 -04:00
Joseph Doherty
b351a81c8f
fix(adminui): preserve un-edited Modbus tag fields across edit (review)
...
Capture the original ModbusTagDefinition as _source in ModbusTagRow and
rewrite ToDefinition() to use 'with {}', so StringByteOrder, ArrayCount,
Deadband, UnitId, and CoalesceProhibited survive a load→edit→save cycle.
2026-05-29 09:18:36 -04:00
Joseph Doherty
c4116e54c9
feat(adminui): editable Modbus tag list via CollectionEditor
2026-05-29 09:14:06 -04:00
Joseph Doherty
c3fec1426c
fix(adminui): case-insensitive resilience policy keys + malformed-json test (review)
2026-05-29 09:10:41 -04:00
Joseph Doherty
4a469fbe06
feat(adminui): typed resilience override form model + tests
2026-05-29 09:06:45 -04:00
Joseph Doherty
dc8a2dd52c
test(adminui): browse session registry, reaper, service
2026-05-28 15:44:20 -04:00
Joseph Doherty
063005fefa
feat(adminui): DriverTagPicker modal + 9 static address builders
...
- DriverTagPicker shell: modal chrome + per-driver picker body
rendered as ChildContent.
- 9 picker bodies (Modbus/AbCip/AbLegacy/S7/TwinCat/FOCAS/
OpcUaClient/Galaxy/Historian.Wonderware). 5 have computed
builder logic + unit tests; 4 are free-text passthroughs
(live browse for OPC UA + Galaxy is a documented follow-up).
- Each typed driver page gets a "Pick address" button that opens
the modal with the matching body. Picked address surfaces in
the modal footer for manual copy — no JS interop in v1.
2026-05-28 11:21:33 -04:00
Joseph Doherty
c4086c243c
fix(adminui): S7 typed page no longer wipes Tags on save
...
- S7DriverPage.FormModel now preserves Tags through Form ↔ Options
translation (was hard-coding Tags = [] on every save, silently
destroying any tag list that operators had configured).
- Add FormModel_RoundTrip tests for OpcUaClient and Historian
mirror classes — both were translating Options ↔ form-model
entirely untested.
- Surface S7 Tags in the round-trip test so this regression
can't reach merge again.
2026-05-28 10:06:43 -04:00
Joseph Doherty
059a6218f7
feat(adminui): AbLegacy typed driver page
2026-05-28 09:57:07 -04:00
Joseph Doherty
8149739161
feat(adminui): FOCAS typed driver page
...
Adds FocasDriverPage.razor (route: /clusters/{id}/drivers/new/focas) with
typed sections for timeout, probe, AlarmProjection (enabled + poll interval),
HandleRecycle (enabled + interval in minutes), FixedTree (enabled + axis/
program/timer poll intervals), and read-only JSON views for Devices and Tags.
FormModel uses flat settable properties + FromOptions/ToOptions with
appropriate unit conversions (ms, minutes). Also adds
FocasDriverPageFormSerializationTests (3 tests: JSON round-trip, unknown-field
drop, FormModel round-trip covering all sub-options classes).
2026-05-28 09:56:53 -04:00
Joseph Doherty
2c16062457
feat(adminui): Historian.Wonderware typed driver page
2026-05-28 09:55:15 -04:00
Joseph Doherty
dc21cbad53
feat(adminui): AbCip typed driver page
2026-05-28 09:55:13 -04:00
Joseph Doherty
dfbf6793de
feat(adminui): TwinCat typed driver page
...
Adds TwinCATDriverPage.razor (route: /clusters/{id}/drivers/new/twincat)
with typed fields for timeout, UseNativeNotifications, EnableControllerBrowse,
NotificationMaxDelayMs, probe sub-options (enabled/interval/timeout/admin
timeout), and read-only JSON views for Devices and Tags collections.
FormModel uses flat settable properties + FromOptions/ToOptions. Also adds
TwinCATDriverPageFormSerializationTests (3 tests). Fixes pre-existing
placeholder syntax error in AbCipDriverPage.razor (@raw_cpu_type in
attribute caused RZ9986).
2026-05-28 09:54:49 -04:00
Joseph Doherty
a243cfd126
feat(adminui): Galaxy typed driver page
2026-05-28 09:52:31 -04:00
Joseph Doherty
5cad9b260e
feat(adminui): S7 typed driver page
...
Adds S7DriverPage.razor (route: /clusters/{id}/drivers/new/s7) with
typed fields for host, port, CpuType InputSelect, rack, slot, timeout,
probe sub-options, and read-only JSON tag view. FormModel uses flat
settable properties and FromOptions/ToOptions round-trip; no
init-only bindings in Razor. Also adds
S7DriverPageFormSerializationTests (3 tests: JSON round-trip,
unknown-field drop, FormModel round-trip).
2026-05-28 09:52:10 -04:00
Joseph Doherty
a3073d16bf
feat(adminui): Modbus typed driver page
2026-05-28 09:52:01 -04:00
Joseph Doherty
efcc2311e6
feat(adminui): OpcUaClient typed driver page
2026-05-28 09:50:34 -04:00
Joseph Doherty
dc12c3732e
test(adminui): scaffold AdminUI.Tests project
2026-05-28 08:42:42 -04:00