Skip to content

PR 10 Commits B+C+D: Per-row upgrade progress + AttentionBanner suppression + Banner cycle in ModalChrome (closes #526)#555

Closed
jschick04 wants to merge 6 commits into
jschick/modal-coordinator-pr10-afrom
jschick/modal-coordinator-pr10-bcd
Closed

PR 10 Commits B+C+D: Per-row upgrade progress + AttentionBanner suppression + Banner cycle in ModalChrome (closes #526)#555
jschick04 wants to merge 6 commits into
jschick/modal-coordinator-pr10-afrom
jschick/modal-coordinator-pr10-bcd

Conversation

@jschick04
Copy link
Copy Markdown
Collaborator

Banner orchestration + per-row upgrade progress for DatabaseToolsModal. Closes #526.

Commits

Commit B (403211ab) — Per-row upgrade progress (partial #525)

Removed ManageDatabasesUpgradeProgressBanner from inside DatabaseToolsModal Manage tab; surface upgrade progress (UpgradePhase verb + batch position + Cancel) per row in DatabaseEntryRow. Dual-slot matching (ManageDatabasesProgress + BackgroundProgress) makes rows reflect ALL upgrade progress including import-triggered/queued upgrades. Stop-gap aria-disabled + click-guard on Remove during upgrade (replaced in PR for Commits E+F).

Commit C (2103b746) — Suppress AttentionBanner during DatabaseToolsModal (partial #526)

BannerHost injects IModalCoordinator; new attentionSuppressedByModalContext flag plumbed to BannerViewSelector.BuildCycle; OR'd with existing attentionDismissed.

Commit D (76b40a75) — Banner cycle lifted into ModalChrome (closes #526)

Banner cycle lifted into ModalChrome via singleton IBannerCycleStateService with coordinated open/close swap. New BannerHostLocation { MainLayout, InsideModal } enum. ModalChrome hosts <BannerHost Location=\"InsideModal\" /> inside <dialog> so chevrons stay reachable while modal open. ModalContentDisplayed flag flips true AFTER showModal() completes (eliminates banner flicker). Auto-clears in service's RebuildAndReselect when ActiveSession is null.

Stack

This PR is the second of three stacked on top of #553. Order:

  1. Settings UI restructure + DatabaseToolsModal extraction with per-row upgrade progress and modal-aware banner cycle #553 (foundation)
  2. PR 10 Commit A: AttentionBanner label + Settings focus ring + inline-alert z-index #554 (polish — Commit A)
  3. This PR (banners + per-row progress — Commits B+C+D)
  4. PR for Commits E+F (database row UX — closes Settings: no per-row spinner when an import-triggered or queued upgrade runs #525)

Tests

  • UI: 292 passing
  • Runtime: 1009 passing
  • Filtering: 869 passing

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR moves banner cycling into shared modal-aware state so banners remain reachable inside ModalChrome, suppresses the database attention banner while Database Tools is open, and shifts manage-database upgrade progress from a shared tab banner to per-row progress UI.

Changes:

  • Added BannerCycleStateService and modal/main BannerHost locations.
  • Embedded banner hosting inside ModalChrome and registered the cycle state service.
  • Replaced Manage tab upgrade banner with row-level upgrade progress/cancel behavior and updated tests.

Reviewed changes

Copilot reviewed 31 out of 31 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/EventLogExpert.Runtime/Banner/BannerViewSelector.cs Adds modal-context suppression for attention banners.
src/EventLogExpert.UI/Banner/BannerCycleStateService.cs Introduces shared banner cycle state and modal-aware selection.
src/EventLogExpert.UI/Banner/IBannerCycleStateService.cs Defines shared banner cycle state API.
src/EventLogExpert.UI/Banner/BannerHost.razor Renders banners from shared cycle state.
src/EventLogExpert.UI/Banner/BannerHost.razor.cs Switches host logic to shared cycle state and host locations.
src/EventLogExpert.UI/Banner/BannerHostLocation.cs Adds main-layout vs inside-modal location enum.
src/EventLogExpert.UI/Modal/ModalChrome.razor Hosts modal banner region inside the dialog.
src/EventLogExpert.UI/Modal/ModalChrome.razor.cs Updates modal-content displayed state after show/teardown.
src/EventLogExpert.UI/Database/DatabaseEntryRow.razor Adds per-row upgrade progress, cancel, and remove click guard.
src/EventLogExpert.UI/Database/DatabaseEntryRow.razor.cs Adds row progress state and handlers.
src/EventLogExpert.UI/Database/DatabaseEntryRow.razor.css Styles row-level progress/cancel UI.
src/EventLogExpert.UI/DatabaseTools/Tabs/ManageDatabasesTab.razor Removes shared progress banner and passes row progress.
src/EventLogExpert.UI/DatabaseTools/Tabs/ManageDatabasesTab.razor.cs Matches progress slots to database rows.
src/EventLogExpert.UI/DatabaseTools/Tabs/ManageDatabasesUpgradeProgressBanner.* Removes obsolete shared Manage tab progress banner.
src/EventLogExpert.UI/_Imports.razor Imports banner UI namespace.
src/EventLogExpert/Main.razor Wraps main BannerHost with explicit main-layout location.
src/EventLogExpert/MauiProgram.cs Registers shared banner cycle state service.
src/EventLogExpert/wwwroot/css/manage-status-banner.css Removes obsolete shared progress-banner styling.
tests/Unit/EventLogExpert.Runtime.Tests/Banner/BannerViewSelectorTests.cs Covers attention suppression in selector.
tests/Unit/EventLogExpert.UI.Tests/Banner/BannerCycleStateServiceTests.cs Adds shared cycle state tests.
tests/Unit/EventLogExpert.UI.Tests/Banner/BannerHostTests.cs Adds modal-aware host behavior tests.
tests/Unit/EventLogExpert.UI.Tests/Modal/ModalChromeTests.cs Adds modal banner-region and display-state tests.
tests/Unit/EventLogExpert.UI.Tests/Database/DatabaseEntryRowTests.cs Adds row progress/cancel/remove guard coverage.
tests/Unit/EventLogExpert.UI.Tests/DatabaseTools/Tabs/ManageDatabasesTabTests.cs Adds row progress matching and banner removal coverage.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/BannerHostDependenciesExtensions.cs Adds shared test service setup for banner host dependencies.
tests/Unit/EventLogExpert.UI.Tests/Settings/SettingsModalTests.cs Adds banner dependencies required by modal chrome.
tests/Unit/EventLogExpert.UI.Tests/DebugLog/DebugLogModalTests.cs Adds banner dependencies required by modal chrome.
tests/Unit/EventLogExpert.UI.Tests/Database/DatabaseRecoveryDialogTests.cs Adds banner dependencies required by modal chrome.
tests/Unit/EventLogExpert.UI.Tests/DatabaseTools/Tabs/ManageDatabasesUpgradeProgressBannerTests.cs Removes tests for deleted shared progress banner.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/EventLogExpert.UI/Database/DatabaseEntryRow.razor.cs Outdated
Comment thread src/EventLogExpert.UI/Database/DatabaseEntryRow.razor.cs
Comment thread src/EventLogExpert.UI/Banner/BannerCycleStateService.cs
@jschick04 jschick04 force-pushed the jschick/modal-coordinator-pr10-a branch from b97741f to 01b34fe Compare May 29, 2026 15:15
@jschick04 jschick04 force-pushed the jschick/modal-coordinator-pr10-bcd branch from 76b40a7 to 25f9db8 Compare May 29, 2026 15:26
@jschick04 jschick04 requested a review from Copilot May 29, 2026 15:50
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 31 out of 31 changed files in this pull request and generated 1 comment.

Comment thread src/EventLogExpert.UI/Database/DatabaseEntryRow.razor Outdated
@jschick04 jschick04 force-pushed the jschick/modal-coordinator-pr10-a branch from 01b34fe to bc6c1f6 Compare May 29, 2026 16:09
@jschick04 jschick04 force-pushed the jschick/modal-coordinator-pr10-bcd branch from 5a35925 to e3ec101 Compare May 29, 2026 16:15
@jschick04 jschick04 requested a review from Copilot May 29, 2026 16:42
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 31 out of 31 changed files in this pull request and generated no new comments.

@jschick04
Copy link
Copy Markdown
Collaborator Author

Stack collapsed back into #553 after panel-clean review. All commits from this branch are now part of #553's history (via rebase patch-id auto-skipping and direct cherry-pick equivalence). Closing as superseded — no code loss.

@jschick04 jschick04 closed this May 29, 2026
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.

2 participants