-
Notifications
You must be signed in to change notification settings - Fork 27
Notification_System
This page describes an outline for adding a more robust notifications system to Conductor. It is somewhat based on task #3623.
In Conductor today, our “Alerts” are not a true model - we merely list failed instances (or something along those lines). We want to add actual notifications, which can be dismissed. Much of the impetus for this comes from but it is generally useful in any event.
From some discussion, it seems like we need:
- The ability to target a notification to multiple users, or a group of users based on Role (e.g., all Global Administrators, and the owner of a deployable)
- A system to easily translate notifications: in other words, notifications should be a dictionary key rather than straight text.
- Dismissable notifications shown in the UI
- Email notifications
We may want to add configurable notification preferences for users as well, since different users might care about different notifications available to them.
It is important to note that Conductor plans on tight integration with Converge-UI. This means that much of the UI and styling decisions will be made for us.
Katello already has a notification system that allows the following:
- alert multiple users
- track what has been viewed
- set a notification level
See their lib/notifications/notifier.rb and app/models/notice.rb for some implementation information. Also, see the “Attached screenshots” section below.
The initial implementation will be a modified version of the Katello notification system. Modifications include:
- replacing organization associations with a polymorphic association
- having notifications store a dictionary key rather than straight text
Notifications will be added in parallel to current Conductor events, with an eye on potentially replacing events in the future.
For the UI portion, we will rely on Converge UI to provide the following:
- header notifications
- notifications center
Until that is ready, a basic notifications index page will be created.
- Work on common notifications module with Katello
- E-mail notifications
- Decide whether we can replace events
These show an example of the Katello implementation. Also note the “6” in the header, indicating 6 unread notifications: