From d9f180adf9e1e8a63ea9bfdb534dc376a4829fee Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Sat, 29 Dec 2012 10:54:41 -0500
Subject: [PATCH] Minor IE7/8 fixes

---
 program/steps/mail/get.inc |   36 +++++++++++-------------------------
 1 files changed, 11 insertions(+), 25 deletions(-)

diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc
index 7f06feb..9d9032b 100644
--- a/program/steps/mail/get.inc
+++ b/program/steps/mail/get.inc
@@ -47,13 +47,7 @@
 // show part page
 if (!empty($_GET['_frame'])) {
   if (($part_id = get_input_value('_part', RCUBE_INPUT_GPC)) && ($part = $MESSAGE->mime_parts[$part_id])) {
-    $filename = $part->filename;
-    if (empty($filename) && $part->mimetype == 'text/html') {
-      $filename = rcube_label('htmlmessage');
-    }
-    if (!empty($filename)) {
-      $OUTPUT->set_pagetitle($filename);
-    }
+    $OUTPUT->set_pagetitle(rcmail_attachment_name($part));
   }
 
   $OUTPUT->send('messagepart');
@@ -166,12 +160,10 @@
               'vars' => array('expected' => "$mimetype (.$file_extension)", 'detected' => "$real_mimetype (.$extensions[0])")
             )) .
             html::p('buttons',
-              html::tag('button', null,
-                html::a(array(
-                  'href' => $RCMAIL->url(array_merge($_GET, array('_nocheck' => 1))),
-                  'style' => 'text-decoration:none;color:#000',
-                ), rcube_label('showanyway')))
-            ))
+              html::tag('button',
+                array('onclick' => "location.href='" . $RCMAIL->url(array_merge($_GET, array('_nocheck' => 1))) . "'"),
+                rcube_label('showanyway')))
+            )
         )));
         exit;
       }
@@ -237,18 +229,7 @@
       // don't kill the connection if download takes more than 30 sec.
       @set_time_limit(0);
 
-      if ($part->filename) {
-        $filename = $part->filename;
-      }
-      else if ($part->mimetype == 'text/html') {
-        $filename = rcube_label('htmlmessage');
-      }
-      else {
-        $ext = '.' . ($mimetype == 'text/plain' ? 'txt' : $ctype_secondary);
-        $filename = ($MESSAGE->subject ? $MESSAGE->subject : 'roundcube') . $ext;
-      }
-
-      $filename = preg_replace('[\r\n]', '', $filename);
+      $filename = rcmail_attachment_name($part);
 
       if ($browser->ie && $browser->ver < 7)
         $filename = rawurlencode(abbreviate_string($filename, 55));
@@ -266,6 +247,11 @@
         $filename = str_ireplace('attachment', 'attach', $filename);
       }
 
+      // add filename extension if missing
+      if (!pathinfo($filename, PATHINFO_EXTENSION) && ($extensions = rcube_mime::get_mime_extensions($mimetype))) {
+        $filename .= '.' . $extensions[0];
+      }
+
       header("Content-Disposition: $disposition; filename=\"$filename\"");
 
       // handle tiff to jpeg conversion

--
Gitblit v1.9.1