From 9938c39da8561fc15d7e65fe525093258e997939 Mon Sep 17 00:00:00 2001 From: alec Date: Fri, 15 May 2009 13:34:04 +0000 Subject: - Fix Answered/Forwarded flag setting for messages from subfolders git-svn-id: https://svn.roundcube.net/trunk@2487 208e9e7b-5314-0410-a742-e7e81cd9613c --- roundcubemail/program/include/rcube_imap.php | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'roundcubemail/program/include') diff --git a/roundcubemail/program/include/rcube_imap.php b/roundcubemail/program/include/rcube_imap.php index 6d44efb4b..67be40346 100644 --- a/roundcubemail/program/include/rcube_imap.php +++ b/roundcubemail/program/include/rcube_imap.php @@ -1518,25 +1518,28 @@ class rcube_imap * * @param mixed Message UIDs as array or as comma-separated string * @param string Flag to set: SEEN, UNDELETED, DELETED, RECENT, ANSWERED, DRAFT, MDNSENT + * @param string Folder name * @return boolean True on success, False on failure */ - function set_flag($uids, $flag) + function set_flag($uids, $flag, $mbox_name=NULL) { + $mailbox = $mbox_name ? $this->_mod_mailbox($mbox_name) : $this->mailbox; + $flag = strtoupper($flag); if (!is_array($uids)) $uids = explode(',',$uids); if ($flag=='UNDELETED') - $result = iil_C_Undelete($this->conn, $this->mailbox, join(',', $uids)); + $result = iil_C_Undelete($this->conn, $mailbox, join(',', $uids)); else if ($flag=='UNSEEN') - $result = iil_C_Unseen($this->conn, $this->mailbox, join(',', $uids)); + $result = iil_C_Unseen($this->conn, $mailbox, join(',', $uids)); else if ($flag=='UNFLAGGED') - $result = iil_C_UnFlag($this->conn, $this->mailbox, join(',', $uids), 'FLAGGED'); + $result = iil_C_UnFlag($this->conn, $mailbox, join(',', $uids), 'FLAGGED'); else - $result = iil_C_Flag($this->conn, $this->mailbox, join(',', $uids), $flag); + $result = iil_C_Flag($this->conn, $mailbox, join(',', $uids), $flag); // reload message headers if cached - $cache_key = $this->mailbox.'.msg'; + $cache_key = $mailbox.'.msg'; if ($this->caching_enabled) { foreach ($uids as $uid) @@ -1553,11 +1556,11 @@ class rcube_imap // clear message count cache if ($result && $flag=='SEEN') - $this->_set_messagecount($this->mailbox, 'UNSEEN', $count*(-1)); + $this->_set_messagecount($mailbox, 'UNSEEN', $count*(-1)); else if ($result && $flag=='UNSEEN') - $this->_set_messagecount($this->mailbox, 'UNSEEN', $count); + $this->_set_messagecount($mailbox, 'UNSEEN', $count); else if ($result && $flag=='DELETED') - $this->_set_messagecount($this->mailbox, 'ALL', $count*(-1)); + $this->_set_messagecount($mailbox, 'ALL', $count*(-1)); return $result; } -- cgit v1.2.3