Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.22 and 1.23

version 1.22, 2003/05/21 16:16:32 version 1.23, 2003/06/11 14:20:29
Line 578  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 594  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 607  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 615  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 630  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 639  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 652  sub Close_PrgWin { Line 756  sub Close_PrgWin {
 }  }
   
 1;  1;
   
 __END__  __END__

Removed from v.1.22  
changed lines
  Added in v.1.23


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>