fix(uns): bind _filter + modal parent-ids as Razor expressions, not literals
v2-ci / build (push) Failing after 40s
v2-ci / unit-tests (tests/Core/ZB.MOM.WW.OtOpcUa.Cluster.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Security.Tests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (push) Has been skipped

GlobalUns passed string component params without an @ prefix
(Filter="_filter", ClusterId="_areaModalClusterId", etc.). Razor treats a
string-typed component-parameter value without @ as a LITERAL, so UnsTree.Filter
became the literal "_filter" and the modals received literal field-name strings
as their parent ids. The non-empty literal filter matched no node, so the tree
never rendered children beyond the enterprise roots; the modals would have created
children under a bogus cluster/area/line/equipment id.

Add @ to the six string-param bindings. Verified live in docker-dev: the full
Enterprise->Cluster->Area->Line->Equipment tree renders and an area created via the
modal persists with the correct ClusterId (MAIN). No unit test added — this is a
Razor binding issue not reachable without bUnit (not used in this project).
This commit is contained in:
Joseph Doherty
2026-06-08 15:15:46 -04:00
parent 8ba64b1d99
commit 14b469291a
@@ -38,7 +38,7 @@
else else
{ {
<div style="padding:.5rem 1rem"> <div style="padding:.5rem 1rem">
<UnsTree Roots="_roots" Filter="_filter" <UnsTree Roots="_roots" Filter="@_filter"
OnToggleExpand="ToggleAsync" OnToggleExpand="ToggleAsync"
OnAddChild="HandleAddChild" OnAddChild="HandleAddChild"
OnAddVirtualTag="HandleAddVirtualTag" OnAddVirtualTag="HandleAddVirtualTag"
@@ -50,7 +50,7 @@
<AreaModal Visible="_areaModalVisible" <AreaModal Visible="_areaModalVisible"
IsNew="_areaModalIsNew" IsNew="_areaModalIsNew"
ClusterId="_areaModalClusterId" ClusterId="@_areaModalClusterId"
Existing="_areaModalExisting" Existing="_areaModalExisting"
Clusters="ClusterOptions" Clusters="ClusterOptions"
OnSaved="OnModalSavedAsync" OnSaved="OnModalSavedAsync"
@@ -58,7 +58,7 @@
<LineModal Visible="_lineModalVisible" <LineModal Visible="_lineModalVisible"
IsNew="_lineModalIsNew" IsNew="_lineModalIsNew"
UnsAreaId="_lineModalAreaId" UnsAreaId="@_lineModalAreaId"
Existing="_lineModalExisting" Existing="_lineModalExisting"
Areas="_lineModalAreaOptions" Areas="_lineModalAreaOptions"
OnSaved="OnModalSavedAsync" OnSaved="OnModalSavedAsync"
@@ -66,7 +66,7 @@
<EquipmentModal Visible="_equipmentModalVisible" <EquipmentModal Visible="_equipmentModalVisible"
IsNew="_equipmentModalIsNew" IsNew="_equipmentModalIsNew"
UnsLineId="_equipmentModalLineId" UnsLineId="@_equipmentModalLineId"
Existing="_equipmentModalExisting" Existing="_equipmentModalExisting"
Lines="_equipmentModalLineOptions" Lines="_equipmentModalLineOptions"
Drivers="_equipmentModalDriverOptions" Drivers="_equipmentModalDriverOptions"
@@ -75,7 +75,7 @@
<TagModal Visible="_tagModalVisible" <TagModal Visible="_tagModalVisible"
IsNew="_tagModalIsNew" IsNew="_tagModalIsNew"
EquipmentId="_tagModalEquipmentId" EquipmentId="@_tagModalEquipmentId"
Existing="_tagModalExisting" Existing="_tagModalExisting"
Drivers="_tagModalDriverOptions" Drivers="_tagModalDriverOptions"
OnSaved="OnEquipmentChildModalSavedAsync" OnSaved="OnEquipmentChildModalSavedAsync"
@@ -83,7 +83,7 @@
<VirtualTagModal Visible="_vtagModalVisible" <VirtualTagModal Visible="_vtagModalVisible"
IsNew="_vtagModalIsNew" IsNew="_vtagModalIsNew"
EquipmentId="_vtagModalEquipmentId" EquipmentId="@_vtagModalEquipmentId"
Existing="_vtagModalExisting" Existing="_vtagModalExisting"
Scripts="_vtagModalScriptOptions" Scripts="_vtagModalScriptOptions"
OnSaved="OnEquipmentChildModalSavedAsync" OnSaved="OnEquipmentChildModalSavedAsync"