version 1.21, 2003/05/12 22:04:41
|
version 1.23, 2003/06/11 14:20:29
|
Line 65 use strict;
|
Line 65 use strict;
|
|
|
=item &date_setter |
=item &date_setter |
|
|
|
&date_setter returns html and javascript for a compact date-setting form. |
|
To retrieve values from it, use &get_date_from_form(). |
|
|
Inputs |
Inputs |
|
|
=over 4 |
=over 4 |
Line 82 The current setting for this time parame
|
Line 85 The current setting for this time parame
|
An undefined value is taken to indicate the value is the current time. |
An undefined value is taken to indicate the value is the current time. |
Also, to be explicit, a value of 'now' also indicates the current time. |
Also, to be explicit, a value of 'now' also indicates the current time. |
|
|
|
=back |
|
|
|
Bugs |
|
|
|
The method used to restrict user input will fail in the year 2400. |
|
|
=cut |
=cut |
|
|
############################################## |
############################################## |
Line 177 ENDJS
|
Line 186 ENDJS
|
############################################## |
############################################## |
############################################## |
############################################## |
|
|
|
=pod |
|
|
=item &get_date_from_form |
=item &get_date_from_form |
|
|
|
get_date_from_form retrieves the date specified in an &date_setter form. |
|
|
Inputs: |
Inputs: |
|
|
=over 4 |
=over 4 |
Line 565 sub FormatStudentInformation {
|
Line 578 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 581 sub Create_PrgWin {
|
Line 690 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 594 sub Update_PrgWin {
|
Line 703 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 602 sub Update_PrgWin {
|
Line 711 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) { |
Line 617 sub Increment_PrgWin {
|
Line 727 sub Increment_PrgWin {
|
} 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 626 sub Increment_PrgWin {
|
Line 743 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 639 sub Close_PrgWin {
|
Line 756 sub Close_PrgWin {
|
} |
} |
|
|
1; |
1; |
|
|
__END__ |
__END__ |