Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue 7948 notification manager #2

Merged
merged 3 commits into from
Dec 9, 2024
Merged

Conversation

WavesJ99
Copy link
Owner

@WavesJ99 WavesJ99 commented Dec 9, 2024

Closes <!--- #1 nasa#7948 ---!>

Describe your changes:

This PR introduces a significant architectural improvement to OpenMCT's notification system by introducing a dedicated NotificationManager class and enhancing the NotificationAPI. The changes provide a more robust and flexible notification system while maintaining backward compatibility.

Key Changes
Introduces a new NotificationManager class to handle core notification logic
Adds support for notification grouping to manage related notifications
Implements a comprehensive priority system considering multiple factors
Adds support for custom notification categories
Introduces persistent notifications that resist auto-dismissal
Improves notification lifecycle management

Benefits
Better separation of concerns between API interface and notification management
Enhanced developer experience with more powerful notification APIs
Improved organization of notifications through grouping capability
More flexible notification categorization and prioritization
Better management of system-critical notifications through persistence

Implementation Details
The implementation splits the existing notification logic into two main components:
NotificationManager: Handles core notification management, grouping, and prioritization
Enhanced NotificationAPI: Provides an improved interface while maintaining backward compatibility

Testing
Added comprehensive test coverage for new functionality including:
NotificationManager unit tests
Enhanced NotificationAPI tests
Group management tests
Category and priority system tests

The changes are fully backward compatible and require no changes to existing notification usage.

All Submissions:

  • [ Y] Have you followed the guidelines in our Contributing document?
  • [ Y] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
  • [ N] Is this a notable change that will require a special callout in the release notes? For example, will this break compatibility with existing APIs or projects that consume these plugins?

Author Checklist

  • [ Y] Changes address original issue?
  • [ Y] Tests included and/or updated with changes?
  • [ Y] Has this been smoke tested?
  • [ Y] Have you associated this PR with a type: label? Note: this is not necessarily the same as the original issue.
  • Have you associated a milestone with this PR? Note: leave blank if unsure.
  • [ Y] Testing instructions included in associated issue OR is this a dependency/testcase change?

Reviewer Checklist

  • Changes appear to address issue?
  • Reviewer has tested changes by following the provided instructions?
  • Changes appear not to be breaking changes?
  • Appropriate automated tests included?
  • Code style and in-line documentation are appropriate?

@WavesJ99 WavesJ99 merged commit 39e66ca into master Dec 9, 2024
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.

1 participant