version 1.22, 2003/05/21 16:16:32
|
version 1.25, 2003/06/19 15:02:37
|
Line 252 sub get_date_from_form {
|
Line 252 sub get_date_from_form {
|
$year = $tmpyear - 1900; |
$year = $tmpyear - 1900; |
} |
} |
} |
} |
|
if (($year<70) || ($year>137)) { return undef; } |
if (eval(&timelocal($sec,$min,$hour,$day,$month,$year))) { |
if (eval(&timelocal($sec,$min,$hour,$day,$month,$year))) { |
return &timelocal($sec,$min,$hour,$day,$month,$year); |
return &timelocal($sec,$min,$hour,$day,$month,$year); |
} else { |
} else { |
Line 578 sub FormatStudentInformation {
|
Line 579 sub FormatStudentInformation {
|
######################################################## |
######################################################## |
######################################################## |
######################################################## |
|
|
|
=pod |
|
|
|
=item Progess Window Handling Routines |
|
|
|
These routines handle the creation, update, increment, and closure of |
|
progress windows. The progress window reports to the user the number |
|
of items completed and an estimate of the time required to complete the rest. |
|
|
|
=over 4 |
|
|
|
|
|
=item &Create_PrgWin |
|
|
|
Writes javascript to the client to open a progress window and returns a |
|
data structure used for bookkeeping. |
|
|
|
Inputs |
|
|
|
=over 4 |
|
|
|
=item $r Apache request |
|
|
|
=item $title The title of the progress window |
|
|
|
=item $heading A description (usually 1 line) of the process being initiated. |
|
|
|
=item $number_to_do The total number of items being processed. |
|
|
|
=back |
|
|
|
Returns a hash containing the progress state data structure. |
|
|
|
|
|
=item &Update_PrgWin |
|
|
|
Updates the text in the progress indicator. Does not increment the count. |
|
See &Increment_PrgWin. |
|
|
|
Inputs: |
|
|
|
=over 4 |
|
|
|
=item $r Apache request |
|
|
|
=item $prog_state Pointer to the data structure returned by &Create_PrgWin |
|
|
|
=item $displaystring The string to write to the status indicator |
|
|
|
=back |
|
|
|
Returns: none |
|
|
|
|
|
=item Increment_PrgWin |
|
|
|
Increment the count of items completed for the progress window by 1. |
|
|
|
Inputs: |
|
|
|
=over 4 |
|
|
|
=item $r Apache request |
|
|
|
=item $prog_state Pointer to the data structure returned by Create_PrgWin |
|
|
|
=item $extraInfo A description of the items being iterated over. Typically |
|
'student'. |
|
|
|
=back |
|
|
|
Returns: none |
|
|
|
|
|
=item Close_PrgWin |
|
|
|
Closes the progress window. |
|
|
|
Inputs: |
|
|
|
=over 4 |
|
|
|
=item $r Apache request |
|
|
|
=item $prog_state Pointer to the data structure returned by Create_PrgWin |
|
|
|
=back |
|
|
|
Returns: none |
|
|
|
=back |
|
|
|
=cut |
|
|
|
######################################################## |
|
######################################################## |
|
|
# Create progress |
# Create progress |
sub Create_PrgWin { |
sub Create_PrgWin { |
my ($r, $title, $heading, $number_to_do)=@_; |
my ($r, $title, $heading, $number_to_do)=@_; |
Line 594 sub Create_PrgWin {
|
Line 691 sub Create_PrgWin {
|
|
|
my %prog_state; |
my %prog_state; |
$prog_state{'done'}=0; |
$prog_state{'done'}=0; |
$prog_state{'firststart'}=time; |
$prog_state{'firststart'}=&Time::HiRes::time(); |
$prog_state{'laststart'}=time; |
$prog_state{'laststart'}=&Time::HiRes::time(); |
$prog_state{'max'}=$number_to_do; |
$prog_state{'max'}=$number_to_do; |
|
|
$r->rflush(); |
$r->rflush(); |
Line 607 sub Update_PrgWin {
|
Line 704 sub Update_PrgWin {
|
my ($r,$prog_state,$displayString)=@_; |
my ($r,$prog_state,$displayString)=@_; |
$r->print('<script>popwin.document.popremain.remaining.value="'. |
$r->print('<script>popwin.document.popremain.remaining.value="'. |
$displayString.'";</script>'); |
$displayString.'";</script>'); |
$$prog_state{'laststart'}=time; |
$$prog_state{'laststart'}=&Time::HiRes::time(); |
$r->rflush(); |
$r->rflush(); |
} |
} |
|
|
Line 615 sub Update_PrgWin {
|
Line 712 sub Update_PrgWin {
|
sub Increment_PrgWin { |
sub Increment_PrgWin { |
my ($r,$prog_state,$extraInfo)=@_; |
my ($r,$prog_state,$extraInfo)=@_; |
$$prog_state{'done'}++; |
$$prog_state{'done'}++; |
my $time_est= (time - $$prog_state{'firststart'})/$$prog_state{'done'} * |
my $time_est= (&Time::HiRes::time() - $$prog_state{'firststart'})/ |
|
$$prog_state{'done'} * |
($$prog_state{'max'}-$$prog_state{'done'}); |
($$prog_state{'max'}-$$prog_state{'done'}); |
$time_est = int($time_est); |
$time_est = int($time_est); |
if (int ($time_est/60) > 0) { |
if (int ($time_est/60) > 0) { |
my $min = int($time_est/60); |
my $min = int($time_est/60); |
my $sec = $time_est % 60; |
my $sec = $time_est % 60; |
$time_est = $min.' minutes'; |
$time_est = $min.' minutes'; |
if ($sec > 1) { |
if ($min < 10) { |
$time_est.= ', '.$sec.' seconds'; |
if ($sec > 1) { |
} elsif ($sec > 0) { |
$time_est.= ', '.$sec.' seconds'; |
$time_est.= ', '.$sec.' second'; |
} elsif ($sec > 0) { |
} |
$time_est.= ', '.$sec.' second'; |
|
} |
|
} |
} else { |
} else { |
$time_est .= ' seconds'; |
$time_est .= ' seconds'; |
} |
} |
my $lasttime = time-$$prog_state{'laststart'}; |
my $lasttime = &Time::HiRes::time()-$$prog_state{'laststart'}; |
|
if ($lasttime > 9) { |
|
$lasttime = int($lasttime); |
|
} elsif ($lasttime < 0.01) { |
|
$lasttime = 0; |
|
} else { |
|
$lasttime = sprintf("%3.2f",$lasttime); |
|
} |
if ($lasttime == 1) { |
if ($lasttime == 1) { |
$lasttime = '('.$lasttime.' second for '.$extraInfo.')'; |
$lasttime = '('.$lasttime.' second for '.$extraInfo.')'; |
} else { |
} else { |
Line 639 sub Increment_PrgWin {
|
Line 746 sub Increment_PrgWin {
|
$r->print('<script>popwin.document.popremain.remaining.value="'. |
$r->print('<script>popwin.document.popremain.remaining.value="'. |
$$prog_state{'done'}.'/'.$$prog_state{'max'}. |
$$prog_state{'done'}.'/'.$$prog_state{'max'}. |
': '.$time_est.' remaining '.$lasttime.'";'.'</script>'); |
': '.$time_est.' remaining '.$lasttime.'";'.'</script>'); |
$$prog_state{'laststart'}=time; |
$$prog_state{'laststart'}=&Time::HiRes::time(); |
$r->rflush(); |
$r->rflush(); |
} |
} |
|
|
Line 652 sub Close_PrgWin {
|
Line 759 sub Close_PrgWin {
|
} |
} |
|
|
1; |
1; |
|
|
__END__ |
__END__ |