From 0bf724ef1f6a980479d7d6dfc6af62aa421a2888 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sat, 02 Mar 2013 13:54:11 -0500
Subject: [PATCH] Display user-friendly message on IMAP "over quota" errors (#1484164)

---
 CHANGELOG                               |    1 +
 program/include/rcmail.php              |    7 +++++++
 program/localization/en_US/messages.inc |    1 +
 3 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 546d060..a45a247 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Display user-friendly message on IMAP "over quota" errors (#1484164)
 - Display notice that message is encrypted also for application/pkcs7-mime messages (#1488526)
 - Extended archive plugin with user-configurable options to store messages into subfolders
 - Fix export of selected contacts from search result (#1488905)
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 70dba41..667be14 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -1810,11 +1810,18 @@
         else if ($res_code == rcube_storage::READONLY) {
             $this->output->show_message('errorreadonly', 'error');
         }
+        else if ($res_code == rcube_storage::OVERQUOTA) {
+            $this->output->show_message('errorroverquota', 'error');
+        }
         else if ($err_code && ($err_str = $this->storage->get_error_str())) {
             // try to detect access rights problem and display appropriate message
             if (stripos($err_str, 'Permission denied') !== false) {
                 $this->output->show_message('errornoperm', 'error');
             }
+            // try to detect full mailbox problem and display appropriate message
+            else if (stripos($err_str, 'Quota exceeded') !== false) {
+                $this->output->show_message('erroroverquota', 'error');
+            }
             else {
                 $this->output->show_message('servererrormsg', 'error', array('msg' => $err_str));
             }
diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc
index 8502fa1..9262db8 100644
--- a/program/localization/en_US/messages.inc
+++ b/program/localization/en_US/messages.inc
@@ -28,6 +28,7 @@
 $messages['requesttimedout'] = 'Request timed out';
 $messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
 $messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No available disk space.';
 $messages['invalidrequest'] = 'Invalid request! No data was saved.';
 $messages['invalidhost'] = 'Invalid server name.';
 $messages['nomessagesfound'] = 'No messages found in this mailbox.';

--
Gitblit v1.9.1