diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | program/include/rcube_imap_generic.php | 2 | ||||
-rw-r--r-- | program/localization/en_US/messages.inc | 1 | ||||
-rw-r--r-- | program/localization/pl_PL/messages.inc | 1 | ||||
-rw-r--r-- | program/steps/mail/list.inc | 15 | ||||
-rw-r--r-- | program/steps/mail/search.inc | 5 |
6 files changed, 20 insertions, 5 deletions
@@ -29,6 +29,7 @@ CHANGELOG Roundcube Webmail - Add SASL proxy authentication for SMTP (#1486693) - Improve displaying of UI messages (#1486977) - Fix double e-mail filed in identity form (#1487054) +- Display IMAP errors for LIST/THREAD/SEARCH commands (#1486905) RELEASE 0.4.2 ------------- diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php index 0ad582ffc..ee5638e46 100644 --- a/program/include/rcube_imap_generic.php +++ b/program/include/rcube_imap_generic.php @@ -278,7 +278,7 @@ class rcube_imap_generic $str = trim($matches[2]); if ($res == 'OK') { - return self::ERROR_OK; + return $this->errornum = self::ERROR_OK; } else if ($res == 'NO') { $this->errornum = self::ERROR_NO; } else if ($res == 'BAD') { diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc index 26fa36ad7..6474c9dbc 100644 --- a/program/localization/en_US/messages.inc +++ b/program/localization/en_US/messages.inc @@ -23,6 +23,7 @@ $messages['cookiesdisabled'] = 'Your browser does not accept cookies'; $messages['sessionerror'] = 'Your session is invalid or expired'; $messages['imaperror'] = 'Connection to IMAP server failed'; $messages['servererror'] = 'Server Error!'; +$messages['servererrormsg'] = 'Server Error: $msg'; $messages['invalidrequest'] = 'Invalid request! No data was saved.'; $messages['nomessagesfound'] = 'No messages found in this mailbox'; $messages['loggedout'] = 'You have successfully terminated the session. Good bye!'; diff --git a/program/localization/pl_PL/messages.inc b/program/localization/pl_PL/messages.inc index 91b3c901c..83c566472 100644 --- a/program/localization/pl_PL/messages.inc +++ b/program/localization/pl_PL/messages.inc @@ -28,6 +28,7 @@ $messages['cookiesdisabled'] = 'Twoja przeglądarka nie obsługuje ciasteczek!'; $messages['sessionerror'] = 'Błąd sesji bądź sesja wygasła!'; $messages['imaperror'] = 'Błąd połączenia z serwerem!'; $messages['servererror'] = 'Błąd serwera!'; +$messages['servererrormsg'] = 'Błąd serwera: $msg'; $messages['invalidrequest'] = 'Błędne żądanie! Nie zapisano danych.'; $messages['nomessagesfound'] = 'Brak wiadomości w skrzynce.'; $messages['loggedout'] = 'Użytkownik wylogował się poprawnie.'; diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc index f5fc44bd4..6353be7cc 100644 --- a/program/steps/mail/list.inc +++ b/program/steps/mail/list.inc @@ -103,10 +103,17 @@ if (isset($a_headers) && count($a_headers)) if ($search_request) $OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $count)); } -else if ($search_request) - $OUTPUT->show_message('searchnomatch', 'notice'); -else - $OUTPUT->show_message('nomessagesfound', 'notice'); +else { + // handle IMAP errors (e.g. #1486905) + if ($err_code = $IMAP->get_error_code()) { + $err_str = $IMAP->get_error_str(); + $OUTPUT->show_message('servererrormsg', 'error', array('msg' => $err_str)); + } + else if ($search_request) + $OUTPUT->show_message('searchnomatch', 'notice'); + else + $OUTPUT->show_message('nomessagesfound', 'notice'); +} // send response $OUTPUT->send(); diff --git a/program/steps/mail/search.inc b/program/steps/mail/search.inc index db46ce428..90d1c374c 100644 --- a/program/steps/mail/search.inc +++ b/program/steps/mail/search.inc @@ -122,6 +122,11 @@ if (!empty($result_h)) { if ($search_str) $OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $IMAP->messagecount(NULL, 'ALL'))); } +// handle IMAP errors (e.g. #1486905) +else if ($err_code = $IMAP->get_error_code()) { + $err_str = $IMAP->get_error_str(); + $OUTPUT->show_message('servererrormsg', 'error', array('msg' => $err_str)); +} else { $OUTPUT->show_message('searchnomatch', 'notice'); } |