Commit Graph

1690 Commits

Author SHA1 Message Date
Joseph Doherty 8270a603d3 test(playwright): update pager/markup selectors to M10 component hooks (INT) 2026-06-18 20:41:43 -04:00
Joseph Doherty 023c4f7cde docs(m10): mark M10 UI/UX platform delivered + sync README/CLAUDE + log follow-ups 2026-06-18 20:20:39 -04:00
Joseph Doherty 042776abb6 fix(host): load theme.js before ThemeScripts so window.sbTheme is defined first (T34b review) 2026-06-18 20:15:35 -04:00
Joseph Doherty 828acd3266 test(centralui): TreeView keyboard-activation test + document preventDefault scope (T36a review) 2026-06-18 20:14:18 -04:00
Joseph Doherty fef4d4cf83 feat(centralui): dark-mode toggle + localStorage persistence + SSR pre-hydration (T34b) 2026-06-18 20:09:00 -04:00
Joseph Doherty 0449c473c1 feat(centralui): TreeView chevron accessible name + keyboard activation + a11y regression test (T36a) 2026-06-18 20:08:47 -04:00
Joseph Doherty 4d3cef18cb fix(centralui): MoveDataConnectionDialog surfaces MoveAsync exceptions inline instead of failing silently (T33b review) 2026-06-18 20:06:06 -04:00
Joseph Doherty 07b651d933 refactor(centralui): tokenize remaining standalone modal backdrops via .sb-modal-backdrop + bounded bg-* dark audit (T34c) 2026-06-18 20:04:17 -04:00
Joseph Doherty 1d82e6bc8c refactor(centralui): AuditResultsGrid adopts KeysetPager + AuditFilterBar adopts DateTimeRangeFilter (T35g) 2026-06-18 20:03:40 -04:00
Joseph Doherty a3ac77dd41 refactor(centralui): EventLogs adopts DateTimeRangeFilter (T35h) 2026-06-18 20:02:57 -04:00
Joseph Doherty e773915e26 refactor(centralui): SiteCallsReport adopts KeysetPager + DateTimeRangeFilter + tokenized backdrop (T35f) 2026-06-18 19:58:55 -04:00
Joseph Doherty ef2791ffd8 refactor(centralui): ConfigurationAuditLog adopts OffsetPager + DateTimeRangeFilter (T35e) 2026-06-18 19:56:55 -04:00
Joseph Doherty 64cc96253f refactor(centralui): NotificationReport adopts OffsetPager + DateTimeRangeFilter + tokenized backdrop (T35d) 2026-06-18 19:56:47 -04:00
Joseph Doherty e0d085481f refactor(centralui): migrate Move/Rename/Compose dialogs to DialogService.ShowAsync host (T33b) 2026-06-18 19:53:19 -04:00
Joseph Doherty c8915e8638 refactor(centralui): add @namespace to KeysetPager/DateTimeRangeFilter + InvariantCulture parse (T35b/c review) 2026-06-18 19:46:27 -04:00
Joseph Doherty 67ff494bf5 test(playwright): web-first timeouts on alarm-override zero-count asserts + split compound asserts (T41 review) 2026-06-18 19:42:33 -04:00
Joseph Doherty acbb52b459 fix(centralui): DialogHost cleanup only on open->closed transition + drop trailing class space (T33a review) 2026-06-18 19:42:10 -04:00
Joseph Doherty 9ee21205d6 feat(centralui): DateTimeRangeFilter reusable from/to input component (T35c) 2026-06-18 19:39:05 -04:00
Joseph Doherty 7b41c2c202 feat(centralui): dark-mode token layer + .sb-modal-backdrop in site.css (T34a) 2026-06-18 19:38:33 -04:00
Joseph Doherty b7f7fe935c test(playwright): alarm-override trigger-config scenarios — HiLo merge, non-HiLo replace, validation, cancel, clear (T41) 2026-06-18 19:35:14 -04:00
Joseph Doherty 2e4ca5a35f feat(centralui): OffsetPager reusable pagination component (T35a) 2026-06-18 19:28:17 -04:00
Joseph Doherty 6a34ed9ed6 feat(centralui): KeysetPager reusable cursor-pagination component (T35b) 2026-06-18 19:28:15 -04:00
Joseph Doherty 4755ceee81 feat(centralui): DialogHost ShowAsync<T> custom-content + focus trap/restore + backdrop hook (T33a) 2026-06-18 19:24:15 -04:00
Joseph Doherty c0aaba17ea docs(m10): T34 theme dark-mode feasibility spike findings 2026-06-18 19:18:49 -04:00
Joseph Doherty d8ba99d19d docs(m10): UI/UX platform implementation plan — 17 tasks, 5 waves (T33-T36, T41) 2026-06-18 19:15:54 -04:00
Joseph Doherty 1a23b902b2 docs(m10): UI/UX platform design — modal host, tokens+dark mode, pager/filter extractions, a11y pass, alarm-override Playwright 2026-06-18 19:01:54 -04:00
Joseph Doherty ba335519f4 docs(m9): mark M9 delivered + sync TemplateEngine/TreeView/DataConnection/schema-library/CLI docs
- 2026-06-15-stillpending-completion-design.md: M9 section marked DELIVERED with per-feature
  summary and deferrals (folder drag-drop, unified outbox page).
