forked from extern/egroupware
first draft regarding a display message popup
This commit is contained in:
parent
53006a471c
commit
efa51c09b7
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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 {
|
||||||
|
@ -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');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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',);
|
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
31
mail/templates/default/display.xet
Normal file
31
mail/templates/default/display.xet
Normal 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>
|
Loading…
Reference in New Issue
Block a user