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
Conversation
Contributor
There was a problem hiding this comment.
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
BannerCycleStateServiceand modal/mainBannerHostlocations. - Embedded banner hosting inside
ModalChromeand 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.
b97741f to
01b34fe
Compare
76b40a7 to
25f9db8
Compare
01b34fe to
bc6c1f6
Compare
…oordinated open/close swap to eliminate flicker
…eProgress cancel faults, and awaited OnRemove EventCallback
…rt-triggered upgrades block restore
5a35925 to
e3ec101
Compare
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Banner orchestration + per-row upgrade progress for DatabaseToolsModal. Closes #526.
Commits
Commit B (
403211ab) — Per-row upgrade progress (partial #525)Removed
ManageDatabasesUpgradeProgressBannerfrom insideDatabaseToolsModalManage tab; surface upgrade progress (UpgradePhase verb + batch position + Cancel) per row inDatabaseEntryRow. 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)BannerHostinjectsIModalCoordinator; newattentionSuppressedByModalContextflag plumbed toBannerViewSelector.BuildCycle; OR'd with existingattentionDismissed.Commit D (
76b40a75) — Banner cycle lifted into ModalChrome (closes #526)Banner cycle lifted into
ModalChromevia singletonIBannerCycleStateServicewith coordinated open/close swap. NewBannerHostLocation { MainLayout, InsideModal }enum.ModalChromehosts<BannerHost Location=\"InsideModal\" />inside<dialog>so chevrons stay reachable while modal open.ModalContentDisplayedflag flips true AFTERshowModal()completes (eliminates banner flicker). Auto-clears in service'sRebuildAndReselectwhenActiveSessionis null.Stack
This PR is the second of three stacked on top of #553. Order:
Tests