Skip to content

Notification_System

movitto edited this page Jan 16, 2013 · 4 revisions

Notification System

This page describes an outline for adding a more robust notifications system to Conductor. It is somewhat based on task #3623.

Background

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.

Features

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.

Prior Work

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.

Initial Implementation

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.

Future Work

  • Work on common notifications module with Katello
  • E-mail notifications
  • Decide whether we can replace events

Attached screenshots

These show an example of the Katello implementation. Also note the “6” in the header, indicating 6 unread notifications:

Clone this wiki locally