Skip to content

Polish saved views and filters#2241

Merged
niemyjski merged 6 commits into
mainfrom
saved-view-refactor
May 18, 2026
Merged

Polish saved views and filters#2241
niemyjski merged 6 commits into
mainfrom
saved-view-refactor

Conversation

@ejsmith
Copy link
Copy Markdown
Member

@ejsmith ejsmith commented May 18, 2026

Summary

  • Persist saved-view table sort through backend models, API DTOs, generated client types, routes, sidebar links, and save/update flows.
  • Consolidate saved-view actions and column visibility into the View menu on Events, Issues, and Stream.
  • Add hidden filter state with serialization/deserialization support and show/hide controls in the faceted-filter UI.
  • Delay saved-view websocket invalidation after add/save events so optimistic cache updates remain visible through Elasticsearch refresh timing.
  • Bump Aspire AppHost/testing packages to 13.3.3 and add the Kibana dashboard creation script.

Validation

  • npm run build
  • npm run check
  • npm run test:unit -- src/lib/features/saved-views/use-saved-views.test.ts --run
  • dotnet test tests/Exceptionless.Tests/Exceptionless.Tests.csproj -- --filter-class Exceptionless.Tests.Mapping.SavedViewMapperTests
  • dotnet test tests/Exceptionless.Tests/Exceptionless.Tests.csproj -- --filter-class Exceptionless.Tests.Controllers.SavedViewControllerTests

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 expands saved views to preserve table sort and structured/hidden filter state, moves view-related controls into a consolidated menu, refreshes saved-view cache invalidation behavior, and adds supporting backend/API/test/package/script updates.

Changes:

  • Adds sort to saved-view backend models, DTOs, generated client types, API validation, mapping tests, and HTTP samples.
  • Updates Events/Issues/Stream UI to use saved-view titles, serialize filter definitions, consolidate view/column controls, and support hidden filters.
  • Delays saved-view websocket invalidations, bumps Aspire package versions, and adds a Kibana dashboard creation script.

Reviewed changes

Copilot reviewed 49 out of 51 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
.github/workflows/copilot-setup-steps.yml Bumps Aspire CLI setup version.
k8s/create-kibana-dashboard.ps1 Adds Kibana dashboard creation automation.
src/Exceptionless.AppHost/Exceptionless.AppHost.csproj Bumps Aspire AppHost/hosting package versions.
src/Exceptionless.Core/Models/SavedView.cs Adds persisted saved-view sort field.
src/Exceptionless.Web/Controllers/SavedViewController.cs Adds PATCH length validation for sort.
src/Exceptionless.Web/Models/SavedView/NewSavedView.cs Adds sort to create DTO.
src/Exceptionless.Web/Models/SavedView/UpdateSavedView.cs Adds sort to update DTO.
src/Exceptionless.Web/Models/SavedView/ViewSavedView.cs Adds sort to view DTO.
src/Exceptionless.Web/ClientApp/src/lib/generated/api.ts Adds sort to generated saved-view interfaces.
src/Exceptionless.Web/ClientApp/src/lib/generated/schemas.ts Adds sort to generated saved-view schemas.
src/Exceptionless.Web/ClientApp/src/lib/features/shared/table.svelte.ts Synchronizes TanStack sorting state with query sort.
src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/faceted-filter/* Adds hidden-filter state/actions and adjusts filter builder layout.
src/Exceptionless.Web/ClientApp/src/lib/features/events/components/filters/* Propagates hidden-filter state through event filter models, UI wrappers, serialization, and tests.
src/Exceptionless.Web/ClientApp/src/lib/features/saved-views/api.svelte.ts Delays add/save websocket invalidations and syncs created views with explicit organization id.
src/Exceptionless.Web/ClientApp/src/lib/features/saved-views/use-saved-views.svelte.ts Adds sort query support and filter-definition dirty checking.
src/Exceptionless.Web/ClientApp/src/lib/features/saved-views/use-saved-views.test.ts Adds sort/cache invalidation coverage.
src/Exceptionless.Web/ClientApp/src/lib/features/saved-views/components/saved-view-picker.svelte Reworks saved-view menu and folds column visibility into it.
src/Exceptionless.Web/ClientApp/src/routes/(app)/+page.svelte Adds Events sort query wiring, saved-view title, filter serialization, and View menu integration.
src/Exceptionless.Web/ClientApp/src/routes/(app)/issues/+page.svelte Adds Issues sort query wiring, saved-view title, filter serialization, and View menu integration.
src/Exceptionless.Web/ClientApp/src/routes/(app)/stream/+page.svelte Adds Stream saved-view title, filter serialization, and View menu integration.
src/Exceptionless.Web/ClientApp/src/routes/(app)/+layout.svelte Includes saved-view sort in sidebar links.
src/Exceptionless.Web/ClientApp/src/routes/(app)/(components)/layouts/sidebar.svelte Updates settings active-route detection.
src/Exceptionless.Web/ClientApp/src/routes/(app)/organization/list/+page.svelte Removes organization-list helper text.
tests/Exceptionless.Tests/Controllers/SavedViewControllerTests.cs Adds saved-view sort create/update/validation coverage.
tests/Exceptionless.Tests/Controllers/Data/openapi.json Updates OpenAPI fixture for saved-view sort.
tests/Exceptionless.Tests/Mapping/SavedViewMapperTests.cs Adds saved-view sort mapping assertions.
tests/Exceptionless.Tests/Exceptionless.Tests.csproj Bumps Aspire testing package version.
tests/http/saved-views.http Adds sort examples to saved-view HTTP samples.

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

Comment thread k8s/create-kibana-dashboard.ps1 Outdated
Comment thread src/Exceptionless.Web/ClientApp/src/routes/(app)/issues/+page.svelte Outdated
@github-actions
Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
Exceptionless.Web 60% 46% 3910
Exceptionless.AppHost 18% 9% 82
Exceptionless.Insulation 25% 23% 203
Exceptionless.Core 67% 61% 7728
Summary 63% (12767 / 20379) 55% (6327 / 11464) 11923

@niemyjski niemyjski merged commit 05f887b into main May 18, 2026
10 checks passed
@niemyjski niemyjski deleted the saved-view-refactor branch May 18, 2026 17:00
niemyjski pushed a commit that referenced this pull request May 19, 2026
* Polish saved views and filters

* Fix faceted filter formatting

* Fix client lint issues

* Update OpenAPI saved view sort baseline

* Address saved view PR feedback
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.

3 participants