- stillpending.md: T22–T26/T28/T30–T32 + CLI cached-call marked [DELIVERED M9]; permanent
  deferrals (folder drag-drop, unified outbox page) retained as [PERM].
- Component-TemplateEngine.md: TemplateFolder SortOrder + ReorderTemplateFolderCommand;
  Expression-trigger analysisKind (Advisory/Strict) on Alarm + Script; Script parameter
  JSON Schema / lib: ref note; Inheritance Resolve authoring section (GetResolvedTemplateMembersCommand /
  TemplateInheritanceResolver / staleness banner); updated Responsibilities.
- Component-TreeView.md: T22 search box wired note; T23 folder sibling reorder + root context
  menu note; drag-drop permanently deferred clarified in V7 worked example.
- Component-CentralUI.md: template tree search + inherited-members panel (T26 staleness banner)
  added to Template Authoring; drag-drop permanently deferred note; Schema Library page (T32)
  added as new subsection; ParameterValueForm + Monaco hover (T30/T31) noted; connection
  live-status (T25) + move-connection (T24) added to Site & Data Connection Management.
- Component-ConfigurationDatabase.md: SharedSchema entity + ISharedSchemaRepository row added.
- Component-CLI.md: --trigger-kind option added to template alarm add/update and script add/update.
- src/ZB.MOM.WW.ScadaBridge.CLI/README.md: --trigger-kind option added to template alarm
  add/update and template script add/update command tables (already had cached-call group).
