- Added message Edit feature (#1483891, #1484440) - need icon
| | |
| | | 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) |
| | |
| | | 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) |
| | | { |
| | |
| | | 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': |
| | |
| | | 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)); |
| | | } |
| | | |
| | |
| | | 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); |
| | | }; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | $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; |
| | |
| | | $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 |
| | |
| | | } |
| | | } |
| | | } |
| | | 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)) |
| | |
| | | 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'])) |
| | |
| | | $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'])) { |
| | |
| | | $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; |
| | |
| | | <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" /> |
| | |
| | | #messagemenu li a |
| | | { |
| | | background: url('images/messageactions.png') no-repeat 1px 0; |
| | | background-position: 0px 20px; |
| | | } |
| | | |
| | | #messagemenu li a.printlink |