Skip to content

UI detail sheet polish 3: notifications, saved views, and stack trace readability#2272

Merged
ejsmith merged 6 commits into
mainfrom
ui/detail-sheet-polish-3
Jun 1, 2026
Merged

UI detail sheet polish 3: notifications, saved views, and stack trace readability#2272
ejsmith merged 6 commits into
mainfrom
ui/detail-sheet-polish-3

Conversation

@ejsmith
Copy link
Copy Markdown
Member

@ejsmith ejsmith commented May 31, 2026

Summary

Batch of UI polish and feature improvements for the new Svelte frontend.

Changes

System Notifications — Level Support

  • Added Level enum (Info, Warning, Error) to SystemNotification model
  • NotificationService.SetSystemNotificationAsync accepts a level parameter
  • Admin UI: level selector in the Set Notification dialog, level shown in status display
  • Frontend notification component maps level → variant (info→information, warning→warning, error→destructive)

Predefined Saved Views

  • Added new "All" events view (no type filter, sorted by -date)
  • Added visible project filter (no value pre-selected) to all 6 predefined views so users discover they can filter by project
  • Reset PredefinedSavedViewsVersion to 1 (feature hasn't launched yet)
  • Removed legacy issues → stacks key fallback from PredefinedSavedViewsDataSeed — no backwards compat needed
  • Removed ToFallbackSlug and all slug fallback logic — all saved views have slugs persisted

Filter Badge

  • Badge showing hidden filter count now correctly hides when all filters are revealed (showHiddenFilters = true)
  • Tooltip updates to remove count when expanded

Stack Trace Readability

  • Improved method name, offset, and parameter namespace colors for light theme contrast

ejsmith added 3 commits May 30, 2026 17:12
- Restyle event tabs to match settings nav (bg-muted, gap, rounded-lg)
- Add active tab dark mode styling (bg-background, shadow-xs)
- Update stack trace container (bg-muted/50, rounded-xl, border)
- Fix code component whitespace and use cn() for class merging
- Change syntax colors: purple-400 -> purple-300, emerald-400 -> green-300
- Restyle copy buttons to icon-sm outline variant
- Use keepPreviousData to prevent flash on event navigation
…, UI polish

- Add Level (Info/Warning/Error) to system notifications (backend + frontend)
- Add 'All' events predefined saved view with project filter on all views
- Reset PredefinedSavedViewsVersion to 1 (feature hasn't launched)
- Remove legacy issues->stacks fallback from PredefinedSavedViewsDataSeed
- Remove ToFallbackSlug and slug fallback logic (all views have slugs)
- Fix filter badge visibility when all filters are shown
- Improve stack trace colors for light theme readability
- Remove Save/Delete Predefined menu items from saved-view-picker dropdown
- Add PUT saved-views/predefined endpoint to replace all predefined views from JSON
- Add GET organizations/{id}/saved-views/export endpoint to export org views as predefined definitions
- Enhance admin actions dialog with tabs (Current Config / Load from Org), org selector, editable JSON textarea, and Save button
- Flow: create org with desired views → export org views → edit JSON → save as new predefined set
Comment thread src/Exceptionless.Web/Controllers/SavedViewController.cs Fixed
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

Polishes the new Svelte frontend across three areas: system notifications gain a severity Level, predefined saved views get a new "All" view plus a visible project filter and full slug enforcement, and stack trace markup gets light/dark color pairings.

Changes:

  • Adds SystemNotificationLevel (Info/Warning/Error) end-to-end (model, service, controller request, admin UI, notification component) and replaces the old ValueFromBody<string> POST body with SetSystemNotificationRequest.
  • Reworks predefined saved views: removes slug-fallback paths (ToFallbackSlug and legacy issues→stacks key), resets PredefinedSavedViewsVersion to 1, adds export/replace admin endpoints + dialog, seeds a new events:all view, and adds a visible project filter to every predefined view.
  • Polishes UI: hidden-filter badge/tooltip hide when filters are expanded, and stack trace components use paired light/dark Tailwind color classes for readability.

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/Exceptionless.Core/Models/Messaging/SystemNotification.cs Adds SystemNotificationLevel enum to the messaging model.
src/Exceptionless.Core/Services/NotificationService.cs Accepts and stores notification level.
src/Exceptionless.Web/Controllers/StatusController.cs Replaces POST body with SetSystemNotificationRequest containing message + level.
src/Exceptionless.Web/Controllers/SavedViewController.cs Resets version to 1, removes slug fallbacks, adds org export and replace-predefined endpoints.
src/Exceptionless.Core/Seed/PredefinedSavedViewsDataSeed.cs Drops legacy issues→stacks key fallback during seed updates.
src/Exceptionless.Core/Seed/predefined-saved-views.json Adds events:all view and a visible project filter on each definition.
tests/Exceptionless.Tests/Controllers/SavedViewControllerTests.cs Bumps predefined view count assertions from 5→6 (and 4→5).
ClientApp/.../notifications/api.svelte.ts Mutation now posts { level, message } instead of { value }.
ClientApp/.../websockets/models.ts Adds optional level field to SystemNotification.
ClientApp/.../notifications/components/notifications.svelte Maps level → variant/icon for the displayed banner.
ClientApp/.../system/notifications/+page.svelte Adds level select to admin Set Notification dialog.
ClientApp/.../admin/api.svelte.ts Adds getOrgSavedViewsExportMutation and putPredefinedSavedViewsMutation.
ClientApp/.../system/actions/[[category]]/+page.svelte Replaces JSON viewer with editable predefined-saved-views dialog including org export tab.
ClientApp/.../saved-views/slugs.ts savedViewResolvedSlug no longer falls back to a computed slug.
ClientApp/.../saved-views/components/saved-view-picker.svelte Removes the per-view predefined promote/delete menu items.
ClientApp/.../shared/components/faceted-filter/faceted-filter-builder.svelte Hides hidden-filter badge and trims tooltip when showHiddenFilters is true.
ClientApp/.../events/components/stack-trace/* + simple-stack-trace-header.svelte Updates colors to light/dark Tailwind pairs for readability.

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

Comment thread src/Exceptionless.Core/Models/Messaging/SystemNotification.cs
Comment thread src/Exceptionless.Web/Controllers/StatusController.cs Outdated
ejsmith added 3 commits May 31, 2026 21:29
…get options

- Added dismiss button to system notification banner for user convenience.
- Updated system notification model to include target options (Both, Legacy, Modern).
- Refactored notification handling in the admin panel to support new target options.
- Improved notification display logic to sanitize HTML content for safety.
- Created a new page for managing predefined saved views with clipboard functionality.
- Removed deprecated code related to predefined saved views management.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 1, 2026

Code Coverage

Package Line Rate Branch Rate Complexity Health
Exceptionless.Insulation 25% 23% 203
Exceptionless.Web 73% 62% 3938
Exceptionless.AppHost 18% 9% 82
Exceptionless.Core 69% 63% 7901
Summary 68% (13661 / 20005) 62% (7190 / 11670) 12124

@ejsmith ejsmith merged commit a3c8d58 into main Jun 1, 2026
9 checks passed
@ejsmith ejsmith deleted the ui/detail-sheet-polish-3 branch June 1, 2026 03:04
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