Polish next UI saved views and sample data#2244
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR polishes the “next UI” saved-views experience by removing the undeployed default-view behavior, adding support for persisting table column visibility + column order in saved views, expanding keyboard shortcut/navigation UX, and improving sample event generation (higher defaults, better stacking, and retention-backed date ranges).
Changes:
- Replace saved-view “default” behavior (
is_default) with column ordering support (column_order) across API, models, validation, and UI state hydration. - Enhance the next UI shell: keyboard shortcuts + dialog, command palette actions, sidebar/menu interactions, and various shared component UI tweaks.
- Improve sample data generation defaults and allow generation across the requested retention-backed date range (via an extended event-date-range flag).
Reviewed changes
Copilot reviewed 62 out of 64 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/http/saved-views.http | Update HTTP samples to use column_order instead of is_default. |
| tests/Exceptionless.Tests/Utility/RandomEventGeneratorTests.cs | Add tests for sample event generator behavior (error log presence, stack signature reuse). |
| tests/Exceptionless.Tests/Pipeline/CheckEventDateActionTests.cs | Add coverage for extended event date-range retention behavior. |
| tests/Exceptionless.Tests/Mapping/SavedViewMapperTests.cs | Update mapping tests to validate ColumnOrder instead of IsDefault. |
| tests/Exceptionless.Tests/Controllers/SavedViewControllerTests.cs | Remove default-view tests and add column-order validation tests; adjust filter-def max-length test. |
| tests/Exceptionless.Tests/Controllers/Data/openapi.json | Update OpenAPI snapshot for column_order and max filter definition length. |
| src/Exceptionless.Web/Models/SavedView/ViewSavedView.cs | Replace IsDefault with ColumnOrder in view model. |
| src/Exceptionless.Web/Models/SavedView/UpdateSavedView.cs | Add ColumnOrder, update max-length constant usage, and validate column order. |
| src/Exceptionless.Web/Models/SavedView/NewSavedView.cs | Expand valid column IDs, add/validate ColumnOrder, and update max-length constant usage. |
| src/Exceptionless.Web/Controllers/SavedViewController.cs | Remove default-view logic; add column-order validation for PATCH; use shared max-length constant. |
| src/Exceptionless.Web/Controllers/AdminController.cs | Increase default sample event generation count to 250. |
| src/Exceptionless.Web/ClientApp/src/routes/routes.svelte.ts | Add route-level shortcut metadata and remove default-view navigation fields. |
| src/Exceptionless.Web/ClientApp/src/routes/(auth)/routes.svelte.ts | Adjust auth route display text casing. |
| src/Exceptionless.Web/ClientApp/src/routes/(auth)/login/+page.svelte | Polish login layout and add dev credential prefill action. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/stream/+page.svelte | Wire saved views into column visibility + column order for stream table. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/routes.svelte.ts | Add keyboard shortcut metadata for navigation items. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/project/[projectId]/integrations/+page.svelte | Improve button accessibility attributes for “Add Webhook”. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/issues/+page.svelte | Wire saved views into column order and adjust route binding shape. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/+page.svelte | Wire saved views into column visibility + column order for events table. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/+layout.svelte | Add global keyboard shortcuts, command palette integrations, and new shortcuts dialog. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/(components)/navigation-command.svelte | Show per-route shortcuts and add command items for org switch/user menu/shortcuts dialog. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/(components)/layouts/sidebar.svelte | Update active-route logic and improve collapsible behavior with saved-view children. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/(components)/layouts/sidebar-user.svelte | Convert menu navigation to onSelect handlers and add keyboard shortcuts entry. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/(components)/layouts/sidebar-organization-switcher.svelte | Add programmatic open/focus behavior and convert links to menu selections. |
| src/Exceptionless.Web/ClientApp/src/routes/(app)/(components)/keyboard-shortcuts-dialog.svelte | Add a dialog that lists app shell keyboard shortcuts. |
| src/Exceptionless.Web/ClientApp/src/lib/generated/schemas.ts | Update generated schemas for column_order and filter-def length; remove is_default. |
| src/Exceptionless.Web/ClientApp/src/lib/generated/api.ts | Update generated API types for column_order; remove is_default. |
| src/Exceptionless.Web/ClientApp/src/lib/features/stacks/components/table/stack-status-cell.svelte | Simplify status rendering and use typed stack status options. |
| src/Exceptionless.Web/ClientApp/src/lib/features/stacks/components/table/options.svelte.ts | Update stack status cell typing to use Stack['status']. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/table.svelte.ts | Add persisted column order support and sanitize/resolve column order against column defs. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/keyboard-shortcuts.ts | Define app shortcut registry and add shortcut matching helper. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/keyboard-shortcuts.test.ts | Add tests for shortcut formatting and matching behavior. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/ui/dropdown-menu/dropdown-menu-item.svelte | Improve highlighted/focus styling consistency. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte | Adjust checkbox item spacing/layout. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/ui/command/command-shortcut.svelte | Render shortcuts as <kbd> with improved styling. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/ui/command/command-dialog.svelte | Slight overlay styling adjustment for command dialog. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/ui/button/button.svelte | Normalize primary/success button styling and icon stroke weights. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/ui/badge/badge.svelte | Add info and yellow badge variants. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/notification/notification.svelte | Adjust “information” notification styling. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/faceted-filter/faceted-filter-builder.svelte | Improve filter button labels/accessibility and show hidden-filter count badge. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/faceted-filter/faceted-filter-actions.svelte | Normalize capitalization for filter action labels. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/data-table/data-table-view-options.svelte | Prevent hiding the last visible hideable column. |
| src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/data-table/data-table-body.svelte | Improve table cell/header alignment and width handling with select column special-casing. |
| src/Exceptionless.Web/ClientApp/src/lib/features/saved-views/use-saved-views.test.ts | Update test fixtures to remove is_default and include column_order. |
| src/Exceptionless.Web/ClientApp/src/lib/features/saved-views/use-saved-views.svelte.ts | Add column order support and remove default-view auto-restore behavior. |
| src/Exceptionless.Web/ClientApp/src/lib/features/saved-views/components/saved-view-picker.svelte | Add column reorder UI and save column_order with saved views. |
| src/Exceptionless.Web/ClientApp/src/lib/features/saved-views/components/save-view-dialog.svelte | Remove “set as default” option from save dialog. |
| src/Exceptionless.Web/ClientApp/src/lib/features/saved-views/api.svelte.ts | Remove cache logic that enforced one default saved view per type. |
| src/Exceptionless.Web/ClientApp/src/lib/features/organizations/components/dialogs/impersonate-organization-dialog.svelte | Normalize button label capitalization. |
| src/Exceptionless.Web/ClientApp/src/lib/features/events/components/table/stack-status-cell.svelte | Render stack status label directly (instead of badge component). |
| src/Exceptionless.Web/ClientApp/src/lib/features/events/components/table/options.svelte.ts | Add new event table columns, defaults for visibility, and support column IDs/order. |
| src/Exceptionless.Web/ClientApp/src/lib/features/events/components/log-level.svelte | Map log levels to new badge variants (info/yellow/destructive/etc.). |
| src/Exceptionless.Web/ClientApp/src/lib/features/events/components/extended-data-item.svelte | Normalize action title capitalization. |
| src/Exceptionless.Web/ClientApp/src/app.css | Update chart palette variables and tweak chart area opacity. |
| src/Exceptionless.Core/Utility/SampleDataService.cs | Increase default sample event generation count to 250. |
| src/Exceptionless.Core/Utility/RandomEventGenerator.cs | Improve sample event distributions (error log events, more stacking, better messages). |
| src/Exceptionless.Core/Repositories/Configuration/Indexes/SavedViewIndex.cs | Remove IsDefault field mapping from saved view index. |
| src/Exceptionless.Core/Plugins/EventProcessor/EventContext.cs | Add AllowExtendedEventDateRange flag to pipeline context. |
| src/Exceptionless.Core/Pipeline/EventPipeline.cs | Thread allowExtendedEventDateRange option into pipeline entrypoints. |
| src/Exceptionless.Core/Pipeline/001_CheckEventDateAction.cs | Allow bypassing the 3-day cutoff when extended range is enabled (still respects retention). |
| src/Exceptionless.Core/Models/WorkItems/GenerateSampleEventsWorkItem.cs | Increase default work item event count to 250. |
| src/Exceptionless.Core/Models/SavedView.cs | Add max-length constant, replace IsDefault with ColumnOrder. |
| src/Exceptionless.Core/Jobs/WorkItemHandlers/GenerateSampleEventsWorkItemHandler.cs | Generate sample events across requested daysBack and enable extended date range in pipeline. |
| src/Exceptionless.Core/Bootstrapper.cs | Use new default sample generation parameters instead of hard-coded values. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
Summary
Validation
dotnet build /property:GenerateFullPaths=true /consoleloggerparameters:NoSummarydotnet test -- --filter-class Exceptionless.Tests.Pipeline.CheckEventDateActionTestsdotnet test -- --filter-class Exceptionless.Tests.Utility.RandomEventGeneratorTestsnpm run checknpm run lintgit diff --check