first draft regarding a display message popup

This commit is contained in:
Klaus Leithoff 2013-06-05 14:24:56 +00:00
parent 53006a471c
commit efa51c09b7
6 changed files with 227 additions and 25 deletions

View File

@ -2625,6 +2625,47 @@ class mail_bo
return true; return true;
} }
/**
* get flags for a Message
*
* @param mixed string _messageUID array of id to retrieve the flags for
*
* @return null/array flags
*/
function getFlags ($_messageUID) {
$flags = $this->icServer->getFlags($_messageUID, true);
if (PEAR::isError($flags)) {
error_log(__METHOD__.__LINE__.'Failed to retrieve Flags for Messages with UID(s)'.array2string($_messageUID).' Server returned:'.$flags->message);
return null;
}
return $flags;
}
/**
* get and parse the flags response for the Notifyflag for a Message
*
* @param string _messageUID array of id to retrieve the flags for
* @param array flags - to avoid additional server call
*
* @return null/boolean
*/
function getNotifyFlags ($_messageUID, $flags=null)
{
if($flags===null) $flags = $this->icServer->getFlags($_messageUID, true);
if (self::$debug) error_log(__METHOD__.$_messageUID.' Flags:'.array2string($flags));
if (PEAR::isError($flags))
{
return null;
}
if ( stripos( array2string($flags),'MDNSent')!==false)
return true;
if ( stripos( array2string($flags),'MDNnotSent')!==false)
return false;
return null;
}
/** /**
* flag a Message * flag a Message
* *
@ -3789,12 +3830,72 @@ class mail_bo
} }
/** /**
* getMessageRawHeader * getMessageEnvelope
* get parsed headers from message * get parsed headers from message
* @param string/int $_uid the messageuid, * @param string/int $_uid the messageuid,
* @param string/int $_partID='' , the partID, may be omitted * @param string/int $_partID='' , the partID, may be omitted
* @param boolean $decode flag to do the decoding on the fly * @param boolean $decode flag to do the decoding on the fly
* @return string the message header * @return array the message header
*/
function getMessageEnvelope($_uid, $_partID = '',$decode=false)
{
if($_partID == '') {
if( PEAR::isError($envelope = $this->icServer->getEnvelope('', $_uid, true)) ) {
return false;
}
//if ($decode) _debug_array($envelope[0]);
return ($decode ? self::decode_header($envelope[0],true): $envelope[0]);
} else {
if( PEAR::isError($headers = $this->icServer->getParsedHeaders($_uid, true, $_partID, true)) ) {
return false;
}
//_debug_array($headers);
$newData = array(
'DATE' => $headers['DATE'],
'SUBJECT' => ($decode ? self::decode_header($headers['SUBJECT']):$headers['SUBJECT']),
'MESSAGE_ID' => $headers['MESSAGE-ID']
);
//_debug_array($newData);
$recepientList = array('FROM', 'TO', 'CC', 'BCC', 'SENDER', 'REPLY_TO');
foreach($recepientList as $recepientType) {
if(isset($headers[$recepientType])) {
if ($decode) $headers[$recepientType] = self::decode_header($headers[$recepientType],true);
$addresses = imap_rfc822_parse_adrlist($headers[$recepientType], '');
foreach($addresses as $singleAddress) {
$addressData = array(
'PERSONAL_NAME' => $singleAddress->personal ? $singleAddress->personal : 'NIL',
'AT_DOMAIN_LIST' => $singleAddress->adl ? $singleAddress->adl : 'NIL',
'MAILBOX_NAME' => $singleAddress->mailbox ? $singleAddress->mailbox : 'NIL',
'HOST_NAME' => $singleAddress->host ? $singleAddress->host : 'NIL',
'EMAIL' => $singleAddress->host ? $singleAddress->mailbox.'@'.$singleAddress->host : $singleAddress->mailbox,
);
if($addressData['PERSONAL_NAME'] != 'NIL') {
$addressData['RFC822_EMAIL'] = imap_rfc822_write_address($singleAddress->mailbox, $singleAddress->host, $singleAddress->personal);
} else {
$addressData['RFC822_EMAIL'] = 'NIL';
}
$newData[$recepientType][] = $addressData;
}
} else {
if($recepientType == 'SENDER' || $recepientType == 'REPLY_TO') {
$newData[$recepientType] = $newData['FROM'];
} else {
$newData[$recepientType] = array();
}
}
}
//if ($decode) _debug_array($newData);
return $newData;
}
}
/**
* getMessageHeader
* get parsed headers from message
* @param string/int $_uid the messageuid,
* @param string/int $_partID='' , the partID, may be omitted
* @param boolean $decode flag to do the decoding on the fly
* @return array the message header
*/ */
function getMessageHeader($_uid, $_partID = '',$decode=false) function getMessageHeader($_uid, $_partID = '',$decode=false)
{ {

View File

@ -26,6 +26,7 @@ class mail_ui
( (
'index' => True, 'index' => True,
'displayHeader' => True, 'displayHeader' => True,
'displayMessage' => True,
'saveMessage' => True, 'saveMessage' => True,
'vfsSaveMessage' => True, 'vfsSaveMessage' => True,
'loadEmailBody' => True, 'loadEmailBody' => True,
@ -1087,7 +1088,7 @@ unset($query['actions']);
$rows = $this->header2gridelements($sortResult['header'],$cols, $_folderName, $folderType,$previewMessage); $rows = $this->header2gridelements($sortResult['header'],$cols, $_folderName, $folderType,$previewMessage);
//error_log(__METHOD__.__LINE__.array2string($rows)); //error_log(__METHOD__.__LINE__.array2string($rows));
$endtime = microtime(true) - $starttime; $endtime = microtime(true) - $starttime;
error_log(__METHOD__.__LINE__.' SelectedFolder:'.$query['selectedFolder'].' Start:'.$query['start'].' NumRows:'.$query['num_rows'].' Took:'.$endtime); //error_log(__METHOD__.__LINE__.' SelectedFolder:'.$query['selectedFolder'].' Start:'.$query['start'].' NumRows:'.$query['num_rows'].' Took:'.$endtime);
return $rowsFetched['messages']; return $rowsFetched['messages'];
} }
@ -1475,6 +1476,73 @@ unset($query['actions']);
} }
/**
* display messages
*
* all params are passed as GET Parameters
*/
function displayMessage()
{
if(isset($_GET['id'])) $rowID = $_GET['id'];
if(isset($_GET['part'])) $partID = $_GET['part'];
$hA = self::splitRowID($rowID);
$uid = $hA['msgUID'];
$mailbox = $hA['folder'];
//$transformdate =& CreateObject('felamimail.transformdate');
//$htmlFilter =& CreateObject('felamimail.htmlfilter');
//$uiWidgets =& CreateObject('felamimail.uiwidgets');
$this->mail_bo->reopen($mailbox);
// retrieve the flags of the message, before touching it.
$headers = $this->mail_bo->getMessageHeader($uid, $partID);
if (PEAR::isError($headers)) {
$error_msg[] = lang("ERROR: Message could not be displayed.");
$error_msg[] = lang("In Mailbox: %1, with ID: %2, and PartID: %3",$mailbox,$uid,$partID);
$error_msg[] = $headers->message;
$error_msg[] = array2string($headers->backtrace[0]);
}
if (!empty($uid)) $flags = $this->mail_bo->getFlags($uid);
$envelope = $this->mail_bo->getMessageEnvelope($uid, $partID,true);
$rawheaders = $this->mail_bo->getMessageRawHeader($uid, $partID);
$fetchEmbeddedImages = false;
if ($htmlOptions !='always_display') $fetchEmbeddedImages = true;
$attachments = $this->mail_bo->getMessageAttachments($uid, $partID, '',$fetchEmbeddedImages);
//_debug_array($headers);
$webserverURL = $GLOBALS['egw_info']['server']['webserver_url'];
$nonDisplayAbleCharacters = array('[\016]','[\017]',
'[\020]','[\021]','[\022]','[\023]','[\024]','[\025]','[\026]','[\027]',
'[\030]','[\031]','[\032]','[\033]','[\034]','[\035]','[\036]','[\037]');
#print "<pre>";print_r($rawheaders);print"</pre>";exit;
$mailBody = $this->get_load_email_data($uid, $partID, $mailbox,false);
$this->mail_bo->closeConnection();
$etpl = new etemplate_new('mail.display');
// Set cell attributes directly
/*
$etpl->set_cell_attribute('nm[foldertree]','actions', array(
'drop_move_mail' => array(
'type' => 'drop',
'acceptedTypes' => 'mail',
'icon' => 'move',
'caption' => 'Move to',
'onExecute' => 'javaScript:app.mail.mail_move'
),
));
*/
$subject = mail_bo::htmlspecialchars($this->mail_bo->decode_subject(preg_replace($nonDisplayAbleCharacters,'',$envelope['SUBJECT']),false),
mail_bo::$displayCharset);
if (empty($subject)) $subject = lang('no subject');
$content['msg'] = (is_array($error_msg)?implode("<br>",$error_msg):$error_msg);
$content['mail_displaysubject'] = $subject;
$content['mail_displaybody'] = $mailBody;
$readonlys = $preserv = $content;
echo $etpl->exec('mail.mail_ui.displayMessage',$content,$sel_options,$readonlys,$preserv,2);
}
/** /**
* save messages on disk or filemanager, or display it in popup * save messages on disk or filemanager, or display it in popup
* *
@ -1559,7 +1627,7 @@ unset($query['actions']);
} }
function get_load_email_data($uid, $partID, $mailbox) function get_load_email_data($uid, $partID, $mailbox,$fullHeader=true)
{ {
// seems to be needed, as if we open a mail from notification popup that is // seems to be needed, as if we open a mail from notification popup that is
// located in a different folder, we experience: could not parse message // located in a different folder, we experience: could not parse message
@ -1595,22 +1663,22 @@ $this->partID = $partID;
// Compose the content of the frame // Compose the content of the frame
$frameHtml = $frameHtml =
$this->get_email_header($this->mail_bo->getStyles($bodyParts)). $this->get_email_header($this->mail_bo->getStyles($bodyParts),$fullHeader).
$this->showBody($this->getdisplayableBody($bodyParts), false); $this->showBody($this->getdisplayableBody($bodyParts), false,$fullHeader);
//IE10 eats away linebreaks preceeded by a whitespace in PRE sections //IE10 eats away linebreaks preceeded by a whitespace in PRE sections
$frameHtml = str_replace(" \r\n","\r\n",$frameHtml); $frameHtml = str_replace(" \r\n","\r\n",$frameHtml);
return $frameHtml; return $frameHtml;
} }
static function get_email_header($additionalStyle='') static function get_email_header($additionalStyle='',$fullHeader=true)
{ {
//error_log(__METHOD__.__LINE__.$additionalStyle); //error_log(__METHOD__.__LINE__.$additionalStyle);
return ' $header = ($fullHeader?'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />':'').'
<style> <style>
body, td, textarea { body, td, textarea {
font-family: Verdana, Arial, Helvetica,sans-serif; font-family: Verdana, Arial, Helvetica,sans-serif;
@ -1622,13 +1690,14 @@ $this->partID = $partID;
{ {
window.location.hash=aname; window.location.hash=aname;
} }
</script> </script>'.($fullHeader?'
</head> </head>
<body> <body>
'; ':'');
return $header;
} }
function showBody(&$body, $print=true) function showBody(&$body, $print=true,$fullPageTags=true)
{ {
$BeginBody = '<style type="text/css"> $BeginBody = '<style type="text/css">
body,html { body,html {
@ -1661,7 +1730,7 @@ blockquote[type=cite] {
<table width="100%" style="table-layout:fixed"><tr><td class="td_display">'; <table width="100%" style="table-layout:fixed"><tr><td class="td_display">';
$EndBody = '</td></tr></table></div>'; $EndBody = '</td></tr></table></div>';
$EndBody .= "</body></html>"; if ($fullPageTags) $EndBody .= "</body></html>";
if ($print) { if ($print) {
print $BeginBody. $body .$EndBody; print $BeginBody. $body .$EndBody;
} else { } else {

View File

@ -88,8 +88,11 @@ app.mail = AppJS.extend(
var dataElem = egw.dataGetUIDdata(_id); var dataElem = egw.dataGetUIDdata(_id);
var subject = dataElem.data.subject; var subject = dataElem.data.subject;
var sw = etemplate2.getByApplication('mail')[0].widgetContainer.getWidgetById('previewSubject'); //alert('Open Message:'+_id+' '+subject);
alert('Open Message:'+_id+' '+subject); egw().open_link(egw.link('/index.php', {
menuaction: 'mail.mail_ui.displayMessage',
id: _id,
}), 'view'+_id, '495x425');
}, },
/** /**

View File

@ -2,7 +2,7 @@
/** /**
* EGroupware - eTemplates for Application mail * EGroupware - eTemplates for Application mail
* http://www.egroupware.org * http://www.egroupware.org
* generated by soetemplate::dump4setup() 2013-04-12 14:54 * generated by soetemplate::dump4setup() 2013-06-05 13:45
* *
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package mail * @package mail
@ -12,13 +12,11 @@
$templ_version=1; $templ_version=1;
$templ_data[] = array('name' => 'mail.display','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:2:{i:0;a:2:{s:4:"name";s:3:"msg";s:4:"type";s:4:"html";}i:1;a:10:{s:5:"width";s:4:"100%";s:4:"name";s:11:"mailDisplay";s:4:"type";s:4:"vbox";s:4:"size";s:1:"6";i:1;a:7:{s:5:"width";s:4:"100%";s:4:"name";s:22:"mailDisplayHeadersFrom";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:4:"span";s:19:",mailDisplayHeaders";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"From";}i:2;a:3:{s:8:"readonly";s:4:"true";s:4:"name";s:18:"DisplayFromAddress";s:4:"type";s:9:"url-email";}}i:2;a:7:{s:5:"width";s:4:"100%";s:4:"name";s:20:"mailDisplayHeadersTo";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:4:"span";s:19:",mailDisplayHeaders";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:2:"To";}i:2;a:3:{s:8:"readonly";s:4:"true";s:4:"name";s:16:"DisplayToAddress";s:4:"type";s:9:"url-email";}}i:3;a:7:{s:5:"width";s:4:"100%";s:4:"name";s:22:"mailDisplayHeadersDate";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:4:"span";s:19:",mailDisplayHeaders";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Date";}i:2;a:4:{s:5:"align";s:4:"left";s:8:"readonly";s:4:"true";s:4:"name";s:11:"DisplayDate";s:4:"type";s:9:"date-time";}}i:4;a:7:{s:5:"width";s:4:"100%";s:4:"name";s:25:"mailDisplayHeadersSubject";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:4:"span";s:19:",mailDisplayHeaders";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Subject";}i:2;a:4:{s:5:"align";s:4:"left";s:8:"readonly";s:4:"true";s:4:"name";s:14:"DisplaySubject";s:4:"type";s:5:"label";}}i:5;a:4:{s:4:"name";s:16:"mailDisplayIcons";s:4:"type";s:4:"hbox";s:4:"size";s:1:"1";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Icons";}}i:6;a:4:{s:4:"name";s:20:"mailDisplayContainer";s:4:"type";s:3:"box";s:4:"size";s:1:"1";i:1;a:2:{s:4:"name";s:15:"mailDisplayBody";s:4:"type";s:4:"html";}}}}','size' => '','style' => '','modified' => '1370432711',);
$templ_data[] = array('name' => 'mail.importMessage','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1365666381',); $templ_data[] = array('name' => 'mail.importMessage','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1365666381',);
$templ_data[] = array('name' => 'mail.index','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:3:{i:0;a:5:{s:11:"autoloading";s:28:"mail.mail_ui.ajax_foldertree";s:7:"onclick";s:56:"app.mail.mail_changeFolder(widget.event_args[0],widget);";s:11:"parent_node";s:11:"tree_target";s:4:"name";s:14:"nm[foldertree]";s:4:"type";s:4:"tree";}i:1;a:2:{s:4:"name";s:3:"msg";s:4:"type";s:4:"html";}i:2;a:7:{s:9:"dock_side";s:10:"bottomDock";s:11:"orientation";s:1:"h";s:4:"name";s:8:"splitter";s:4:"type";s:5:"split";s:4:"size";s:1:"2";i:1;a:4:{s:8:"onselect";s:21:"app.mail.mail_preview";s:4:"name";s:2:"nm";s:4:"type";s:9:"nextmatch";s:4:"size";s:15:"mail.index.rows";}i:2;a:4:{s:4:"name";s:18:"spanMessagePreview";s:4:"type";s:4:"vbox";s:4:"size";s:1:"1";i:1;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:1:{s:2:"c2";s:19:"previewDataArea,top";}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"From";}i:2;a:2:{s:4:"type";s:5:"label";s:5:"label";s:1:":";}i:3;a:3:{s:8:"readonly";s:4:"true";s:4:"name";s:18:"previewFromAddress";s:4:"type";s:9:"url-email";}}}i:2;a:1:{s:1:"A";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:2:"To";}i:2;a:2:{s:4:"type";s:5:"label";s:5:"label";s:1:":";}i:3;a:3:{s:8:"readonly";s:4:"true";s:4:"name";s:16:"previewToAddress";s:4:"type";s:9:"url-email";}}}i:3;a:1:{s:1:"A";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Date";}i:2;a:2:{s:4:"type";s:5:"label";s:5:"label";s:1:":";}i:3;a:4:{s:5:"align";s:4:"left";s:8:"readonly";s:4:"true";s:4:"name";s:11:"previewDate";s:4:"type";s:9:"date-time";}}}i:4;a:1:{s:1:"A";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Subject";}i:2;a:2:{s:4:"type";s:5:"label";s:5:"label";s:1:":";}i:3;a:4:{s:5:"align";s:4:"left";s:8:"readonly";s:4:"true";s:4:"name";s:14:"previewSubject";s:4:"type";s:5:"label";}}}}s:4:"cols";i:1;s:4:"rows";i:4;}s:1:"B";a:4:{s:5:"width";s:5:"275px";s:4:"type";s:4:"hbox";s:4:"size";s:1:"1";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Action Icons";}}}}s:4:"cols";i:2;s:4:"rows";i:1;}}i:2;a:1:{s:1:"A";a:6:{s:11:"frameborder";s:1:"1";s:6:"height";s:4:"auto";s:5:"width";s:4:"100%";s:9:"scrolling";s:4:"auto";s:4:"name";s:13:"messageIFRAME";s:4:"type";s:6:"iframe";}}}s:4:"cols";i:1;s:4:"rows";i:2;}}}}','size' => '','style' => '','modified' => '1365771294',); $templ_data[] = array('name' => 'mail.index','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:3:{i:0;a:5:{s:11:"autoloading";s:28:"mail.mail_ui.ajax_foldertree";s:7:"onclick";s:56:"app.mail.mail_changeFolder(widget.event_args[0],widget);";s:11:"parent_node";s:11:"tree_target";s:4:"name";s:14:"nm[foldertree]";s:4:"type";s:4:"tree";}i:1;a:2:{s:4:"name";s:3:"msg";s:4:"type";s:4:"html";}i:2;a:7:{s:9:"dock_side";s:10:"bottomDock";s:11:"orientation";s:1:"h";s:4:"name";s:12:"mailSplitter";s:4:"type";s:5:"split";s:4:"size";s:1:"2";i:1;a:4:{s:8:"onselect";s:21:"app.mail.mail_preview";s:4:"name";s:2:"nm";s:4:"type";s:9:"nextmatch";s:4:"size";s:15:"mail.index.rows";}i:2;a:10:{s:5:"width";s:4:"100%";s:4:"name";s:11:"mailPreview";s:4:"type";s:4:"vbox";s:4:"size";s:1:"6";i:1;a:7:{s:5:"width";s:4:"100%";s:4:"name";s:22:"mailPreviewHeadersFrom";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:4:"span";s:19:",mailPreviewHeaders";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"From";}i:2;a:3:{s:8:"readonly";s:4:"true";s:4:"name";s:18:"previewFromAddress";s:4:"type";s:9:"url-email";}}i:2;a:7:{s:5:"width";s:4:"100%";s:4:"name";s:20:"mailPreviewHeadersTo";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:4:"span";s:19:",mailPreviewHeaders";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:2:"To";}i:2;a:3:{s:8:"readonly";s:4:"true";s:4:"name";s:16:"previewToAddress";s:4:"type";s:9:"url-email";}}i:3;a:7:{s:5:"width";s:4:"100%";s:4:"name";s:22:"mailPreviewHeadersDate";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:4:"span";s:19:",mailPreviewHeaders";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Date";}i:2;a:4:{s:5:"align";s:4:"left";s:8:"readonly";s:4:"true";s:4:"name";s:11:"previewDate";s:4:"type";s:9:"date-time";}}i:4;a:7:{s:5:"width";s:4:"100%";s:4:"name";s:25:"mailPreviewHeadersSubject";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:4:"span";s:19:",mailPreviewHeaders";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Subject";}i:2;a:4:{s:5:"align";s:4:"left";s:8:"readonly";s:4:"true";s:4:"name";s:14:"previewSubject";s:4:"type";s:5:"label";}}i:5;a:4:{s:4:"name";s:16:"mailPreviewIcons";s:4:"type";s:4:"hbox";s:4:"size";s:1:"1";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Icons";}}i:6;a:4:{s:4:"name";s:20:"mailPreviewContainer";s:4:"type";s:3:"box";s:4:"size";s:1:"1";i:1;a:4:{s:11:"frameborder";s:1:"1";s:9:"scrolling";s:4:"auto";s:4:"name";s:13:"messageIFRAME";s:4:"type";s:6:"iframe";}}}}}','size' => '','style' => '','modified' => '1370427910',);
$templ_data[] = array('name' => 'mail.index.rows','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:9:{s:2:"c1";s:2:"th";s:1:"A";s:2:"25";s:1:"F";s:3:"120";s:1:"E";s:2:"95";s:2:"c2";s:16:"$row_cont[class]";s:1:"G";s:3:"120";s:1:"H";s:2:"50";s:1:"C";s:2:"20";s:1:"B";s:2:"20";}i:1;a:8:{s:1:"A";a:4:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:2:"ID";s:4:"name";s:3:"uid";s:8:"readonly";s:1:"1";}s:1:"B";a:4:{s:4:"type";s:16:"nextmatch-header";s:4:"name";s:6:"status";s:5:"label";s:3:"St.";s:4:"help";s:6:"Status";}s:1:"C";a:4:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:3:"...";s:4:"name";s:11:"attachments";s:4:"help";s:16:"attachments, ...";}s:1:"D";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:7:"subject";s:5:"label";s:7:"subject";}s:1:"E";a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"date";s:4:"name";s:4:"date";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:2:"to";s:4:"name";s:9:"toaddress";}s:1:"G";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"from";s:4:"name";s:11:"fromaddress";}s:1:"H";a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"size";s:4:"name";s:4:"size";s:5:"align";s:6:"center";}}i:2;a:8:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"name";s:11:"${row}[uid]";s:8:"readonly";s:1:"1";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"span";s:12:"1,status_img";}s:1:"C";a:2:{s:4:"type";s:4:"html";s:4:"name";s:19:"${row}[attachments]";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:4:"name";s:15:"${row}[subject]";}s:1:"E";a:4:{s:4:"type";s:15:"date-time_today";s:4:"name";s:12:"${row}[date]";s:8:"readonly";s:1:"1";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:9:"url-email";s:4:"name";s:17:"${row}[toaddress]";s:8:"readonly";s:1:"1";}s:1:"G";a:3:{s:4:"type";s:9:"url-email";s:4:"name";s:19:"${row}[fromaddress]";s:8:"readonly";s:1:"1";}s:1:"H";a:5:{s:4:"type";s:8:"vfs-size";s:4:"name";s:12:"${row}[size]";s:7:"no_lang";s:1:"1";s:8:"readonly";s:1:"1";s:5:"align";s:5:"right";}}}s:4:"rows";i:2;s:4:"cols";i:8;}}','size' => '','style' => '','modified' => '1360252030',); $templ_data[] = array('name' => 'mail.index.rows','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:9:{s:2:"c1";s:2:"th";s:1:"A";s:2:"25";s:1:"F";s:3:"120";s:1:"E";s:2:"95";s:2:"c2";s:16:"$row_cont[class]";s:1:"G";s:3:"120";s:1:"H";s:2:"50";s:1:"C";s:2:"20";s:1:"B";s:2:"20";}i:1;a:8:{s:1:"A";a:4:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:2:"ID";s:4:"name";s:3:"uid";s:8:"readonly";s:1:"1";}s:1:"B";a:4:{s:4:"type";s:16:"nextmatch-header";s:4:"name";s:6:"status";s:5:"label";s:3:"St.";s:4:"help";s:6:"Status";}s:1:"C";a:4:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:3:"...";s:4:"name";s:11:"attachments";s:4:"help";s:16:"attachments, ...";}s:1:"D";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:7:"subject";s:5:"label";s:7:"subject";}s:1:"E";a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"date";s:4:"name";s:4:"date";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:2:"to";s:4:"name";s:9:"toaddress";}s:1:"G";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"from";s:4:"name";s:11:"fromaddress";}s:1:"H";a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"size";s:4:"name";s:4:"size";s:5:"align";s:6:"center";}}i:2;a:8:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"name";s:11:"${row}[uid]";s:8:"readonly";s:1:"1";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"span";s:12:"1,status_img";}s:1:"C";a:2:{s:4:"type";s:4:"html";s:4:"name";s:19:"${row}[attachments]";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:4:"name";s:15:"${row}[subject]";}s:1:"E";a:4:{s:4:"type";s:15:"date-time_today";s:4:"name";s:12:"${row}[date]";s:8:"readonly";s:1:"1";s:5:"align";s:6:"center";}s:1:"F";a:3:{s:4:"type";s:9:"url-email";s:4:"name";s:17:"${row}[toaddress]";s:8:"readonly";s:1:"1";}s:1:"G";a:3:{s:4:"type";s:9:"url-email";s:4:"name";s:19:"${row}[fromaddress]";s:8:"readonly";s:1:"1";}s:1:"H";a:5:{s:4:"type";s:8:"vfs-size";s:4:"name";s:12:"${row}[size]";s:7:"no_lang";s:1:"1";s:8:"readonly";s:1:"1";s:5:"align";s:5:"right";}}}s:4:"rows";i:2;s:4:"cols";i:8;}}','size' => '','style' => '','modified' => '1360252030',);
$templ_data[] = array('name' => 'mail.preview','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"subject";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:7:"subject";}}}s:4:"rows";i:1;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1363178999',);
$templ_data[] = array('name' => 'mail.TestConnection','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1360585356',);

View File

@ -304,7 +304,7 @@ input[type=button] {
border: 0; border: 0;
} }
#mailPreview { .mailDisplay, #mailPreview {
position: relative; position: relative;
margin-top: 3px; margin-top: 3px;
} }
@ -313,7 +313,7 @@ input[type=button] {
right: 0; right: 0;
top: 0; top: 0;
} }
#mailPreviewContainer { .mailDisplayContainer, #mailPreviewContainer {
position: absolute; position: absolute;
border: 1px solid silver; border: 1px solid silver;
top: 55px; top: 55px;
@ -321,10 +321,10 @@ input[type=button] {
left: 0; left: 0;
right: 0; right: 0;
} }
div.mailPreviewHeaders > span:first-child { div.mailDisplayHeaders > span:first-child, div.mailPreviewHeaders > span:first-child {
width: 5em; width: 5em;
display: inline-block; display: inline-block;
} }
div.mailPreviewHeaders > * { div.mailDisplayHeaders > span:first-child, div.mailPreviewHeaders > * {
margin-left: 3px; margin-left: 3px;
} }

View File

@ -0,0 +1,31 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<overlay>
<template id="mail.display" template="" lang="" group="0" version="1.9.001">
<html id="msg"/>
<vbox class="mailDisplay" width="100%">
<hbox class="mailDisplayHeaders" width="100%">
<description value="From"/>
<url-email id="mail_displayfromaddress" readonly="true"/>
</hbox>
<hbox class="mailDisplayHeaders" width="100%">
<description value="To"/>
<url-email id="mail_displaytoaddress" readonly="true"/>
</hbox>
<hbox class="mailDisplayHeaders" width="100%">
<description value="Date"/>
<date-time align="left" id="mail_displaydate" readonly="true"/>
</hbox>
<hbox class="mailDisplayHeaders" width="100%">
<description value="Subject"/>
<description align="left" id="mail_displaysubject" readonly="true"/>
</hbox>
<hbox class="mail_displayicons">
<html id="mail_displayicons"/>
</hbox>
<box class="mailDisplayContainer">
<html id="mail_displaybody"/>
</box>
</vbox>
</template>
</overlay>