diff --git a/mail/inc/class.mail_ui.inc.php b/mail/inc/class.mail_ui.inc.php
index 5f91dd8ecb..ab9e1a7cf8 100644
--- a/mail/inc/class.mail_ui.inc.php
+++ b/mail/inc/class.mail_ui.inc.php
@@ -2098,6 +2098,10 @@ class mail_ui
$rowID = $_requesteddata['id'];
//unset($_REQUEST);
}
+ if($_requesteddata['mail_displayattachments'][0]['save_zip'])
+ {
+ $this->download_zip($_requesteddata['mail_id']);
+ }
$preventRedirect=false;
if(isset($_GET['id'])) $rowID = $_GET['id'];
if(isset($_GET['part'])) $partID = $_GET['part'];
@@ -2829,6 +2833,17 @@ class mail_ui
function download_zip($message_id)
{
// First, get all attachment IDs
+ if(!is_numeric($message_id))
+ {
+ $hA = self::splitRowID($message_id);
+ $message_id = $hA['msgUID'];
+ $mailbox = $hA['folder'];
+ }
+ else
+ {
+ $mailbox = $this->mail_bo->sessionData['mailbox'];
+ }
+
$attachments = $this->mail_bo->getMessageAttachments($message_id);
// put them in VFS so they can be zipped
@@ -2845,9 +2860,9 @@ class mail_ui
}
$file_list = array();
+ $this->mail_bo->reopen($mailbox);
foreach($attachments as $file)
{
- $this->mail_bo->reopen($this->mail_bo->sessionData['mailbox']);
$attachment = $this->mail_bo->getAttachment($message_id,$file['partID'],$file['is_winmail'],false);
if (!($fp = egw_vfs::fopen($path.$file['filename'],'wb')) ||
diff --git a/mail/templates/default/display.xet b/mail/templates/default/display.xet
index d9142029fa..f582d905fa 100644
--- a/mail/templates/default/display.xet
+++ b/mail/templates/default/display.xet
@@ -78,6 +78,7 @@
+
diff --git a/mail/templates/default/index.xet b/mail/templates/default/index.xet
index 342e812621..1298acff87 100644
--- a/mail/templates/default/index.xet
+++ b/mail/templates/default/index.xet
@@ -102,7 +102,7 @@
-