- Added message Edit feature (#1483891, #1484440) - need icon

release-0.6
alecpl 15 years ago
parent 8ca0c7ce6a
commit 069704b170

@ -1,6 +1,7 @@
CHANGELOG RoundCube Webmail
===========================
- Added message Edit feature (#1483891, #1484440)
- Fix message Etag generation for counter issues (#1485623)
- Fix messages searching on MailEnable IMAP (#1485762)
- Fixed many 'skip_deleted' issues (#1485634)

@ -189,7 +189,7 @@ function rcube_webmail()
if (this.env.action=='show' || this.env.action=='preview')
{
this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete',
'open', 'mark', 'viewsource', 'download', 'print', 'load-attachment', 'load-headers', true);
'open', 'mark', 'edit', 'viewsource', 'download', 'print', 'load-attachment', 'load-headers', true);
if (this.env.next_uid)
{
@ -691,6 +691,10 @@ function rcube_webmail()
this.load_contact(cid, 'edit');
else if (this.task=='settings' && props)
this.load_identity(props, 'edit-identity');
else if (this.task=='mail' && (cid = this.get_single_uid())) {
var url = (this.env.mailbox == this.env.drafts_mailbox) ? '_draft_uid=' : '_uid=';
this.goto_url('compose', url+cid+'&_mbox='+urlencode(this.env.mailbox), true);
}
break;
case 'save-identity':
@ -1393,12 +1397,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', 'open', 'download', 'viewsource', selected);
this.enable_command('show', 'print', 'open', 'edit', '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', 'open', 'download', 'viewsource', selected);
this.enable_command('show', 'reply', 'reply-all', 'forward', 'print', 'edit', 'open', 'download', 'viewsource', selected);
this.enable_command('delete', 'moveto', 'mark', (list.selection.length > 0 ? true : false));
}
@ -1803,7 +1807,7 @@ function rcube_webmail()
this.show_contentframe(false);
// Hide message command buttons until a message is selected
this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', 'open', 'viewsource', 'download', false);
this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', 'open', 'edit', 'viewsource', 'download', false);
this._with_selected_messages('moveto', lock, add_url);
};
@ -3940,7 +3944,7 @@ function rcube_webmail()
case 'moveto':
if (this.env.action == 'show') {
// re-enable commands on move/delete error
this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', 'open', 'viewsource', 'download', true);
this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', 'open', 'edit', 'viewsource', 'download', true);
} else if (this.message_list)
this.message_list.init();
break;
@ -3953,7 +3957,7 @@ function rcube_webmail()
this.show_contentframe(false);
// disable commands useless when mailbox is empty
this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete',
'mark', 'viewsource', 'open', 'download', 'print', 'load-attachment',
'mark', 'viewsource', 'open', 'edit', 'download', 'print', 'load-attachment',
'purge', 'expunge', 'select-all', 'select-none', 'sort', false);
}
break;

@ -23,6 +23,7 @@
define('RCUBE_COMPOSE_REPLY', 0x0106);
define('RCUBE_COMPOSE_FORWARD', 0x0107);
define('RCUBE_COMPOSE_DRAFT', 0x0108);
define('RCUBE_COMPOSE_EDIT', 0x0109);
$MESSAGE_FORM = NULL;
$MESSAGE = NULL;
@ -74,6 +75,8 @@ if ($msg_uid = $_SESSION['compose']['param']['_reply_uid'])
$compose_mode = RCUBE_COMPOSE_REPLY;
else if ($msg_uid = $_SESSION['compose']['param']['_forward_uid'])
$compose_mode = RCUBE_COMPOSE_FORWARD;
else if ($msg_uid = $_SESSION['compose']['param']['_uid'])
$compose_mode = RCUBE_COMPOSE_EDIT;
else if ($msg_uid = $_SESSION['compose']['param']['_draft_uid']) {
$RCMAIL->imap->set_mailbox($CONFIG['drafts_mbox']);
$compose_mode = RCUBE_COMPOSE_DRAFT;
@ -168,7 +171,6 @@ function rcmail_compose_headers($attrib)
$fvalue = get_input_value($fname, RCUBE_INPUT_POST, TRUE);
else if ($fname && !$fvalue && !empty($_SESSION['compose']['param'][$fname]))
$fvalue = $_SESSION['compose']['param'][$fname];
else if ($header && $compose_mode == RCUBE_COMPOSE_REPLY)
{
// get recipent address(es) out of the message headers
@ -208,7 +210,7 @@ function rcmail_compose_headers($attrib)
}
}
}
else if ($header && $compose_mode == RCUBE_COMPOSE_DRAFT)
else if ($header && in_array($compose_mode, array(RCUBE_COMPOSE_DRAFT, RCUBE_COMPOSE_EDIT)))
{
// get drafted headers
if ($header=='to' && !empty($MESSAGE->headers->to))
@ -385,7 +387,7 @@ function rcmail_compose_body($attrib)
else if ($compose_mode == RCUBE_COMPOSE_FORWARD)
$body = rcmail_create_forward_body($body, $isHtml);
// load draft message body
else if ($compose_mode == RCUBE_COMPOSE_DRAFT)
else if ($compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT)
$body = rcmail_create_draft_body($body, $isHtml);
}
else if (!empty($_SESSION['compose']['param']['_body']))
@ -689,7 +691,7 @@ function rcmail_compose_subject($attrib)
$subject = 'Fwd: '.$MESSAGE->subject;
}
// creeate a draft-subject
else if ($compose_mode == RCUBE_COMPOSE_DRAFT) {
else if ($compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT) {
$subject = $MESSAGE->subject;
}
else if (!empty($_SESSION['compose']['param']['_subject'])) {
@ -828,8 +830,8 @@ function rcmail_receipt_checkbox($attrib)
$checkbox = new html_checkbox($attrib);
$out = $form_start ? "$form_start\n" : '';
$out .= $checkbox->show(
$compose_mode == RCUBE_COMPOSE_DRAFT && $MESSAGE->headers->mdn_to ? 1 : 0);
$out .= $checkbox->show(in_array($compose_mode, array(RCUBE_COMPOSE_DRAFT, RCUBE_COMPOSE_EDIT))
&& $MESSAGE->headers->mdn_to ? 1 : 0);
$out .= $form_end ? "\n$form_end" : '';
return $out;

@ -2,6 +2,7 @@
<ul class="toolbarmenu">
<li><roundcube:button class="printlink" command="print" label="printmessage" classAct="printlink active" /></li>
<li><roundcube:button class="downloadlink" command="download" label="emlsave" classAct="downloadlink active" /></li>
<li><roundcube:button class="editlink" command="edit" label="edit" classAct="editlink active" /></li>
<li class="separator_below"><roundcube:button class="sourcelink" command="viewsource" label="viewsource" classAct="sourcelink active" /></li>
<li><roundcube:button class="openlink" command="open" label="openinextwin" target="_blank" classAct="openlink active" /></li>
<roundcube:container name="messagemenu" id="messagemenu" />

@ -136,6 +136,7 @@ ul.toolbarmenu li.separator_above
#messagemenu li a
{
background: url('images/messageactions.png') no-repeat 1px 0;
background-position: 0px 20px;
}
#messagemenu li a.printlink

Loading…
Cancel
Save