translator moved to other address
[squirrelmail.git] / src / move_messages.php
index 7a2ba7e12ef8c54321528418be29384b98b9753c..b0645af91238251a5d9e7057bb2c9161b66982af 100644 (file)
@@ -3,16 +3,19 @@
 /**
  * move_messages.php
  *
- * Copyright (c) 1999-2003 The SquirrelMail Project Team
+ * Copyright (c) 1999-2004 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * Enables message moving between folders on the IMAP server.
  *
- * $Id$
+ * @version $Id$
  * @package squirrelmail
  */
 
-/** Path for SquirrelMail required files. */
+/**
+ * Path for SquirrelMail required files.
+ * @ignore
+ */
 define('SM_PATH','../');
 
 /* SquirrelMail required files. */
@@ -30,7 +33,7 @@ if ( !sqgetGlobalVar('composesession', $composesession, SQ_SESSION) ) {
 
 function attachSelectedMessages($msg, $imapConnection) {
     global $username, $attachment_dir, $startMessage,
-           $data_dir, $composesession, $uid_support,
+           $data_dir, $composesession, 
            $msgs, $show_num, $compose_messages;
 
     if (!isset($compose_messages)) {
@@ -54,10 +57,9 @@ function attachSelectedMessages($msg, $imapConnection) {
     $composeMessage->reply_rfc822_header = '';
 
     foreach($msg as $id) {
-        $body_a = sqimap_run_command($imapConnection, "FETCH $id RFC822", true, $response, $readmessage, $uid_support);
+        $body_a = sqimap_run_command($imapConnection, "FETCH $id RFC822", true, $response, $readmessage, TRUE);
 
         if ($response == 'OK') {
-
             // fetch the subject for the message with $id from msgs.
             // is there a more efficient way to do this?
             foreach($msgs as $k => $vals) {
@@ -113,9 +115,12 @@ sqgetGlobalVar('expungeButton',   $expungeButton,   SQ_POST);
 sqgetGlobalVar('undeleteButton',  $undeleteButton,  SQ_POST);
 sqgetGlobalVar('markRead',        $markRead,        SQ_POST);
 sqgetGlobalVar('markUnread',      $markUnread,      SQ_POST);
+sqgetGlobalVar('markFlagged',     $markFlagged,     SQ_POST);
+sqgetGlobalVar('markUnflagged',   $markUnflagged,   SQ_POST);
 sqgetGlobalVar('attache',         $attache,         SQ_POST);
 sqgetGlobalVar('location',        $location,        SQ_POST);
 sqgetGlobalVar('bypass_trash',    $bypass_trash,    SQ_POST);
+sqgetGlobalVar('dmn',             $is_dmn,          SQ_POST);
 
 /* end of get globals */
 
@@ -173,13 +178,16 @@ if(isset($expungeButton)) {
     if (count($id)) {
         $cnt = count($id);
         if (!isset($attache)) {
-            $button_action = concat_hook_function('move_messages_button_action');
             if (isset($markRead)) {
                 sqimap_toggle_flag($imapConnection, $id, '\\Seen',true,true);
             } else if (isset($markUnread)) {
                 sqimap_toggle_flag($imapConnection, $id, '\\Seen',false,true);
+            } else if (isset($markFlagged)) {
+                sqimap_toggle_flag($imapConnection, $id, '\\Flagged', true, true);
+            } else if (isset($markUnflagged)) {
+                sqimap_toggle_flag($imapConnection, $id, '\\Flagged', false, true);
             } else  {
-                if (!$button_action) {
+                if (!boolean_hook_function('move_messages_button_action', NULL, 1)) {
                     sqimap_msgs_list_delete($imapConnection, $mailbox, $id,$bypass_trash);
                     if ($auto_expunge) {
                         $cnt = sqimap_mailbox_expunge($imapConnection, $mailbox, true);
@@ -210,12 +218,18 @@ if(isset($expungeButton)) {
     }
 } else {    // Move messages
 
-    if (count($id)) {
-        sqimap_msgs_list_move($imapConnection,$id,$targetMailbox);
-        if ($auto_expunge) {
-            $cnt = sqimap_mailbox_expunge($imapConnection, $mailbox, true);
+    $num_ids = count($id);
+    if ( $num_ids > 0 ) {
+        if ( $is_dmn && count($id) == 1 ) {
+            sqimap_msgs_list_move($imapConnection,$id[0],$targetMailbox);
+            $cnt = sqimap_mailbox_expunge_dmn($id[0]);
         } else {
-            $cnt = 0;
+            sqimap_msgs_list_move($imapConnection,$id,$targetMailbox);
+            if ($auto_expunge) {
+                $cnt = sqimap_mailbox_expunge($imapConnection, $mailbox, true);
+            } else {
+                $cnt = 0;
+            }
         }
 
         if (($startMessage+$cnt-1) >= $mbx_response['EXISTS']) {