summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--index.php3
-rw-r--r--program/js/app.js10
-rw-r--r--program/steps/mail/func.inc25
-rw-r--r--program/steps/mail/quotadisplay.inc29
4 files changed, 55 insertions, 12 deletions
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 <span> tag
- $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id'));
+ $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id', 'display'));
+
+ $out = '<span' . $attrib_str . '>';
+ $out .= rcmail_quota_content($attrib['display']);
+ $out .= '</span>';
+ 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('<img src="%s&amp;_action=quotaimg&amp;u=%s&amp;q=%d&amp;w=%d&amp;h=%d" width="%d" height="%d" alt="%s" title="%s / %s" />',
$COMM_PATH,
$quota['used'], $quota['total'],
@@ -669,12 +680,8 @@ function rcmail_quota_display($attrib)
}
else
$quota_text = rcube_label('unlimited');
-
- $out = '<span' . $attrib_str . '>';
- $out .= $quota_text;
- $out .= '</span>';
- 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 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/mail/quotadisplay.inc |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2005, RoundCube Dev. - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Remote call to return the quota image or text |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Robin Elfrink <robin@15augustus.nl> |
+ +-----------------------------------------------------------------------+
+
+ $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;
+?>