From ef8d014719a98c0c0e2051032ecae148ba35546d Mon Sep 17 00:00:00 2001 From: Hadi Nategh Date: Thu, 13 Jul 2017 14:18:51 +0200 Subject: [PATCH 1/3] W.I.P. SMIME: - Fix sometimes attachments parts are not readable --- mail/inc/class.mail_ui.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail/inc/class.mail_ui.inc.php b/mail/inc/class.mail_ui.inc.php index 114dd5b780..e44ad88dd1 100644 --- a/mail/inc/class.mail_ui.inc.php +++ b/mail/inc/class.mail_ui.inc.php @@ -2384,7 +2384,7 @@ $filter['before']= date("d-M-Y", $cutoffdate2); } else // only encrypted message { - $message_parts = Horde_Mime_Part::parseMessage($_message); + $message_parts = Horde_Mime_Part::parseMessage($_message, array('forcemime' => true)); } if (!Mail\Smime::isSmimeSignatureOnly($params['mimeType'])) From cb784c25af15e8567d8aa467b128c36a976c6c1f Mon Sep 17 00:00:00 2001 From: Hadi Nategh Date: Thu, 13 Jul 2017 15:37:02 +0200 Subject: [PATCH 2/3] W.I.P. SMIME: - Fix warning of invalid arguments - Fix sometimes signed content not returning correct mime part --- api/src/Mail.php | 8 +++++--- api/src/Mail/Smime.php | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/api/src/Mail.php b/api/src/Mail.php index 20735d5145..806d623fad 100644 --- a/api/src/Mail.php +++ b/api/src/Mail.php @@ -484,10 +484,12 @@ class Mail { $this->sessionData = array(); self::$activeFolderCache = Cache::getCache(Cache::INSTANCE,'email','activeMailbox'.trim($GLOBALS['egw_info']['user']['account_id']),null,array(),60*60*10); - - foreach (self::$activeFolderCache[$this->profileID] as $key => $value) + if (is_array(self::$activeFolderCache[$this->profileID])) { - $this->sessionData[$key] = $value; + foreach (self::$activeFolderCache[$this->profileID] as $key => $value) + { + $this->sessionData[$key] = $value; + } } } diff --git a/api/src/Mail/Smime.php b/api/src/Mail/Smime.php index 33fc29d51b..e38661375f 100644 --- a/api/src/Mail/Smime.php +++ b/api/src/Mail/Smime.php @@ -177,7 +177,7 @@ class Smime extends Horde_Crypt_Smime */ public function extractSignedContents($data) { - return Horde_Mime_Part::parseMessage(parent::extractSignedContents($data)); + return Horde_Mime_Part::parseMessage(parent::extractSignedContents($data), array('forcemime' => true)); } } From 4e4999af284293e17f7b23f07299ba44d8b76a2d Mon Sep 17 00:00:00 2001 From: Hadi Nategh Date: Thu, 13 Jul 2017 17:51:37 +0200 Subject: [PATCH 3/3] W.I.P. SMIME: - Reposition the iframe in mail preview after the attachments are set --- mail/js/app.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mail/js/app.js b/mail/js/app.js index 92d3792df7..7a24d65cd3 100644 --- a/mail/js/app.js +++ b/mail/js/app.js @@ -5748,11 +5748,22 @@ app.classes.mail = AppJS.extend( { var attachmentArea = this.et2.getWidgetById(egw(window).is_popup()?'mail_displayattachments':'previewAttachmentArea'); var content = this.et2.getArrayMgr('content'); + var mailPreview = this.et2.getWidgetById('mailPreviewContainer'); if (attachmentArea && _attachments && _attachments.length > 0) { content.data[attachmentArea.id] = _attachments; this.et2.setArrayMgr('contnet', content); attachmentArea.set_value({content:_attachments}); + if (attachmentArea.id == 'previewAttachmentArea') + { + var a_node = attachmentArea.getDOMNode(); + var m_node = mailPreview.getDOMNode(); + var offset = m_node.offsetTop - a_node.offsetTop; + if (a_node.offsetTop + a_node.offsetHeight > m_node.offsetTop) + { + m_node.style.setProperty('top', m_node.offsetTop + offset+"px"); + } + } } }, /**