Skip to content

P2.1: unify industrial workstation UX, Lucide actions and fast search - #153

Merged
masarray merged 5 commits into
mainfrom
agent/p2-1-industrial-search-lucide
Aug 13, 2026
Merged

P2.1: unify industrial workstation UX, Lucide actions and fast search#153
masarray merged 5 commits into
mainfrom
agent/p2-1-industrial-search-lucide

Conversation

@masarray

Copy link
Copy Markdown
Owner

Why

The P2 palette is calmer, but real workstation review showed that ARSAS still reads too much like an experimental desktop app: action affordances are inconsistent, key toolbars remain text-only, and large projects have no rapid IED/signal search.

P2.1 scope

This PR is visual/navigation-only. IEC 61850 engine behavior, multi-IED connection state, FAT scope, evidence capture and command semantics are unchanged.

Industrial workstation integration

  • tighten Blue Steel navigation chrome and reduce consumer-style roundness;
  • use a cooler steel DataGrid header over the warm greige reading surface;
  • mute/tint the first-run hero so it belongs to the workstation shell instead of reading like a marketing page;
  • keep warm zebra rows for long-session eye comfort.

Lucide action language

  • add reusable Lucide-compatible vector resources for Search, Print, Clock, COMTRADE waveform, Connect, FAT Start/Stop, navigation, export and workspace actions;
  • apply icon+caption templates without replacing live Content bindings, so captions such as Connect/Refresh and Start/Continue/Retest remain dynamic;
  • decorate both static and dynamically inserted FAT controls;
  • hide the legacy operator-facing Pause/Resume controls while keeping backend lifecycle code intact.

Search designed for hundreds of IEDs

  • Engineering IED Explorer gets an industrial search field filtering Name, SCL IED name, IP, endpoint and identity source;
  • FAT IED Explorer gets its own IED/IP search;
  • FAT toolbar gets a signal/reference/test-point search immediately to the left of Print Preview;
  • search uses ICollectionView over the existing collections, so filtering never replaces device/project/test collections and never changes evidence scope;
  • Ctrl+F focuses the primary search field.

Regression coverage

Adds source/resource contract tests locking the Lucide/search resource system, existing-collection filtering, FAT search placement, hidden Pause/Resume, large-IED search fields and P2→P2.1 overlay order.

Please gate merge on WPF/XAML compilation, full ARSAS regression tests, focused IO FAT validation, portable publish and portable smoke test.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 915628a4bb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +269 to +272
if (text.Equals("Pause", StringComparison.OrdinalIgnoreCase) ||
text.Equals("Resume", StringComparison.OrdinalIgnoreCase))
{
button.Visibility = Visibility.Collapsed;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep the Resume action available for interrupted FAT sessions

When an active FAT session is paused or loses its IED connection, IoTestSessionController enters Paused/Interrupted, keeps CanStart false, and explicitly requires Session.Resume() after reconnection to establish a new baseline. Collapsing the only Resume button makes that transition unreachable—the primary workflow button remains disabled while the session is active—so operators must stop the session instead of continuing its evidence journal. Keep Resume accessible or route another enabled action to Session.Resume() in these states.

Useful? React with 👍 / 👎.

@masarray
masarray merged commit ad100a6 into main Aug 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant