From 8f35ee81b6f626be5b16c330fa47a85e4d720209 Mon Sep 17 00:00:00 2001 From: alec Date: Thu, 19 May 2011 09:54:09 +0000 Subject: - Removed focus_on_new_message option, added newmail_notify plugin git-svn-id: https://svn.roundcube.net/trunk@4788 208e9e7b-5314-0410-a742-e7e81cd9613c --- plugins/newmail_notifier/config.inc.php.dist | 9 ++ plugins/newmail_notifier/favicon.ico | Bin 0 -> 1734 bytes plugins/newmail_notifier/localization/en_US.inc | 6 + plugins/newmail_notifier/localization/pl_PL.inc | 6 + plugins/newmail_notifier/newmail_notifier.js | 64 +++++++++++ plugins/newmail_notifier/newmail_notifier.php | 145 ++++++++++++++++++++++++ plugins/newmail_notifier/sound.wav | Bin 0 -> 10444 bytes 7 files changed, 230 insertions(+) create mode 100644 plugins/newmail_notifier/config.inc.php.dist create mode 100644 plugins/newmail_notifier/favicon.ico create mode 100644 plugins/newmail_notifier/localization/en_US.inc create mode 100644 plugins/newmail_notifier/localization/pl_PL.inc create mode 100644 plugins/newmail_notifier/newmail_notifier.js create mode 100644 plugins/newmail_notifier/newmail_notifier.php create mode 100644 plugins/newmail_notifier/sound.wav (limited to 'plugins') diff --git a/plugins/newmail_notifier/config.inc.php.dist b/plugins/newmail_notifier/config.inc.php.dist new file mode 100644 index 000000000..21b3d96c2 --- /dev/null +++ b/plugins/newmail_notifier/config.inc.php.dist @@ -0,0 +1,9 @@ + diff --git a/plugins/newmail_notifier/favicon.ico b/plugins/newmail_notifier/favicon.ico new file mode 100644 index 000000000..86e10c1c7 Binary files /dev/null and b/plugins/newmail_notifier/favicon.ico differ diff --git a/plugins/newmail_notifier/localization/en_US.inc b/plugins/newmail_notifier/localization/en_US.inc new file mode 100644 index 000000000..fbb5d9aae --- /dev/null +++ b/plugins/newmail_notifier/localization/en_US.inc @@ -0,0 +1,6 @@ + diff --git a/plugins/newmail_notifier/localization/pl_PL.inc b/plugins/newmail_notifier/localization/pl_PL.inc new file mode 100644 index 000000000..5fe37903b --- /dev/null +++ b/plugins/newmail_notifier/localization/pl_PL.inc @@ -0,0 +1,6 @@ + diff --git a/plugins/newmail_notifier/newmail_notifier.js b/plugins/newmail_notifier/newmail_notifier.js new file mode 100644 index 000000000..6e1ae9fbb --- /dev/null +++ b/plugins/newmail_notifier/newmail_notifier.js @@ -0,0 +1,64 @@ +/** + * New Mail Notifier plugin script + * + * @version 0.1 + * @author Aleksander Machniak + */ + +if (window.rcmail && rcmail.env.task == 'mail') { + rcmail.addEventListener('plugin.newmail_notifier', newmail_notifier_run); + rcmail.addEventListener('actionbefore', newmail_notifier_stop); + rcmail.addEventListener('init', function() { + // bind to messages list select event, so favicon will be reverted on message preview too + if (rcmail.message_list) + rcmail.message_list.addEventListener('select', newmail_notifier_stop); + }); +} + +// Executes notification methods +function newmail_notifier_run(prop) +{ + if (prop.basic) + newmail_notifier_basic(); + if (prop.sound) + newmail_notifier_sound(); +} + +// Stops notification +function newmail_notifier_stop(prop) +{ + // revert original favicon + if (rcmail.env.favicon_href && (!prop || prop.action != 'check-recent')) { + $('').replaceAll('link[rel="shortcut icon"]'); + rcmail.env.favicon_href = null; + } +} + +// Basic notification: window.focus and favicon change +function newmail_notifier_basic() +{ + window.focus(); + + // we cannot simply change a href attribute, we must to replace the link element (at least in FF) + var link = $(''), + oldlink = $('link[rel="shortcut icon"]'); + + rcmail.env.favicon_href = oldlink.attr('href'); + link.replaceAll(oldlink); +} + +// Sound notification +function newmail_notifier_sound() +{ + // HTML5 + try { + var elem = $('