summaryrefslogtreecommitdiff
path: root/program/include/rcmail.php
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2015-02-25 05:24:05 -0500
committerAleksander Machniak <alec@alec.pl>2015-02-25 05:24:05 -0500
commit216b31dd99b54e7be3df8feebeafae72e423bb1c (patch)
tree360de49a19ce73e2aeb22e49cbb54d705e7388b9 /program/include/rcmail.php
parentdb6663b936310cfc51f9ddd39ab7c338f5527256 (diff)
Fix so "over quota" errors are displayed also in message compose page
This also fixes over quota responses on cyrus imap which uses "Over quota" string and no error identifier.
Diffstat (limited to 'program/include/rcmail.php')
-rw-r--r--program/include/rcmail.php17
1 files changed, 13 insertions, 4 deletions
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 6e74560cb..2a154d9de 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -1793,8 +1793,9 @@ class rcmail extends rcube
* @param string $fallback Fallback message label
* @param array $fallback_args Fallback message label arguments
* @param string $suffix Message label suffix
+ * @param array $params Additional parameters (type, prefix)
*/
- public function display_server_error($fallback = null, $fallback_args = null, $suffix = '')
+ public function display_server_error($fallback = null, $fallback_args = null, $suffix = '', $params = array())
{
$err_code = $this->storage->get_error_code();
$res_code = $this->storage->get_response_code();
@@ -1815,8 +1816,8 @@ class rcmail extends rcube
$error = 'errornoperm';
}
// try to detect full mailbox problem and display appropriate message
- // there can be e.g. "Quota exceeded" or "quotum would exceed"
- else if (stripos($err_str, 'quot') !== false && stripos($err_str, 'exceed') !== false) {
+ // there can be e.g. "Quota exceeded" / "quotum would exceed" / "Over quota"
+ else if (stripos($err_str, 'quot') !== false && preg_match('/exceed|over/i', $err_str)) {
$error = 'erroroverquota';
}
else {
@@ -1830,13 +1831,21 @@ class rcmail extends rcube
else if ($fallback) {
$error = $fallback;
$args = $fallback_args;
+ $params['prefix'] = false;
}
if ($error) {
if ($suffix && $this->text_exists($error . $suffix)) {
$error .= $suffix;
}
- $this->output->show_message($error, 'error', $args);
+
+ $msg = $this->gettext(array('name' => $error, 'vars' => $args));
+
+ if ($params['prefix'] && $fallback) {
+ $msg = $this->gettext(array('name' => $fallback, 'vars' => $fallback_args)) . ' ' . $msg;
+ }
+
+ $this->output->show_message($msg, $params['type'] ?: 'error');
}
}