[dev] Ideas toward a unified, consistent notification mechanism

Kevin Myer kevin_myer at iu13.org
Tue May 17 11:31:15 PDT 2005


I was reviewing some internal documentation we've developed for Horde and came
upon a part that described creating a new Task, with info about optional due
date and alarms.  The person writing the documentation assumed this was an
email notification and made that note.  Having never received an email
notification for any tasks, I wondered if maybe there was a script I had to run
regularly to generate notifications.  Nope, there wasn't one in the nag/scripts
folder.  Then I thought maybe the Kronolith notification script took care of
that, but it didn't appear to either.

What I found was the alarms display in the portal block and in the main Nag
overview page, both of which you may never see, if you have your default
Application set to IMP and don't routinely review all the tasks on your list
(since its depressing ;)

So that got me to thinking:  how can a consistent, unified approach be taken to
deliver notification throughout Horde?

There's currently several ways its done, and some apps use a combination of some
or all of these:

1) Email (Kronolith reminders)
2) Persistent display of messages (i.e. Nag alarms)
3) Temporal display of messages (status alert of creating a new folder, SMTP
server rejection message, successful import of entries into an app, etc.)

And then there's a whole class of notifications that I've seen requested and
which would be useful, which involves audio notification of new messages, etc.
And there's a class of notifications that doesn't exist, but would be useful,
like being notified when a supervisor adds something to your tasklist (or
notifiying your supervisor when you mark something complete on your task list).

So I'm thinking that two things would be useful:  expansion of the current
Notification class to include the idea of an Observer Mechanism (discussion at
http://bugs.horde.org/ticket/?id=1568) and a unified way of presenting
notifications, be that a portal block, or something in the left frame, or maybe
something like mottle, where messages are displayed and you can control what
happens to them, they expire (but with permissions automatically set by Horde).
 You could define a log level for each notification and allow the user to
choose what levels they want to be notified on - Fatal, Alarm, Warning,
Informational (or whatever).  You could choose the mechanism you wanted to be
notified by (email, visual, audible, etc.)  You could tie in some of the
requests I've seen to have notifications go to a separate identity created
specifically for notification, for example, an SMS gateway.

Gone would be different notification behavior in different apps.  An alarm would
be an alarm would be an alarm and you could expect to be notified the same way,
regardless of the application.

I'm much better at big picture, conceptual ideas than coding them, but I think a
lot of this may already be written, and its just a matter of tying it
altogether and putting a nice interface on it (which is one of the big benefits
I see of the Horde Framework :)

Kevin

-- 
Kevin M. Myer
Senior Systems Administrator
Lancaster-Lebanon Intermediate Unit 13  http://www.iu13.org



More information about the dev mailing list