summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2011-08-29 17:30:11 +0000
committerthomascube <thomas@roundcube.net>2011-08-29 17:30:11 +0000
commitf7b58afb94ba5da1dd7b1e2fa7b67c398b4d3d1e (patch)
treefd483ae8810ec93d86ee34b05f8c7d02dccf1c04
parentd78771ad3ce75dc7eb5bb43f822be0b0ab8d6db2 (diff)
Make list of mimetypes that open in preview window configurable (#1487625)
-rw-r--r--CHANGELOG2
-rw-r--r--config/main.inc.php.dist5
-rw-r--r--program/js/app.js7
-rw-r--r--program/steps/mail/show.inc4
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'])