Add close button to growler logs too.
authorJan Schneider <jan@horde.org>
Fri, 12 Feb 2010 15:39:18 +0000 (16:39 +0100)
committerJan Schneider <jan@horde.org>
Fri, 12 Feb 2010 15:39:18 +0000 (16:39 +0100)
horde/js/Growler.js
horde/themes/screen.css

index 33798cd..9e85e05 100644 (file)
         });
     }
 
+    function removeLog(l)
+    {
+        try {
+            var le = l.down('DIV.GrowlerNoticeExit');
+            if (!Object.isUndefined(le)) {
+                le.stopObserving('click', removeLog);
+            }
+        } catch (e) {}
+        try {
+            l.remove();
+        } catch (e) {}
+    }
+
     window.Growler = Class.create({
 
         initialize: function(opts)
         growl: function(msg, options)
         {
             options = options || {};
-            var notice, noticeExit, tmp,
+            var notice, noticeExit, log, logExit, tmp,
                 opts = Object.clone(noticeOptions);
             Object.extend(opts, options);
 
                 if (tmp.down().hasClassName('NoAlerts')) {
                     tmp.down().remove();
                 }
-                tmp.insert(new Element('LI', { className: opts.className.empty() ? null : opts.className }).insert(msg).insert(new Element('SPAN', { className: 'alertdate'} ).insert('[' + (new Date).toLocaleString() + ']')));
+                log = new Element('LI', { className: opts.className.empty() ? null : opts.className }).insert(msg).insert(new Element('SPAN', { className: 'alertdate'} ).insert('[' + (new Date).toLocaleString() + ']'));
+                logExit = new Element('DIV', { className: 'GrowlerNoticeExit' }).update("&times;");
+                logExit.observe('click', removeLog.curry(log));
+                log.insert(logExit);
+                tmp.insert(log);
             }
 
             notice = new Element('DIV', { className: 'GrowlerNotice' }).setStyle({ display: 'block', opacity: 0 });
index a56780d..77b967a 100644 (file)
@@ -961,14 +961,6 @@ table.calendarPopup {
 #Growler div.GrowlerNoticeHead {
     font-weight: bold;
 }
-#Growler div.GrowlerNoticeExit {
-    float: right;
-    font-weight: bold;
-    cursor: pointer;
-}
-#Growler div.GrowlerNoticeExit:hover {
-    color: #444;
-}
 #Growler div.horde-error, #GrowlerLog li.horde-error {
     background-image: url("graphics/alerts/error.png");
 }
@@ -1024,6 +1016,14 @@ table.calendarPopup {
     font-style: italic;
     padding-left: 10px;
 }
+div.GrowlerNoticeExit {
+    float: right;
+    font-weight: bold;
+    cursor: pointer;
+}
+div.GrowlerNoticeExit:hover {
+    color: #444;
+}
 .horde-message, .horde-success, .horde-warning, .horde-error {
     border-color: #316600;
     background-color: #5db110;