svncommit
2006-12-18 23796ec2909bf9cb3ae846f9d124a1098672c5ff
Fix display of quota image/text after a remote command.


1 files added
3 files modified
67 ■■■■ changed files
index.php 3 ●●●●● patch | view | raw | blame | history
program/js/app.js 10 ●●●● patch | view | raw | blame | history
program/steps/mail/func.inc 25 ●●●●● patch | view | raw | blame | history
program/steps/mail/quotadisplay.inc 29 ●●●●● patch | view | raw | blame | history
index.php
@@ -314,6 +314,9 @@
  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);
program/js/app.js
@@ -3040,10 +3040,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);
     };
program/steps/mail/func.inc
@@ -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,7 +642,18 @@
  $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 @@
                          $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 @@
    }
  else
    $quota_text = rcube_label('unlimited');
  $out = '<span' . $attrib_str . '>';
  $out .= $quota_text;
  $out .= '</span>';
  return $out;
  return $quota_text;
  }
program/steps/mail/quotadisplay.inc
New file
@@ -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;
?>