From f7b58afb94ba5da1dd7b1e2fa7b67c398b4d3d1e Mon Sep 17 00:00:00 2001 From: thomascube Date: Mon, 29 Aug 2011 17:30:11 +0000 Subject: [PATCH] Make list of mimetypes that open in preview window configurable (#1487625) --- CHANGELOG | 2 ++ config/main.inc.php.dist | 5 +++++ program/js/app.js | 7 +------ program/steps/mail/show.inc | 4 ++++ 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index ce38e61db..49c1c298a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,8 @@ CHANGELOG Roundcube Webmail =========================== +- Make list of mimetypes that open in preview window configurable (#1487625) +- Added plugin hook 'message_part_get' for attachment downloads - Localize forwarded message header (#1488058) - Added unique connection identifier to IMAP debug messages - Added 'priority' column on messages list (#1486782) diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist index 159331af1..822c6e63a 100644 --- a/config/main.inc.php.dist +++ b/config/main.inc.php.dist @@ -326,6 +326,11 @@ $rcmail_config['dont_override'] = array(); // 3 - one identity with possibility to edit all params but not email address $rcmail_config['identities_level'] = 0; +// Mimetypes supported by the browser. +// attachments of these types will open in a preview window +// either a comma-separated list or an array: 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/pdf' +$rcmail_config['client_mimetypes'] = null; # null == default + // mime magic database $rcmail_config['mime_magic'] = '/usr/share/misc/magic'; diff --git a/program/js/app.js b/program/js/app.js index 2763b120c..b12d5c219 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -41,11 +41,6 @@ function rcube_webmail() this.identifier_expr = new RegExp('[^0-9a-z\-_]', 'gi'); - // mimetypes supported by the browser (default settings) - this.mimetypes = new Array('text/plain', 'text/html', 'text/xml', - 'image/jpeg', 'image/gif', 'image/png', - 'application/x-javascript', 'application/pdf', 'application/x-shockwave-flash'); - // default environment vars this.env.keep_alive = 60; // seconds this.env.request_timeout = 180; // seconds @@ -749,7 +744,7 @@ function rcube_webmail() var qstring = '_mbox='+urlencode(this.env.mailbox)+'&_uid='+this.env.uid+'&_part='+props.part; // open attachment in frame if it's of a supported mimetype - if (this.env.uid && props.mimetype && $.inArray(props.mimetype, this.mimetypes)>=0) { + if (this.env.uid && props.mimetype && this.env.mimetypes && $.inArray(props.mimetype, this.env.mimetypes)>=0) { if (props.mimetype == 'text/html') qstring += '&_safe=1'; this.attachment_win = window.open(this.env.comm_path+'&_action=get&'+qstring+'&_frame=1', 'rcubemailattachment'); diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index 3c2fa238e..1472a9e61 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -52,6 +52,10 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) { $OUTPUT->set_env('delimiter', $IMAP->get_hierarchy_delimiter()); $OUTPUT->set_env('mailbox', $mbox_name); + // mimetypes supported by the browser (default settings) + $mimetypes = $RCMAIL->config->get('client_mimetypes', 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/x-javascript,application/pdf,application/x-shockwave-flash'); + $OUTPUT->set_env('mimetypes', is_string($mimetypes) ? explode(',', $mimetypes) : (array)$mimetypes); + if ($CONFIG['trash_mbox']) $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']); if ($CONFIG['flag_for_deletion'])