From b8bcca7033b3d10eb7da4b7a1f9987ee9e25a45b Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 30 Jun 2014 06:26:15 -0400
Subject: [PATCH] Display quota information for current folder not INBOX only (#1487993)

---
 program/include/rcmail.php |   30 ++++++++++++++++++++++--------
 1 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 54d0d88..b105eb8 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -1678,9 +1678,9 @@
     }
 
 
-    public function quota_content($attrib = null)
+    public function quota_content($attrib = null, $folder = null)
     {
-        $quota = $this->storage->get_quota();
+        $quota = $this->storage->get_quota($folder);
         $quota = $this->plugins->exec_hook('quota', $quota);
 
         $quota_result = (array) $quota;
@@ -1746,6 +1746,10 @@
         unset($quota_result['abort']);
         if (empty($quota_result['table'])) {
             unset($quota_result['all']);
+        }
+
+        if ($folder !== null && $folder !== '') {
+            $quota_result['folder'] = $folder;
         }
 
         return $quota_result;
@@ -2170,11 +2174,13 @@
     /**
      * Returns message UID(s) and IMAP folder(s) from GET/POST data
      *
-     * @param  string UID value to decode
-     * @param  string Default mailbox value (if not encoded in UIDs)
+     * @param string UID value to decode
+     * @param string Default mailbox value (if not encoded in UIDs)
+     * @param bool   Will be set to True if multi-folder request
+     *
      * @return array  List of message UIDs per folder
      */
-    public static function get_uids($uids = null, $mbox = null)
+    public static function get_uids($uids = null, $mbox = null, &$is_multifolder = false)
     {
         // message UID (or comma-separated list of IDs) is provided in
         // the form of <ID>-<MBOX>[,<ID>-<MBOX>]*
@@ -2191,6 +2197,7 @@
 
         // special case: *
         if ($_uid == '*' && is_object($_SESSION['search'][1]) && $_SESSION['search'][1]->multi) {
+            $is_multifolder = true;
             // extract the full list of UIDs per folder from the search set
             foreach ($_SESSION['search'][1]->sets as $subset) {
                 $mbox = $subset->get_parameters('MAILBOX');
@@ -2204,12 +2211,19 @@
             // create a per-folder UIDs array
             foreach ((array)$_uid as $uid) {
                 list($uid, $mbox) = explode('-', $uid, 2);
-                if (!strlen($mbox))
+                if (!strlen($mbox)) {
                     $mbox = $_mbox;
-                if ($uid == '*')
+                }
+                else {
+                    $is_multifolder = true;
+                }
+
+                if ($uid == '*') {
                     $result[$mbox] = $uid;
-                else
+                }
+                else {
                     $result[$mbox][] = $uid;
+                }
             }
         }
 

--
Gitblit v1.9.1