From 876b15dcceeaf5d3f5b2881c8155fcf247cac316 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 28 Aug 2008 14:04:19 -0400
Subject: [PATCH] - Added option 'quota_zero_as_unlimited' (#1484604)

---
 CHANGELOG                   |    4 ++++
 program/steps/mail/func.inc |    4 ++--
 program/lib/imap.inc        |   11 ++++-------
 config/main.inc.php.dist    |    3 +++
 4 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 69254a6..6a400dc 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,10 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+2008/08/28 (alec)
+----------
+- Added option 'quota_zero_as_unlimited' (#1484604)
+
 2008/08/28 (robin)
 ----------
 - Added folder hierarchy collapsing
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index f79232a..eb78f12 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -175,6 +175,9 @@
 // protect the default folders from renames, deletes, and subscription changes
 $rcmail_config['protect_default_folders'] = TRUE;
 
+// if in your system 0 quota means no limit set this option to TRUE 
+$rcmail_config['quota_zero_as_unlimited'] = FALSE;
+
 // Set TRUE if deleted messages should not be displayed
 // This will make the application run slower
 $rcmail_config['skip_deleted'] = FALSE;
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index c10c901..7f23156 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -63,6 +63,7 @@
 		- added iil_PutLine() wrapper for fputs()
 		- code cleanup and identation fixes
 		- removed flush() calls in iil_C_HandlePartBody() to prevent from memory leak (#1485187)
+		- don't return "??" from iil_C_GetQuota()
 
 ********************************************************/
 
@@ -2621,13 +2622,9 @@
 		$parts        = explode(' ', $quota_line);
 		$storage_part = array_search('STORAGE', $parts);
 		if ($storage_part > 0) {
-			$result = array();
-			$used   = $parts[$storage_part+1];
-			$total  = $parts[$storage_part+2];
-            
-			$result['used']    = $used;
-			$result['total']   = (empty($total)?"??":$total);
-			$result['percent'] = (empty($total)?"??":round(($used/$total)*100));
+			$result['used']    = intval($parts[$storage_part+1]);
+			$result['total']   = intval($parts[$storage_part+2]);
+			$result['percent'] = min(100, round(($result['used']/max(1,$result['total']))*100));
 			$result['free']    = 100 - $result['percent'];
 		}
 	}
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index b1f359f..7607ccc 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -457,7 +457,7 @@
  */
 function rcmail_quota_content($quota=NULL)
   {
-  global $IMAP, $COMM_PATH;
+  global $IMAP, $COMM_PATH, $RCMAIL;
 
   $display = isset($_SESSION['quota_display']) ? $_SESSION['quota_display'] : '';
 
@@ -471,7 +471,7 @@
   else
     $quota = $IMAP->get_quota();
 
-  if ($quota)
+  if ($quota && !($quota['total']==0 && $RCMAIL->config->get('quota_zero_as_unlimited')))
     {
     $quota_text = sprintf('%s / %s (%.0f%%)',
                           show_bytes($quota['used'] * 1024),

--
Gitblit v1.9.1