diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-05-08 09:24:34 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-05-08 09:24:34 +0200 |
commit | 864745bc9a14afaee640f9960e16ccdbc57e237d (patch) | |
tree | e22105774f2e7134f04fe82aa0d3e2b8723f5f7d /plugins/attachment_reminder/attachment_reminder.js | |
parent | 95b90be8c22aa51f5b5e2d8bfa8031b50fa15e49 (diff) |
Attachment_reminder plugin - ported from https://github.com/thomasysliu/Roundcube-Plugin-Attachment-Reminder
and added user preference to disable plugin, larry support, some fixes/improvements
Diffstat (limited to 'plugins/attachment_reminder/attachment_reminder.js')
-rwxr-xr-x | plugins/attachment_reminder/attachment_reminder.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/plugins/attachment_reminder/attachment_reminder.js b/plugins/attachment_reminder/attachment_reminder.js new file mode 100755 index 000000000..01f2b4993 --- /dev/null +++ b/plugins/attachment_reminder/attachment_reminder.js @@ -0,0 +1,54 @@ +/* Attachment Reminder plugin script */ + +function rcmail_get_compose_message() +{ + var msg; + + if (window.tinyMCE && (ed = tinyMCE.get(rcmail.env.composebody))) { + msg = ed.getContent(); + msg = msg.replace(/<blockquote[^>]*>(.|[\r\n])*<\/blockquote>/gmi, ''); + } + else { + msg = $('#' + rcmail.env.composebody).val(); + msg = msg.replace(/^>.*$/gmi, ''); + } + + return msg; +} + +function rcmail_check_message(msg) +{ + var i, rg, keywords = rcmail.gettext('keywords', 'attachment_reminder').split(",").concat([".doc", ".pdf"]); + + for (i=0; i<keywords.length; i++) { + rg = new RegExp(keywords[i],'i'); + if (msg.search(rg) != -1) + return true; + } + + return false; +} + +function rcmail_have_attachments() +{ + return rcmail.env.attachments && $('li', rcmail.gui_objects.attachmentlist).length; +} + + +if (window.rcmail) { + rcmail.addEventListener('beforesend', function(evt) { + var msg = rcmail_get_compose_message(), + subject = $('#compose-subject').val(); + + if (!rcmail_have_attachments() && (rcmail_check_message(msg) || rcmail_check_message(subject))) { + if (confirm(rcmail.gettext('forgotattachment', 'attachment_reminder'))) { + if (window.UI && UI.show_uploadform) // Larry skin + UI.show_uploadform(); + else if (window.rcmail_ui && rcmail_ui.show_popup) // classic skin + rcmail_ui.show_popup('uploadmenu', true); + + return false; + } + } + }); +} |