diff --git a/www/libs/Class.Progressbar.inc b/www/libs/Class.Progressbar.inc
index f0f92106..ecc4436e 100644
--- a/www/libs/Class.Progressbar.inc
+++ b/www/libs/Class.Progressbar.inc
@@ -19,6 +19,8 @@ class ProgressBar
public $status = 'new'; // current status (new,show,hide)
public $step = 0; // current step
public $position = array(); // current bar position
+
+ public $clear_buffer_size = 1024*256; // we need to send this before the lfush to get browser output
// public vars
@@ -78,6 +80,13 @@ class ProgressBar
// private functions
+ private function _flushCache()
+ {
+ echo str_repeat(' ', $this->clear_buffer_size);
+ ob_flush();
+ flush();
+ }
+
private function _calculatePercent($step)
{
// avoid divison through 0
@@ -298,7 +307,7 @@ class ProgressBar
$output .= 'document.getElementById("plbl'.$name.$this->code.'").style.align="'.$this->label[$name]['align'].'";';
$output .= ''."\n";
echo $output;
- flush();
+ $this->_flushCache();
}
}
@@ -308,7 +317,7 @@ class ProgressBar
if ($this->status != 'new')
{
echo ''."\n";
- flush();
+ $this->_flushCache();
}
}
@@ -318,7 +327,7 @@ class ProgressBar
if ($this->status != 'new')
{
echo ''."\n";
- flush();
+ $this->_flushCache();
}
}
@@ -349,7 +358,7 @@ class ProgressBar
$output .= 'document.getElementById("plbl'.$name.$this->code.'").style.font-weight="'.$this->label[$name]['font-weight'].'";';
$output .= ''."\n";
echo $output;
- flush();
+ $this->_flushCache();
}
}
@@ -360,7 +369,7 @@ class ProgressBar
if ($this->status != 'new')
{
echo ''."\n";
- flush();
+ $this->_flushCache();
}
}
@@ -370,7 +379,7 @@ class ProgressBar
if ($this->status != 'new')
{
echo ''."\n";
- flush();
+ $this->_flushCache();
}
}
@@ -380,7 +389,7 @@ class ProgressBar
if ($this->status != 'new')
{
echo ''."\n";
- flush();
+ $this->_flushCache();
}
}
@@ -398,7 +407,7 @@ class ProgressBar
echo 'PBposition'.$this->code.'("width",'.$this->position['width'].');';
echo 'PBposition'.$this->code.'("height",'.$this->position['height'].');';
echo ''."\n";
- flush();
+ $this->_flushCache();
}
}
@@ -547,7 +556,7 @@ class ProgressBar
{
$this->status = 'show';
echo $this->getHtml();
- flush();
+ $this->_flushCache();
}
public function moveStep($step)
@@ -603,7 +612,7 @@ class ProgressBar
if ($js != '')
{
echo ''."\n";
- flush();
+ $this->_flushCache();
}
}
@@ -627,7 +636,7 @@ class ProgressBar
$output .= 'document.getElementById("pbm'.$this->code.'").style.visibility="hidden";document.getElementById("pbm'.$this->code.'").style.display="none";';
$output .= ''."\n";
echo $output;
- flush();
+ $this->_flushCache();
}
}
@@ -641,7 +650,7 @@ class ProgressBar
$output .= 'document.getElementById("pbm'.$this->code.'").style.visibility="visible";document.getElementById("pbm'.$this->code.'").style.visibility="block";';
$output .= ''."\n";
echo $output;
- flush();
+ $this->_flushCache();
}
}