[Tickets #7470] Sunbird/Lightning alarm dismissal and snooze incompletely implemented

bugs at horde.org bugs at horde.org
Fri Oct 10 17:32:23 UTC 2008


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/7470
------------------------------------------------------------------------------
  Ticket             | 7470
  Created By         | elliot at marlboro.edu
  Summary            | Sunbird/Lightning alarm dismissal and snooze
                     | incompletely implemented
  Queue              | Kronolith
  Version            | 2.3
  Type               | Bug
  State              | Unconfirmed
  Priority           | 2. Medium
  Milestone          |
  Patch              | 1
  Owners             |
+New Attachment     | iCalendar.patch
------------------------------------------------------------------------------


elliot at marlboro.edu (2008-10-10 13:32) wrote:

Subscribing to an ics file via the rpc.php file and kronolith stores  
and returns alarms but not dismissals or snoozes.  This causes alarms  
to fire every time the remote calendar is refreshed and can lead to  
mental instability.

It appears that there is no specification for sending alarm dismissals  
or snoozes to and from a server which would lead one to believe that  
they should be stored on the client.  Sadly Sunbird and Lightning send  
these items with their own tags in the ics file and expect to get them  
back when they refresh their calendars.

It appears that groupware implementations are starting to implement  
some version of this unofficial system to stop their users from going  
insane clicking dismiss every five or ten minutes.  Bedework has  
implemented dismissals by storing the X-MOZ-LASTACK as sent by Sunbird  
and then returning the value when the calendar is next requested.

I thought it would be slightly nicer if the data was stored in the  
appropriate locations within horde and kronolith so that the same  
alarms do not fire in kronolith after they have been dismissed by  
Sunbird and vice versa.

Attached is my proposed fix.  It may not be the most efficient way of  
solving the problem, but it seems to work in our minimal testing.
Here's how it attempts to work:

1. Sunbird requests an ics file
2. Horde checks to see if the alarms have been dismissed or snoozed  
and returns an X-MOZ-LASTACK if dismissed and an additional  
X-MOZ-SNOOZE-TIME if snoozed based on horde_alarms
3. Sunbird dismisses or snoozes an event
4. Horde updates the alarm_snooze and alarm_dismissed columns in  
horde_alarms accordingly

The attached patches are for lib/Horde/iCalendar.php and  
kronolith/lib/Driver.php and are based off of the kronolith 2.3  
release (Webmail 1.2)






More information about the bugs mailing list