Hi,
When a message is deleted in the main page, the quota display does not
get updated correctly.
This patch fixes that. It's a fairly large patch for such a small
problem, but that's because the object gets created by the php code on
page retrieval.
Please comment, and see if I overlooked something.
Robin
Index: program/js/app.js
===================================================================
--- program/js/app.js (revision 408)
+++ program/js/app.js (working copy)
@@ -3025,10 +3025,14 @@
};
// 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);
};
Index: program/steps/mail/quotadisplay.inc
===================================================================
--- program/steps/mail/quotadisplay.inc (revision 0)
+++ program/steps/mail/quotadisplay.inc (revision 0)
@@ -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(a)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;
+?>
Index: program/steps/mail/func.inc
===================================================================
--- program/steps/mail/func.inc (revision 408)
+++ program/steps/mail/func.inc (working copy)
@@ -634,7 +634,7 @@
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,8 +642,19 @@
$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');
else if ($quota = $IMAP->get_quota())
@@ -654,9 +665,9 @@
$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&_action=quotaimg&u=%s&q=%d&w=%d&h=%d" width="%d" height="%d" alt="%s" title="%s / %s" />',
$COMM_PATH,
$quota['used'], $quota['total'],
@@ -669,12 +680,8 @@
}
else
$quota_text = rcube_label('unlimited');
-
- $out = '<span' . $attrib_str . '>';
- $out .= $quota_text;
- $out .= '</span>';
- return $out;
+ return $quota_text;
}
Index: index.php
===================================================================
--- index.php (revision 408)
+++ index.php (working copy)
@@ -314,7 +314,10 @@
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);
}