From bb7c522bfda38ff892438f9eb1cdcbc2c3108edf Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Sun, 14 Apr 2013 11:19:32 +0200 Subject: Add "with attachment" option to messages list filter (#1485382) --- CHANGELOG | 1 + program/localization/en_US/labels.inc | 1 + program/steps/mail/func.inc | 17 ++++++++++------- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 96a78042a..2090238fc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Add "with attachment" option to messages list filter (#1485382) - Set minimal permissions to temp files (#1488996) - Improve content check for embedded images without filename (#1489029) - Fix handling of invalid characters in message headers and output (#1489032) diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc index 0a4e329e5..3e1bde0a5 100644 --- a/program/localization/en_US/labels.inc +++ b/program/localization/en_US/labels.inc @@ -162,6 +162,7 @@ $labels['currpage'] = 'Current page'; $labels['unread'] = 'Unread'; $labels['flagged'] = 'Flagged'; $labels['unanswered'] = 'Unanswered'; +$labels['withattachment'] = 'With attachment'; $labels['deleted'] = 'Deleted'; $labels['undeleted'] = 'Not deleted'; $labels['invert'] = 'Invert'; diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index dd8e6b7f9..60db3f310 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -1897,13 +1897,15 @@ function rcmail_search_filter($attrib) $attrib['onchange'] = JS_OBJECT_NAME.'.filter_mailbox(this.value)'; - /* - RFC3501 (6.4.4): 'ALL', 'RECENT', - 'ANSWERED', 'DELETED', 'FLAGGED', 'SEEN', - 'UNANSWERED', 'UNDELETED', 'UNFLAGGED', 'UNSEEN', - 'NEW', // = (RECENT UNSEEN) - 'OLD' // = NOT RECENT - */ + // Content-Type values of messages with attachments + // the same as in app.js:add_message_row() + $ctypes = array('application/', 'multipart/m', 'multipart/signed', 'multipart/report'); + + // Build search string of "with attachment" filter + $attachment = str_repeat(' OR', count($ctypes)-1); + foreach ($ctypes as $type) { + $attachment .= ' HEADER Content-Type ' . rcube_imap_generic::escape($type); + } $select_filter = new html_select($attrib); $select_filter->add(rcube_label('all'), 'ALL'); @@ -1914,6 +1916,7 @@ function rcmail_search_filter($attrib) $select_filter->add(rcube_label('deleted'), 'DELETED'); $select_filter->add(rcube_label('undeleted'), 'UNDELETED'); } + $select_filter->add(rcube_label('withattachment'), $attachment); $select_filter->add(rcube_label('priority').': '.rcube_label('highest'), 'HEADER X-PRIORITY 1'); $select_filter->add(rcube_label('priority').': '.rcube_label('high'), 'HEADER X-PRIORITY 2'); $select_filter->add(rcube_label('priority').': '.rcube_label('normal'), 'NOT HEADER X-PRIORITY 1 NOT HEADER X-PRIORITY 2 NOT HEADER X-PRIORITY 4 NOT HEADER X-PRIORITY 5'); -- cgit v1.2.3