diff --git a/index.php b/index.php index e67518512..52d6ddc50 100644 --- a/index.php +++ b/index.php @@ -314,6 +314,9 @@ if ($_task=='mail') if ($_action=='quotaimg') include('program/steps/mail/quotaimg.inc'); + if ($_action=='quotadisplay') + include('program/steps/mail/quotadisplay.inc'); + // make sure the message count is refreshed $IMAP->messagecount($_SESSION['mbox'], 'ALL', TRUE); diff --git a/program/js/app.js b/program/js/app.js index 4bb261cda..55e38bfda 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -3040,10 +3040,14 @@ function rcube_webmail() }; // replace content of quota display - this.set_quota = function(text) + this.set_quota = function() { - if (this.gui_objects.quotadisplay) - this.gui_objects.quotadisplay.innerHTML = text; + if (this.gui_objects.quotadisplay && + this.gui_objects.quotadisplay.attributes.getNamedItem('display') && + this.gui_objects.quotadisplay.attributes.getNamedItem('id')) + this.http_request('quotadisplay', '_display='+ + this.gui_objects.quotadisplay.attributes.getNamedItem('display').nodeValue+ + '&_id='+this.gui_objects.quotadisplay.attributes.getNamedItem('id').nodeValue, false); }; diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 5e91d162f..0f062156c 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -634,7 +634,7 @@ function rcmail_messagecount_display($attrib) function rcmail_quota_display($attrib) { - global $IMAP, $OUTPUT, $JS_OBJECT_NAME, $COMM_PATH; + global $OUTPUT, $JS_OBJECT_NAME, $COMM_PATH; if (!$attrib['id']) $attrib['id'] = 'rcmquotadisplay'; @@ -642,7 +642,18 @@ function rcmail_quota_display($attrib) $OUTPUT->add_script(sprintf("%s.gui_object('quotadisplay', '%s');", $JS_OBJECT_NAME, $attrib['id'])); // allow the following attributes to be added to the tag - $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id')); + $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id', 'display')); + + $out = ''; + $out .= rcmail_quota_content($attrib['display']); + $out .= ''; + return $out; + } + + +function rcmail_quota_content($display) + { + global $IMAP, $COMM_PATH; if (!$IMAP->get_capability('QUOTA')) $quota_text = rcube_label('unknown'); @@ -654,9 +665,9 @@ function rcmail_quota_display($attrib) $quota["percent"]); // show quota as image (by Brett Patterson) - if ($attrib['display'] == 'image' && function_exists('imagegif')) + if ($display == 'image' && function_exists('imagegif')) { - $attrib += array('width' => 100, 'height' => 14); + $attrib = array('width' => 100, 'height' => 14); $quota_text = sprintf('%s', $COMM_PATH, $quota['used'], $quota['total'], @@ -669,12 +680,8 @@ function rcmail_quota_display($attrib) } else $quota_text = rcube_label('unlimited'); - - $out = ''; - $out .= $quota_text; - $out .= ''; - return $out; + return $quota_text; } diff --git a/program/steps/mail/quotadisplay.inc b/program/steps/mail/quotadisplay.inc new file mode 100644 index 000000000..c96a7a7ee --- /dev/null +++ b/program/steps/mail/quotadisplay.inc @@ -0,0 +1,29 @@ + | + +-----------------------------------------------------------------------+ + + $Id$ + +*/ + +$display = isset($_GET['_display']) ? $_GET['_display'] : 'text'; +$id = isset($_GET['_id']) ? $_GET['_id'] : 'rcmquotadisplay'; +$quota = rcmail_quota_content($display); +$command = sprintf("this.gui_objects.%s.innerHTML = '%s';\n", $id, $quota); +rcube_remote_response($command); + +exit; +?>