Repository navigation
Remove Cards from dashboard overview layouts - #21759
Maddy Montaquila (maddymontaquila) merged 4 commits into
Conversation
Use Summary or Graph for all-resource, grouped and multi-resource overviews. Migrate saved Cards and Resources choices to Summary while retaining single-resource details and existing preference behavior. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 21759Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 21759" |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🟡 Changes recommended
Removing the Cards renderer leaves two browser tests waiting for resource-card elements that no longer exist, causing timeouts unless their selectors and live-update assertions are updated.
1 open issue
2 files not reviewed
src/Aspire.Dashboard/Resources/ControlsStrings.Designer.cs: Generated filesrc/Aspire.Dashboard/Resources/Dialogs.Designer.cs: Generated file
What changed in this PR
Removes the duplicate Cards overview for all resources, groups, and multi-resource selections, supporting #21708 while retaining Summary, Graph, and individual resource details.
Changes:
- Removes Cards and the unused table renderer, along with their dedicated actions, styles, and resource strings.
- Makes Summary the default and fallback, migrates saved Cards/Resources choices, and updates layout labels and icons.
- Updates component coverage and adds browser scenarios for responsive controls, preference migration, selection, and keyboard navigation.
| File | Description |
|---|---|
tests/Aspire.Dashboard.Playwright.Tests/Integration/Playwright/ResourcePaneInteractionTests.cs |
Replaces Cards assertions with Summary assertions. |
tests/Aspire.Dashboard.Playwright.Tests/Integration/Playwright/OverviewLayoutTests.cs |
Adds responsive layout and navigation scenarios. |
tests/Aspire.Dashboard.Components.Tests/Model/DashboardViewPreferencesTests.cs |
Tests migration, defaults, and Graph fallback. |
tests/Aspire.Dashboard.Components.Tests/Dialogs/SettingsDialogTests.cs |
Checks remaining layout options and Summary icon. |
tests/Aspire.Dashboard.Components.Tests/Controls/ApplicationSummaryTests.cs |
Tests Summary defaults, scoping, and layout switching. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.zh-Hant.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.zh-Hans.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.tr.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.ru.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.pt-BR.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.pl.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.ko.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.ja.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.it.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.fr.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.es.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.de.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/Dialogs.cs.xlf |
Removes Cards and updates Summary text. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.zh-Hant.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.zh-Hans.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.tr.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.ru.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.pt-BR.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.pl.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.ko.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.ja.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.it.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.fr.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.es.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.de.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/xlf/ControlsStrings.cs.xlf |
Removes card-only parameter action labels. |
src/Aspire.Dashboard/Resources/Dialogs.resx |
Renames Home to Summary and removes Cards. |
src/Aspire.Dashboard/Resources/Dialogs.Designer.cs |
Removes the Cards resource accessor. |
src/Aspire.Dashboard/Resources/ControlsStrings.resx |
Removes unused short parameter action labels. |
src/Aspire.Dashboard/Resources/ControlsStrings.Designer.cs |
Removes corresponding action-label accessors. |
src/Aspire.Dashboard/Model/DashboardViewPreferences.cs |
Defaults to Summary and migrates removed layouts. |
src/Aspire.Dashboard/Components/Pages/ResourceOverview.razor |
Updates a comment to describe scoped Summary/Graph. |
src/Aspire.Dashboard/Components/Dialogs/SettingsDialog.razor.cs |
Offers Summary and Graph with the updated icon. |
src/Aspire.Dashboard/Components/Controls/ResourceActions.razor.css |
Removes card-specific action styling. |
src/Aspire.Dashboard/Components/Controls/ResourceActions.razor.cs |
Removes card mode and its label helpers. |
src/Aspire.Dashboard/Components/Controls/ResourceActions.razor |
Removes card-only action markup. |
src/Aspire.Dashboard/Components/Controls/ApplicationSummary.razor.css |
Removes Cards and table styles. |
src/Aspire.Dashboard/Components/Controls/ApplicationSummary.razor.cs |
Removes card helpers and age-refresh timer. |
src/Aspire.Dashboard/Components/Controls/ApplicationSummary.razor |
Removes Cards and table rendering branches. |
Review effort: Balanced
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are reported for the change consolidating overview layouts around Summary and Graph.
No open issues 🎉
1 resolved since last review
2 files not reviewed
src/Aspire.Dashboard/Resources/ControlsStrings.Designer.cs: Generated filesrc/Aspire.Dashboard/Resources/Dialogs.Designer.cs: Generated file
Review effort: Balanced
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
Sébastien Ros (sebastienros)
left a comment
There was a problem hiding this comment.
Approving. The product change holds up: saved Cards and Resources choices migrate to Summary, parameter-only selections still reach MissingParametersPanel, the disabled-graph fallback is right, and dropping the age timer loses nothing because Summary only shows absolute times. The .xlf changes look generated.
The six comments are all minor and fine as follow-ups: one cross-PR test risk, one localization gap, one wording bug, two orphan cleanups and one weakened test.
Merge order matters with #21423. Merge this PR first and retarget #21423 before it merges, because its template helper looks for the card markup removed here. The first comment has the details. #21711 doesn't interact with this PR: its pins are on the Metrics page's meter cards and the single-resource panel, and the one file they share, ResourceOverview.razor, changes about 200 lines away from the edit here.
I reviewed the code only and didn't run anything. PR CI is green at this commit, but the outerloop Playwright scenarios don't run there, so the new OverviewLayoutTests rest on the results in the description.
Localize Summary activity and insights, handle singular health headlines, remove orphaned table resources/styles, and verify all-resource selection with exact browser counts. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are reported for the dashboard simplification to Summary and Graph.
No open issues 🎉
3 files not reviewed
src/Aspire.Dashboard/Resources/ControlsStrings.Designer.cs: Generated filesrc/Aspire.Dashboard/Resources/Dialogs.Designer.cs: Generated filesrc/Aspire.Dashboard/Resources/Resources.Designer.cs: Generated file
Review effort: Balanced
Read resource names and states from the sidebar and preserve source verification through the individual resource status panel. Share the assertion with real-dashboard browser regressions for Summary, Graph, and incorrect sources. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Tests selector14 / 101 PR test projects · 2 PR jobs, from 65 changed files. Selected PR test projects (14 / 101)
Selected PR jobs (2)
How these were chosen — grouped by what changed
🔧 🧪 📦 affected project 🔧 🔧 🔧 🧪 🧪 🧪 🧪 🧪 🧪 Job reasons
Selection computed for commit |
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are recorded for the change replacing the Cards overview with Summary and Graph.
No open issues 🎉
3 files not reviewed
src/Aspire.Dashboard/Resources/ControlsStrings.Designer.cs: Generated filesrc/Aspire.Dashboard/Resources/Dialogs.Designer.cs: Generated filesrc/Aspire.Dashboard/Resources/Resources.Designer.cs: Generated file
Review effort: Balanced
|
Pull request created: #2056
|
|
📝 Documentation has been drafted in microsoft/aspire.dev#2056 targeting Documented the Overview layouts (Summary/Graph) and Cards removal in Note This draft PR needs human review before merging. |
Keep the sidebar/details helper and real-dashboard coverage from microsoft#21759, remove obsolete card-only tests, and preserve the template SDK isolation fix. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Description
The resource sidebar already provides resource browsing and actions. Remove the duplicate Cards overview layout for all resources, resource groups and multi-resource selections, leaving Summary and Graph.
Relates to #21708 (UX-24).
User-facing usage
Cardsand olderResourceschoices are explicitly rewritten toSummary. Missing or invalid choices fall back to Summary; existing Summary/Graph choices and numeric values remain compatible.Scope and integration
Based on freshly fetched upstream main
e626df45aea0be8ce47fe190f7cfbba350503489, including merged #21691. Its all-screen responsive icon controls and single-resource panel improvements are preserved.The only default/preference overlap included is inseparable from removing Cards: first-use/default resolution, removed-choice compatibility and the disabled-Graph display fallback must point to a remaining layout. This does not include UX06's separate saved-default/active-layout policy, session-storage/reload logic, Settings label changes or a changed Graph restoration policy. Settings retains its existing immediate behavior, and a disabled saved Graph choice remains stored as before.
Remove the Cards renderer and directly orphaned actions, styles, resources and unreachable table renderer. Preserve Summary widgets, single-resource Details, resource list density, sidebar search/selection, graph controls and parameter workflows. No widget customization or unrelated redesign.
Screenshots / Recordings
Actual Chromium captures from this branch's build with synthetic resources and telemetry. All 36 captures (six states at each size/theme) were inspected; the representative images below show the retained responsive controls, scoped Summary, Details and Graph. No horizontal overflow in the overview header/control checks; mobile/tablet content remains vertically scrollable. Console and page errors: 0 across the six capture contexts.
Settings: Summary and Graph only, at all three sizes in both themes
Multi-selection, resource group, preserved single-resource Details and Graph
Validation
Windows validation; quarantined tests excluded. Only the explicitly selected Playwright outerloop scenarios were opted into.
e626df45: Overview click remained on/consolelogsinstead of/resourcesgit diff --checkExisting limitations, not hidden by reruns: the pre-existing
AllResourcesRow_ClearsSelectionAndListsResourcesInOverviewnavigation timing failure also reproduces without this change; no unrelated navigation fix is included. The pinned SDK package emits baseline warning NU1903 forMicrosoft.DotNet.ILCompiler11.0.0-rc.2.26504.105, identically on pristine main and this branch. SDK/dependencies are unchanged. Cross-platform CI remains to run.Exact validation commands and results
Restore: passed.
.\restore.cmdFresh-main component baseline: 18 passed.
Final component union: 166 passed.
Playwright: initial 7/7 passed; final six new cases passed and one existing navigation case failed as described above.
Pristine-main control, with the focused changes temporarily stashed: failed with the identical
/consolelogsto/resourcesassertion.Build and localization: both passed.
Formatting on the changed files, run before committing: all passed. An initial charset finding in ApplicationSummary.razor.cs was corrected with the formatter.
Checklist
<remarks />and<code />elements on your triple slash comments?