version 1.47, 2004/02/13 21:12:12
|
version 1.49, 2004/02/16 22:28:55
|
Line 627 Returns: none
|
Line 627 Returns: none
|
|
|
# Create progress |
# Create progress |
sub Create_PrgWin { |
sub Create_PrgWin { |
my ($r, $title, $heading, $number_to_do)=@_; |
my ($r, $title, $heading, $number_to_do,$type,$formname,$inputname)=@_; |
#the whole function called through timeout is due to issues |
if (!defined($type)) { $type='popup'; } |
#in mozilla Read BUG #2665 if you want to know the whole story |
my %prog_state; |
if ($r ne '') { |
$prog_state{'type'}=$type; |
$r->print('<script>'. |
if ($type eq 'popup') { |
|
$prog_state{'window'}='popwin'; |
|
#the whole function called through timeout is due to issues |
|
#in mozilla Read BUG #2665 if you want to know the whole story |
|
&r_print($r,'<script>'. |
"var popwin; |
"var popwin; |
function openpopwin () { |
function openpopwin () { |
popwin=open(\'\',\'popwin\',\'width=400,height=100\');". |
popwin=open(\'\',\'popwin\',\'width=400,height=100\');". |
"popwin.document.writeln(\'<html><head><title>$title</title></head>". |
"popwin.document.writeln(\'<html><head><title>$title</title></head>". |
"<body bgcolor=\"#88DDFF\">". |
"<body bgcolor=\"#88DDFF\">". |
"<h4>$heading</h4>". |
"<h4>$heading</h4>". |
"<form name=popremain>". |
"<form name=popremain>". |
'<input type="text" size="55" name="remaining" value="'. |
'<input type="text" size="55" name="remaining" value="'. |
&mt('Starting').'"></form>'. |
&mt('Starting').'"></form>'. |
"</body></html>\');". |
"</body></html>\');". |
"popwin.document.close();}". |
"popwin.document.close();}". |
"\nwindow.setTimeout(openpopwin,0)</script>"); |
"\nwindow.setTimeout(openpopwin,0)</script>"); |
} else { |
$prog_state{'formname'}='popremain'; |
print('<script>'. |
$prog_state{'inputname'}="remaining"; |
"var popwin; |
} elsif ($type eq 'inline') { |
function openpopwin () { |
$prog_state{'window'}='window'; |
popwin=open(\'\',\'popwin\',\'width=400,height=100\');". |
if (!$formname) { |
"popwin.document.writeln(\'<html><head><title>$title</title></head>". |
&r_print($r,'<form name="progresswindow">'); |
"<body bgcolor=\"#88DDFF\">". |
$prog_state{'formname'}='progresswindow'; |
"<h4>$heading</h4>". |
} else { |
"<form name=popremain>". |
$prog_state{'formname'}=$formname; |
'<input type="text" size="55" name="remaining" value="'. |
} |
&mt('Starting').'"></form>'. |
if (!$inputname) { |
"</body></html>\');". |
&r_print($r,'<input type="text" name="progressline" />'); |
"popwin.document.close();}". |
$prog_state{'inputname'}="progressline"; |
"\nwindow.setTimeout(openpopwin,0)</script>"); |
} else { |
|
$prog_state{'inputname'}=$inputname; |
|
|
|
} |
|
if (!$formname) { &r_print($r,'</form>'); } |
|
&Update_PrgWin($r,\%prog_state,&mt('Starting')); |
} |
} |
|
|
my %prog_state; |
|
$prog_state{'done'}=0; |
$prog_state{'done'}=0; |
$prog_state{'firststart'}=&Time::HiRes::time(); |
$prog_state{'firststart'}=&Time::HiRes::time(); |
$prog_state{'laststart'}=&Time::HiRes::time(); |
$prog_state{'laststart'}=&Time::HiRes::time(); |
$prog_state{'max'}=$number_to_do; |
$prog_state{'max'}=$number_to_do; |
|
|
if ($r ne '') {$r->rflush();} |
|
return %prog_state; |
return %prog_state; |
} |
} |
|
|
# update progress |
# update progress |
sub Update_PrgWin { |
sub Update_PrgWin { |
my ($r,$prog_state,$displayString)=@_; |
my ($r,$prog_state,$displayString)=@_; |
if ($r ne '') { |
&r_print($r,'<script>'.$$prog_state{'window'}.'.document.'. |
$r->print('<script>popwin.document.popremain.remaining.value="'. |
$$prog_state{'formname'}.'.'. |
$displayString.'";</script>'); |
$$prog_state{'inputname'}.'.value="'. |
} else { |
$displayString.'";</script>'); |
print('<script>popwin.document.popremain.remaining.value="'. |
|
$displayString.'";</script>'); |
|
} |
|
$$prog_state{'laststart'}=&Time::HiRes::time(); |
$$prog_state{'laststart'}=&Time::HiRes::time(); |
if ($r ne '') {$r->rflush();} |
|
} |
} |
|
|
# increment progress state |
# increment progress state |
Line 729 sub Increment_PrgWin {
|
Line 732 sub Increment_PrgWin {
|
if ($user_browser eq 'explorer' && $user_os =~ 'mac') { |
if ($user_browser eq 'explorer' && $user_os =~ 'mac') { |
$lasttime = ''; |
$lasttime = ''; |
} |
} |
if ($r ne '') { |
&r_print($r,'<script>'.$$prog_state{'window'}.'.document.'. |
$r->print('<script>popwin.document.popremain.remaining.value="'. |
$$prog_state{'formname'}.'.'. |
$$prog_state{'done'}.'/'.$$prog_state{'max'}. |
$$prog_state{'inputname'}.'.value="'. |
': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";'.'</script>'); |
$$prog_state{'done'}.'/'.$$prog_state{'max'}. |
} else { |
': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";'.'</script>'); |
print('<script>popwin.document.popremain.remaining.value="'. |
|
$$prog_state{'done'}.'/'.$$prog_state{'max'}. |
|
': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";'.'</script>'); |
|
} |
|
$$prog_state{'laststart'}=&Time::HiRes::time(); |
$$prog_state{'laststart'}=&Time::HiRes::time(); |
if ($r ne '') {$r->rflush();} |
|
} |
} |
|
|
# close Progress Line |
# close Progress Line |
sub Close_PrgWin { |
sub Close_PrgWin { |
my ($r,$prog_state)=@_; |
my ($r,$prog_state)=@_; |
if ($r ne '') { |
if ($$prog_state{'type'} eq 'popup') { |
$r->print('<script>popwin.close()</script>'."\n"); |
&r_print($r,'<script>popwin.close()</script>'."\n"); |
} else { |
} elsif ($$prog_state{'type'} eq 'inline') { |
print('<script>popwin.close()</script>'."\n"); |
&Update_PrgWin($r,$prog_state,&mt('Done')); |
} |
} |
undef(%$prog_state); |
undef(%$prog_state); |
if ($r ne '') {$r->rflush();} |
|
} |
} |
|
|
|
sub r_print { |
|
my ($r,$to_print)=@_; |
|
if ($r) { |
|
$r->print($to_print); |
|
$r->rflush(); |
|
} else { |
|
print($to_print); |
|
} |
|
} |
|
|
# ------------------------------------------------------- Puts directory header |
# ------------------------------------------------------- Puts directory header |
|
|