diff --git a/mail/inc/class.mail_ui.inc.php b/mail/inc/class.mail_ui.inc.php index ebe9720f75..7f878f1745 100644 --- a/mail/inc/class.mail_ui.inc.php +++ b/mail/inc/class.mail_ui.inc.php @@ -3686,60 +3686,21 @@ blockquote[type=cite] { } } - /** - * move messages - * - * @param array _folderName target folder - * @param array _messageList list of UID's - * - * @return xajax response - */ - function ajax_moveMessages($_folderName, $_messageList) - { - if(mail_bo::$debug) error_log(__METHOD__."->".$_folderName.':'.print_r($_messageList,true)); - $_folderName = $this->mail_bo->decodeEntityFolderName($_folderName); - list($profileID,$targetFolder) = explode(self::$delimiter,$_folderName,2); - - if ($_messageList=='all' || !empty($_messageList['msg'])) - { - if ($_messageList=='all') - { - // we have no folder information - $folder=null; - } - else - { - $uidA = self::splitRowID($_messageList['msg'][0]); - $folder = $uidA['folder']; // all messages in one set are supposed to be within the same folder - } - foreach($_messageList['msg'] as $rowID) - { - $hA = self::splitRowID($rowID); - $messageList[] = $hA['msgUID']; - } - - $this->mail_bo->moveMessages($targetFolder,$messageList,true,$folder); - $response = egw_json_response::get(); - $response->call('egw_refresh',lang('moved %1 message(s) from %2 to %3',count($messageList),$folder,$targetFolder),'mail'); - } - else - { - if(mail_bo::$debug) error_log(__METHOD__."-> No messages selected."); - } - } - /** * copy messages * * @param array _folderName target folder * @param array _messageList list of UID's + * @param string _copyOrMove method to use copy or move allowed * * @return xajax response */ - function ajax_copyMessages($_folderName, $_messageList) + function ajax_copyMessages($_folderName, $_messageList, $_copyOrMove='copy') { - if(mail_bo::$debug); error_log(__METHOD__."->".$_folderName.':'.print_r($_messageList,true)); + if(mail_bo::$debug); error_log(__METHOD__."->".$_folderName.':'.print_r($_messageList,true).' Method:'.$_copyOrMove); $_folderName = $this->mail_bo->decodeEntityFolderName($_folderName); + // only copy or move are supported as method + if (!($_copyOrMove=='copy' || $_copyOrMove=='move')) $_copyOrMove='copy'; list($profileID,$targetFolder) = explode(self::$delimiter,$_folderName,2); if ($_messageList=='all' || !empty($_messageList['msg'])) @@ -3760,9 +3721,9 @@ blockquote[type=cite] { $messageList[] = $hA['msgUID']; } - $this->mail_bo->moveMessages($targetFolder,$messageList,false,$folder); + $this->mail_bo->moveMessages($targetFolder,$messageList,($_copyOrMove=='copy'?false:true),$folder); $response = egw_json_response::get(); - $response->call('egw_refresh',lang('copied %1 message(s) from %2 to %3',count($messageList),$folder,$targetFolder),'mail'); + $response->call('egw_refresh',($_copyOrMove=='copy'?lang('copied %1 message(s) from %2 to %3',count($messageList),$folder,$targetFolder):lang('moved %1 message(s) from %2 to %3',count($messageList),$folder,$targetFolder)),'mail'); } else { diff --git a/mail/js/app.js b/mail/js/app.js index a50ba9f751..59ea33ae05 100644 --- a/mail/js/app.js +++ b/mail/js/app.js @@ -1776,7 +1776,7 @@ app.classes.mail = AppJS.extend( //alert('mail_move('+messages.msg.join(',')+' --> '+target+')'); // TODO: Write move/copy function which cares about doing the same stuff // as the "onNodeSelect" function! - egw.json('mail.mail_ui.ajax_moveMessages',[target, messages]) + egw.json('mail.mail_ui.ajax_copyMessages',[target, messages, 'move']) .sendRequest(); var nm = this.et2.getWidgetById(this.nm_index); this.mail_setRowClass(_senders,'deleted');