Fix race condition when new alarms arrive faster than growlers are created.
authorJan Schneider <jan@horde.org>
Mon, 8 Feb 2010 22:06:59 +0000 (23:06 +0100)
committerJan Schneider <jan@horde.org>
Mon, 8 Feb 2010 22:06:59 +0000 (23:06 +0100)
kronolith/js/kronolith.js

index a609e05..b84923c 100644 (file)
@@ -139,6 +139,10 @@ KronolithCore = {
                 if (this.alarms.indexOf(m.alarm.id) != -1) {
                     break;
                 }
+                if (m.type == 'horde.alarm') {
+                    this.alarms.push(m.alarm.id);
+                }
+
                 message = m.alarm.title.escapeHTML();
                 if (!Object.isUndefined(m.alarm.ajax)) {
                     message = new Element('a')
@@ -164,15 +168,8 @@ KronolithCore = {
                     sticky: true
                 });
 
-                document.observe('Growler:created', function() {
-                    if (m.type == 'horde.alarm') {
-                        this.alarms.push(m.alarm.id);
-                    }
-                }.bind(this));
                 document.observe('Growler:destroyed', function() {
-                    if (m.type == 'horde.alarm') {
-                        this.alarms = this.alarms.without(m.alarm.id);
-                    }
+                    this.alarms = this.alarms.without(m.alarm.id);
                 }.bind(this));
 
                 if (m.alarm.user) {