- Added message menu (some image needed), removed Print and Source buttons

- Added possibility to save message as .eml file (#1485861)
release-0.6
alecpl 15 years ago
parent 569654a8c3
commit 49dfb0047a

@ -1,7 +1,9 @@
CHANGELOG RoundCube Webmail
===========================
- Add 1 minute interval in autosave options (#1485854)
- Added message menu, removed Print and Source buttons
- Added possibility to save message as .eml file (#1485861)
- Added 1 minute interval in autosave options (#1485854)
- Support UTF-7 encoding in messages (#1485832)
- Better support for malformed character names (#1485758)

@ -796,9 +796,6 @@ class rcube_template extends rcube_html_page
else if (in_array($attrib['command'], $a_static_commands)) {
$attrib['href'] = rcmail_url($attrib['command']);
}
else if ($attrib['command'] == 'permaurl' && !empty($this->env['permaurl'])) {
$attrib['href'] = $this->env['permaurl'];
}
}
// overwrite attributes

@ -150,9 +150,6 @@ function rcube_webmail()
// enable general commands
this.enable_command('logout', 'mail', 'addressbook', 'settings', true);
if (this.env.permaurl)
this.enable_command('permaurl', true);
switch (this.task)
{
case 'mail':
@ -188,7 +185,9 @@ function rcube_webmail()
if (this.env.action=='show' || this.env.action=='preview')
{
this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete', 'mark', 'viewsource', 'print', 'load-attachment', 'load-headers', true);
this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete',
'open', 'mark', 'viewsource', 'download', 'print', 'load-attachment', 'load-headers', true);
if (this.env.next_uid)
{
this.enable_command('nextmessage', true);
@ -199,6 +198,13 @@ function rcube_webmail()
this.enable_command('previousmessage', true);
this.enable_command('firstmessage', true);
}
if (this.env.blockedobjects)
{
if (this.gui_objects.remoteobjectsmsg)
this.gui_objects.remoteobjectsmsg.style.display = 'block';
this.enable_command('load-images', 'always-load', true);
}
}
if (this.env.trash_mailbox && this.env.mailbox != this.env.trash_mailbox)
@ -211,13 +217,6 @@ function rcube_webmail()
parent.rcmail.show_contentframe(true);
}
if ((this.env.action=='show' || this.env.action=='preview') && this.env.blockedobjects)
{
if (this.gui_objects.remoteobjectsmsg)
this.gui_objects.remoteobjectsmsg.style.display = 'block';
this.enable_command('load-images', 'always-load', true);
}
if (this.env.action=='compose')
{
this.enable_command('add-attachment', 'send-attachment', 'remove-attachment', 'send', true);
@ -560,12 +559,14 @@ function rcube_webmail()
this.switch_task(command);
break;
case 'permaurl':
if (obj && obj.href && obj.target)
return true;
else if (this.env.permaurl)
parent.location.href = this.env.permaurl;
break;
case 'open':
var uid;
if (uid = this.get_single_uid())
{
obj.href = '?_task='+this.env.task+'&_action=show&_mbox='+urlencode(this.env.mailbox)+'&_uid='+uid;
return true;
}
break;
// misc list commands
case 'list':
@ -992,12 +993,18 @@ function rcube_webmail()
var uid;
if (uid = this.get_single_uid())
{
ref.sourcewin = window.open(this.env.comm_path+'&_action=viewsource&_uid='+this.env.uid+'&_mbox='+urlencode(this.env.mailbox));
ref.sourcewin = window.open(this.env.comm_path+'&_action=viewsource&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox));
if (this.sourcewin)
window.setTimeout(function(){ ref.sourcewin.focus(); }, 20);
}
break;
case 'download':
var uid;
if (uid = this.get_single_uid())
this.goto_url('viewsource', '&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+'&_save=1');
break;
case 'add-contact':
this.add_contact(props);
break;
@ -1357,12 +1364,12 @@ function rcube_webmail()
if (this.env.mailbox == this.env.drafts_mailbox)
{
this.enable_command('reply', 'reply-all', 'forward', false);
this.enable_command('show', 'print', selected);
this.enable_command('show', 'print', 'open', 'download', 'viewsource', selected);
this.enable_command('delete', 'moveto', 'mark', (list.selection.length > 0 ? true : false));
}
else
{
this.enable_command('show', 'reply', 'reply-all', 'forward', 'print', selected);
this.enable_command('show', 'reply', 'reply-all', 'forward', 'print', 'open', 'download', 'viewsource', selected);
this.enable_command('delete', 'moveto', 'mark', (list.selection.length > 0 ? true : false));
}

@ -134,6 +134,7 @@ $labels['resetsearch'] = 'Reset search';
$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'Entire message';
$labels['openinextwin'] = 'Open in new window';
$labels['emlsave'] = 'Save (.eml)';
$labels['compose'] = 'Compose a message';
$labels['savemessage'] = 'Save this draft';
$labels['sendmessage'] = 'Send now';

@ -165,6 +165,7 @@ $labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'Entire message';
$labels['openinextwin'] = 'Open in new window';
$labels['emlsave'] = 'Save (.eml)';
// message compose
$labels['compose'] = 'Compose a message';

@ -145,6 +145,7 @@ $labels['resetsearch'] = 'Wyczyść filtr';
$labels['searchmod'] = 'Parametry wyszukiwania';
$labels['msgtext'] = 'Cała wiadomość';
$labels['openinextwin'] = 'Otwórz w nowym oknie';
$labels['emlsave'] = 'Zapisz (.eml)';
$labels['compose'] = 'Utwórz wiadomość';
$labels['savemessage'] = 'Zapisz kopię roboczą';
$labels['sendmessage'] = 'Wyślij teraz';

@ -65,7 +65,6 @@ if ($_GET['_uid']) {
// set environement
$OUTPUT->set_env('safemode', $MESSAGE->is_safe);
$OUTPUT->set_env('sender', $MESSAGE->sender['string']);
$OUTPUT->set_env('permaurl', rcmail_url('show', array('_uid' => $MESSAGE->uid, '_mbox' => $mbox_name)));
$OUTPUT->set_env('mailbox', $mbox_name);
if ($CONFIG['trash_mbox'])
$OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']);

@ -26,6 +26,21 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_GET))
$headers = $IMAP->get_headers($uid);
$charset = $headers->charset ? $headers->charset : $IMAP->default_charset;
header("Content-Type: text/plain; charset={$charset}");
if (!empty($_GET['_save'])) {
$filename = ($headers->subject ? $headers->subject : 'roundcube') . '.eml';
$browser = new rcube_browser;
if ($browser->ie && $browser->ver < 7)
$filename = rawurlencode(abbreviate_string($filename, 55));
else if ($browser->ie)
$filename = rawurlencode($filename);
else
$filename = addcslashes($filename, '"');
header("Content-Disposition: attachment; filename=\"$filename\"");
}
$IMAP->print_raw_body($uid);
}
else

@ -0,0 +1,10 @@
<div id="messagemenu">
<ul class="toolbarmenu">
<li><roundcube:button command="print" label="printmessage" classAct="active" /></li>
<li><roundcube:button command="download" label="emlsave" classAct="active" /></li>
<li><roundcube:button command="viewsource" label="viewsource" classAct="active" /></li>
<li><hr></li>
<li><roundcube:button command="open" label="openinextwin" target="_blank" classAct="active" /></li>
<roundcube:container name="messagemenu" id="messagemenu" />
</ul>
</div>

@ -46,7 +46,8 @@
}
#markmessagemenu,
#searchmenu
#searchmenu,
#messagemenu
{
position: absolute;
top: 32px;
@ -100,6 +101,12 @@ ul.toolbarmenu li input
vertical-align: middle;
}
ul.toolbarmenu li hr
{
width: 90%;
margin: 2px 10px;
}
#searchfilter
{
position: absolute;
@ -905,16 +912,6 @@ div.message-htmlpart div.rcmBody
color: #333333;
}
#messageviewlink
{
position: absolute;
top: 8px;
right: 10px;
width: 15px;
height: 15px;
border: 0;
}
/** message compose styles */
#compose-toolbar

@ -27,6 +27,7 @@
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<roundcube:include file="/includes/messagemenu.html" />
<div id="mainscreen">
@ -113,12 +114,12 @@
<div id="messagetoolbar">
<roundcube:button command="checkmail" imageSel="/images/buttons/inbox_sel.png" imageAct="/images/buttons/inbox_act.png" imagePas="/images/buttons/inbox_pas.png" width="32" height="32" title="checkmail" />
<roundcube:button command="compose" imageSel="/images/buttons/compose_sel.png" imageAct="/images/buttons/compose_act.png" imagePas="/images/buttons/compose_pas.png" width="32" height="32" title="writenewmessage" />
<roundcube:button name="markreadbutton" id="markreadbutton" image="/images/buttons/markread_act.png" width="32" height="32" title="markmessages" onclick="rcmail_ui.show_markmenu();return false" />
<roundcube:button command="reply" imageSel="/images/buttons/reply_sel.png" imageAct="/images/buttons/reply_act.png" imagePas="/images/buttons/reply_pas.png" width="32" height="32" title="replytomessage" />
<roundcube:button command="reply-all" imageSel="/images/buttons/replyall_sel.png" imageAct="/images/buttons/replyall_act.png" imagePas="/images/buttons/replyall_pas.png" width="32" height="32" title="replytoallmessage" />
<roundcube:button command="forward" imageSel="/images/buttons/forward_sel.png" imageAct="/images/buttons/forward_act.png" imagePas="/images/buttons/forward_pas.png" width="32" height="32" title="forwardmessage" />
<roundcube:button command="delete" imageSel="/images/buttons/delete_sel.png" imageAct="/images/buttons/delete_act.png" imagePas="/images/buttons/delete_pas.png" width="32" height="32" title="deletemessage" />
<roundcube:button command="print" imageSel="/images/buttons/print_sel.png" imageAct="/images/buttons/print_act.png" imagePas="/images/buttons/print_pas.png" width="32" height="32" title="printmessage" />
<roundcube:button name="markreadbutton" id="markreadbutton" image="/images/buttons/markread_act.png" width="32" height="32" title="markmessages" onclick="rcmail_ui.show_markmenu();return false" />
<roundcube:button name="messagemenulink" id="messagemenulink" image="/images/icons/extwin.png" width="32" height="32" title="messagemenu" onclick="rcmail_ui.show_messagemenu();return false" />
<roundcube:container name="toolbar" id="messagetoolbar" />
<div id="markmessagemenu">

@ -5,6 +5,7 @@
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/mail.css" />
<script type="text/javascript" src="/splitter.js"></script>
<script type="text/javascript" src="/functions.js"></script>
<style type="text/css">
#mailboxlist-container { width: <roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv-5 : 160" />px; }
#messageframe {
@ -13,10 +14,11 @@
}
</style>
</head>
<body>
<body onload="rcube_init_mail_ui()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<roundcube:include file="/includes/messagemenu.html" />
<div id="messagecountbar">
<roundcube:button command="firstmessage" imageSel="/images/buttons/first_sel.png" imageAct="/images/buttons/first_act.png" imagePas="/images/buttons/first_pas.png" width="11" height="11" title="firstmessage" />
@ -33,8 +35,7 @@
<roundcube:button command="reply-all" imageSel="/images/buttons/replyall_sel.png" imageAct="/images/buttons/replyall_act.png" imagePas="/images/buttons/replyall_pas.png" width="32" height="32" title="replytoallmessage" />
<roundcube:button command="forward" imageSel="/images/buttons/forward_sel.png" imageAct="/images/buttons/forward_act.png" imagePas="/images/buttons/forward_pas.png" width="32" height="32" title="forwardmessage" />
<roundcube:button command="delete" imageSel="/images/buttons/delete_sel.png" imageAct="/images/buttons/delete_act.png" imagePas="/images/buttons/delete_pas.png" width="32" height="32" title="deletemessage" />
<roundcube:button command="print" imageSel="/images/buttons/print_sel.png" imageAct="/images/buttons/print_act.png" imagePas="/images/buttons/print_pas.png" width="32" height="32" title="printmessage" />
<roundcube:button command="viewsource" imageSel="/images/buttons/source_sel.png" imageAct="/images/buttons/source_act.png" imagePas="/images/buttons/source_pas.png" width="32" height="32" title="viewsource" />
<roundcube:button name="messagemenulink" image="/images/icons/extwin.png" width="32" height="32" title="messagemenu" onclick="rcmail_ui.show_messagemenu();return false" id="messagemenulink" />
<roundcube:object name="mailboxlist" type="select" noSelection="moveto" maxlength="25" onchange="rcmail.command('moveto', this.options[this.selectedIndex].value)" class="mboxlist" />
<roundcube:container name="toolbar" id="messagetoolbar" />
</div>

@ -8,7 +8,7 @@
<body class="iframe">
<div class="messageheaderbox">
<roundcube:button command="permaurl" image="/images/icons/extwin.png" width="15" height="15" title="openinextwin" id="messageviewlink" target="_blank" />
<roundcube:button command="messagemenu" image="/images/icons/extwin.png" width="15" height="15" title="messageactions" id="messagemenulink" />
<roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" addicon="/images/icons/plus.gif" summary="Message headers" />
<roundcube:object name="messageAttachments" id="attachment-list" />
</div>

Loading…
Cancel
Save