Move alerts log into Growler
authorMichael M Slusarz <slusarz@curecanti.org>
Tue, 14 Apr 2009 03:38:03 +0000 (21:38 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 14 Apr 2009 03:38:03 +0000 (21:38 -0600)
imp/js/src/DimpBase.js
imp/js/src/DimpCore.js
imp/lib/DIMP.php
imp/templates/index/index-dimp.inc

index f18ded9..acec3b7 100644 (file)
@@ -2359,6 +2359,11 @@ var DimpBase = {
             this.sfiltersfolder.unset('sf_all');
         }
 
+        /* Remove unavailable menu items. */
+        if (!$('GrowlerLog')) {
+            $('alertsloglink').remove();
+        }
+
         /* Check for new mail. */
         this.setPollFolders();
 
index 715229c..198f0eb 100644 (file)
@@ -212,81 +212,27 @@ var DimpCore = {
             case 'imp.reply':
             case 'imp.forward':
             case 'imp.redirect':
-                var log, tmp,
-                    msg = m.message;
-
-                if (!this.Growler) {
-                    this.Growler = new Growler({ location: 'br' });
+                var log = 0;
+
+                switch (m.type) {
+                case 'horde.error':
+                case 'horde.message':
+                case 'horde.success':
+                case 'horde.warning':
+                    log = 1;
+                    break;
                 }
 
-                this.Growler.growl(msg, {
+                this.Growler.growl(m.message, {
                     className: m.type.replace('.', '-'),
                     life: 8,
+                    log: log,
                     sticky: m.type == 'horde.error'
                 });
-
-                if (tmp = $('hordeAlertslog')) {
-                    switch (m.type) {
-                    case 'horde.error':
-                        log = DIMP.text.alog_error;
-                        break;
-
-                    case 'horde.message':
-                        log = DIMP.text.alog_message;
-                        break;
-
-                    case 'horde.success':
-                        log = DIMP.text.alog_success;
-                        break;
-
-                    case 'horde.warning':
-                        log = DIMP.text.alog_warning;
-                        break;
-                    }
-
-                    if (log) {
-                        tmp = tmp.down('DIV UL');
-                        if (tmp.down().hasClassName('hordeNoalerts')) {
-                            tmp.down().remove();
-                        }
-                        tmp.insert(new Element('LI').insert(new Element('P', { className: 'label' }).insert(log)).insert(new Element('P', { className: 'indent' }).insert(msg).insert(new Element('SPAN', { className: 'alertdate'} ).insert('[' + (new Date).toLocaleString() + ']'))));
-                    }
-                }
             }
         }, this);
     },
 
-    toggleAlertsLog: function()
-    {
-        var alink = $('alertsloglink').down('A'),
-            div = $('hordeAlertslog').down('DIV'),
-            opts = { duration: 0.5, queue: { position: 'end', scope: 'hordeAlertslog', limit: 2} };
-
-        if (div.visible()) {
-            Effect.BlindUp(div, opts);
-            alink.update(DIMP.text.showalog);
-        } else {
-            Effect.BlindDown(div, opts);
-            alink.update(DIMP.text.hidealog);
-        }
-    },
-
-    removeAlert: function(effect)
-    {
-        try {
-            var elt = $(effect.element),
-                parent = elt.up();
-
-            elt.remove();
-            if (!parent.childElements().size() &&
-                parent.readAttribute('id') == 'hordeIE6AlertsFix') {
-                parent.remove();
-            }
-        } catch (e) {
-            this.debug('removeAlert', e);
-        }
-    },
-
     compose: function(type, args)
     {
         var url = DIMP.conf.compose_url;
@@ -441,7 +387,12 @@ var DimpCore = {
                 break;
 
             case 'alertsloglink':
-                this.toggleAlertsLog();
+                tmp = $('alertsloglink').down('A');
+                if (this.Growler.toggleLog()) {
+                    tmp.update(DIMP.text.hidealog);
+                } else {
+                    tmp.update(DIMP.text.showalog);
+                }
                 break;
 
             case 'largeaddrspan_active':
@@ -525,6 +476,13 @@ var DimpCore = {
             this.buttons = this.buttons.without('button_ham');
         }
 
+        /* Add Growler notifications. */
+        this.Growler = new Growler({
+            location: 'br',
+            log: true,
+            noalerts: DIMP.text.noalerts
+        });
+
         /* Add click handler. */
         document.observe('click', DimpCore.clickHandler.bindAsEventListener(DimpCore));
     }
index a262721..02ee310 100644 (file)
@@ -260,10 +260,7 @@ class DIMP
             'empty_folder' => _("Permanently delete all messages in %s?"),
             'delete_folder' => _("Permanently delete %s?"),
             'hidealog' => _("Hide Alerts Log"),
-            'alog_error' => _("Error"),
-            'alog_message' => _("Message"),
-            'alog_success' => _("Success"),
-            'alog_warning' => _("Warning"),
+            'noalerts' => _("No Alerts"),
         ));
 
         /* Gettext strings with individual escaping. */
index a9c88cf..15ad8e1 100644 (file)
@@ -64,9 +64,7 @@ function _simpleButton($id, $text, $image, $imagedir = null)
 <?php if (($_SESSION['imp']['protocol'] != 'pop') && $prefs->getValue('fetchmail_menu')): ?>
     <?php echo _simpleButton('fetchmaillink', _("_Fetch Mail"), 'fetchmail.png') ?>
 <?php endif; ?>
-<?php if (!$is_ie6): ?>
     <?php echo _simpleButton('alertsloglink', _("Alerts _Log"), 'info_icon.png', $hordeimg) ?>
-<?php endif; ?>
    </ul>
    <div class="sepfull" style="width:<?php echo $sidebar_width ?>"></div>
    <ul id="serviceActions">
@@ -441,13 +439,3 @@ function _simpleButton($id, $text, $image, $imagedir = null)
   <span class="dispaddrlist" style="display:none"></span>
  </span>
 </div>
-
-<?php if (!$is_ie6): ?>
-<div id="hordeAlertslog">
- <div style="display:none">
-  <ul>
-   <li class="hordeNoalerts"><strong><?php echo _("No Alerts") ?></strong></li>
-  </ul>
- </div>
-</div>
-<?php endif; ?>