summaryrefslogtreecommitdiff
path: root/plugins/newmail_notifier
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2012-02-07 09:42:51 +0000
committeralecpl <alec@alec.pl>2012-02-07 09:42:51 +0000
commit735bf7c3e1c02086aa2fa6a07e124090d7c90926 (patch)
tree26da8cb446d571437b2ca4642fe18e517e45ac06 /plugins/newmail_notifier
parent06ca480d1e12b56b652827a89982b22770a69d50 (diff)
- Backported r5859 fix
Diffstat (limited to 'plugins/newmail_notifier')
-rw-r--r--plugins/newmail_notifier/newmail_notifier.php25
1 files changed, 23 insertions, 2 deletions
diff --git a/plugins/newmail_notifier/newmail_notifier.php b/plugins/newmail_notifier/newmail_notifier.php
index 01e25984d..f9af72d2f 100644
--- a/plugins/newmail_notifier/newmail_notifier.php
+++ b/plugins/newmail_notifier/newmail_notifier.php
@@ -3,13 +3,13 @@
/**
* New Mail Notifier plugin
*
- * Supports two methods of notification:
+ * Supports three methods of notification:
* 1. Basic - focus browser window and change favicon
* 2. Sound - play wav file
* 3. Desktop - display desktop notification (using webkitNotifications feature,
* supported by Chrome and Firefox with 'HTML5 Notifications' plugin)
*
- * @version 0.3
+ * @version 0.4
* @author Aleksander Machniak <alec@alec.pl>
*
*
@@ -132,10 +132,31 @@ class newmail_notifier extends rcube_plugin
*/
function notify($args)
{
+ // Already notified or non-automatic check
if ($this->notified || !empty($_GET['_refresh'])) {
return $args;
}
+ // Get folders to skip checking for
+ if (empty($this->exceptions)) {
+ $this->delimiter = $this->rc->imap->get_hierarchy_delimiter();
+ foreach (array('drafts_mbox', 'sent_mbox') as $folder) {
+ $folder = $this->rc->config->get($folder);
+ if (strlen($folder) && $folder != 'INBOX') {
+ $this->exceptions[] = $folder;
+ }
+ }
+ }
+
+ $mbox = $args['mailbox'];
+
+ // Skip exception (sent/drafts) folders (and their subfolders)
+ foreach ($this->exceptions as $folder) {
+ if (strpos($mbox.$this->delimiter, $folder.$this->delimiter) === 0) {
+ return $args;
+ }
+ }
+
$this->notified = true;
// Load configuration