From 46f7b7096450939fe03c95aa81ce06ae4bfca89d Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Mon, 28 Mar 2016 06:51:43 -0400 Subject: [PATCH] Enable reply/reply-all/forward buttons also in preview frame of message/rfc822 --- program/steps/mail/copy.inc | 51 ++++++++++++++++++++++++++++----------------------- 1 files changed, 28 insertions(+), 23 deletions(-) diff --git a/program/steps/mail/copy.inc b/program/steps/mail/copy.inc index b42ef39..68fa246 100644 --- a/program/steps/mail/copy.inc +++ b/program/steps/mail/copy.inc @@ -1,12 +1,15 @@ <?php -/* +/** +-----------------------------------------------------------------------+ | program/steps/mail/copy.inc | | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2005-2010, Roundcube Dev. - Switzerland | - | Licensed under the GNU GPL | + | Copyright (C) 2005-2014, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | | | | PURPOSE: | | Copy the submitted messages to a specific mailbox | @@ -14,44 +17,46 @@ +-----------------------------------------------------------------------+ | Author: Aleksander Machniak <alec@alec.pl> | +-----------------------------------------------------------------------+ - - $Id$ - */ // only process ajax requests -if (!$OUTPUT->ajax_call) - return; +if (!$OUTPUT->ajax_call) { + return; +} -// count messages before changing anything -$old_count = $IMAP->messagecount(NULL, $IMAP->threading ? 'THREADS' : 'ALL'); -$old_pages = ceil($old_count / $IMAP->page_size); +// copy messages +if (!empty($_POST['_uid']) && strlen($_POST['_target_mbox'])) { + $target = rcube_utils::get_input_value('_target_mbox', rcube_utils::INPUT_POST, true); + $sources = array(); -// move messages -if (!empty($_POST['_uid']) && !empty($_POST['_target_mbox'])) { - $uids = get_input_value('_uid', RCUBE_INPUT_POST); - $target = get_input_value('_target_mbox', RCUBE_INPUT_POST); - $mbox = get_input_value('_mbox', RCUBE_INPUT_POST); + foreach (rcmail::get_uids(null, null, $multifolder) as $mbox => $uids) { + if ($mbox === $target) { + $copied++; + } + else { + $copied += (int)$RCMAIL->storage->copy_message($uids, $target, $mbox); + $sources[] = $mbox; + } + } - $copied = $IMAP->copy_message($uids, $target, $mbox); - if (!$copied) { // send error message - $OUTPUT->show_message('errorcopying', 'error'); + $RCMAIL->display_server_error('errorcopying'); $OUTPUT->send(); exit; + } + else { + $OUTPUT->show_message('messagecopied', 'confirmation'); } rcmail_send_unread_count($target, true); - $OUTPUT->command('set_quota', rcmail_quota_content()); + $OUTPUT->command('set_quota', $RCMAIL->quota_content(null, $multifolder ? $sources[0] : 'INBOX')); } // unknown action or missing query param else { - exit; + $OUTPUT->show_message('internalerror', 'error'); } // send response $OUTPUT->send(); - - -- Gitblit v1.9.1