2026-06-18 13:39:33 -04:00
Joseph Doherty af2d4037ce fix(m9/T31): Monaco dispose editor-before-model; preserve other jsonDefaults diagnostics 2026-06-18 13:21:02 -04:00
Joseph Doherty 45ad36c115 fix(m9/T26b): replace lock-badge emoji with text label (CLAUDE.md no-emoji)
Also fix misleading "below" → "above" in the staleness banner: the
Effective inherited set card renders above the main editor area.
2026-06-18 13:17:47 -04:00
Joseph Doherty 68c0f7ac59 feat(m9/T31): Monaco JSON-schema hover/completion on value-entry surface 2026-06-18 13:15:54 -04:00
Joseph Doherty 95b8caf284 fix(m9/T30): empty-state guard keys off resolved fields (top-level \$ref); shift list raw-text on item removal 2026-06-18 13:06:59 -04:00
Joseph Doherty 6bc2bb5430 feat(m9/T26b): TemplateEdit full multi-level inherited set + read-only staleness banner 2026-06-18 13:01:38 -04:00
Joseph Doherty ca6e5da34b fix(m9/T26a): HiLo per-setpoint merge in resolver (preview=deploy) + widen staleness comparison 2026-06-18 12:51:58 -04:00
Joseph Doherty 10c08dd309 feat(m9/T30): schema-driven nested object/list value-entry forms (+ $ref resolution) 2026-06-18 12:40:22 -04:00
Joseph Doherty 991d90a875 fix(m9/T32b): drop scoped-from-root fallback for ISharedSchemaRepository (match gateway pattern) 2026-06-18 12:34:10 -04:00
Joseph Doherty 71a2bca4df feat(m9/T32c): schema-library CRUD commands + handlers + Central UI page + read-accessor 2026-06-18 12:32:31 -04:00
Joseph Doherty 71d5722692 fix(m9/T32b): resolve $ref in InboundAPI runtime validators (no deploy-passes/runtime-400); diamond test; ref-annotation message 2026-06-18 12:16:39 -04:00
Joseph Doherty 26e2cdef23 feat(m9/T26a): read-only inheritance resolve service + GetResolvedTemplateMembersCommand 2026-06-18 12:14:24 -04:00
Joseph Doherty 1ca2e0b130 fix(m9/T24b): try/finally around _busy in move dialog (circuit-teardown lock) 2026-06-18 11:59:44 -04:00
Joseph Doherty b3d99248fa feat(m9/T32b): JSON Schema $ref resolver (lib seam, cycle/depth-guarded) + deploy-time dangling-ref block 2026-06-18 11:54:19 -04:00
Joseph Doherty 16cb078cd2 feat(m9/T24b): move-data-connection UI dialog + action 2026-06-18 11:45:53 -04:00
Joseph Doherty dbe51e5f25 fix(m9/T24a): scope move-guard native-alarm scan to source-site templates (Ordinal); purpose-built include; add guard-4 + repo tests 2026-06-18 11:38:31 -04:00
Joseph Doherty fbe4ddaf58 feat(m9/T32a): SharedSchema entity + EF config + idempotent migration + repository 2026-06-18 11:26:48 -04:00
Joseph Doherty 48111b50fd feat(m9/T24a): guarded move-data-connection-between-sites command + handler 2026-06-18 11:20:58 -04:00
Joseph Doherty e6191ec55a fix(m9/T25): guard health-poll timer against dispose race (ObjectDisposedException) 2026-06-18 11:16:01 -04:00
Joseph Doherty 9a73094f03 fix(m9/T23a): assign distinct SortOrder on folder create (so reorder is visible) 2026-06-18 11:15:18 -04:00
Joseph Doherty 314c7dea23 feat(m9/T23b): folder reorder menu items + root context menu 2026-06-18 11:12:34 -04:00
Joseph Doherty efe3ada03d feat(m9/T25): connection live-status indicators on the design page 2026-06-18 11:03:22 -04:00
Joseph Doherty e3bc19c673 feat(m9/T23a): folder sibling reorder (ReorderFolderAsync + command + handler) 2026-06-18 11:00:57 -04:00
Joseph Doherty 0bd5e0986f fix(m9/T28b): forward --trigger-kind on alarm-update/script-add/script-update; fix default-selector test
Three dead-code bugs: --trigger-kind was registered but never read or forwarded on the
alarm-update, script-add, and script-update paths. Introduced TriggerConfigJson.InjectAnalysisKind
helper that rewrites any raw --trigger-config JSON blob, writing "analysisKind":"Strict" when
the flag is strict (case-insensitive) and stripping the key for any other value. Wired the
helper into all three handlers alongside the existing alarm-add path (which already used
AlarmTriggerConfigJson.Build). Added 6 unit tests for the new helper in TemplateTriggerKindTests.

Also fixed a false-positive bUnit test (AlarmTriggerEditor_Expression_NoAnalysisKindInConfig_
SelectorDefaultsAdvisory) that passed because "Advisory" appeared anywhere in the HTML; now
asserts select.GetAttribute("value") == "Advisory". Added the missing equivalent test for
ScriptTriggerEditor (ScriptTriggerEditor_Expression_NoAnalysisKindInConfig_SelectorDefaultsAdvisory).
2026-06-18 10:54:42 -04:00