From 10b83d69c5f9d422fad26fa95023dce697fb3949 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Thu, 22 Oct 2026 17:30:50 -0400 Subject: [PATCH] perf(adminui): /scripts lists a projection and loads source per dialog (R04 P8) The list loaded every script entity including SourceCode to render names and hashes. ScriptListQueries projects {ScriptId, Name, Language, SourceHash} for the list and fetches one script's source when its Source dialog opens, with a generation guard against a superseded open. Refs #745 Claude-Session: https://claude.ai/code/session_01Ub9hGmYLQvn9XETzw7CMsT --- .../Components/Pages/Scripts.razor | 49 +++++++++++---- .../ScriptList/ScriptListQueries.cs | 41 +++++++++++++ .../ScriptList/ScriptListQueriesTests.cs | 59 +++++++++++++++++++ 3 files changed, 138 insertions(+), 11 deletions(-) create mode 100644 src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/ScriptList/ScriptListQueries.cs create mode 100644 tests/Server/ZB.MOM.WW.OtOpcUa.AdminUI.Tests/ScriptList/ScriptListQueriesTests.cs 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 a946dfec..219b5eaa 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 @@ -3,7 +3,7 @@ @rendermode RenderMode.InteractiveServer @using Microsoft.EntityFrameworkCore @using ZB.MOM.WW.OtOpcUa.Configuration -@using ZB.MOM.WW.OtOpcUa.Configuration.Entities +@using ZB.MOM.WW.OtOpcUa.AdminUI.ScriptList @inject IDbContextFactory DbFactory @@ -89,13 +89,17 @@ else