Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.47 and 1.52

version 1.47, 2004/02/13 21:12:12 version 1.52, 2004/02/18 08:07:16
Line 557  Inputs Line 557  Inputs
   
 =item $number_to_do The total number of items being processed.  =item $number_to_do The total number of items being processed.
   
   =item $type Either 'popup' or 'inline' (popup is assumed if nothing is
          specified)
   
   =item $width Specify the width in charaters of the input field.
   
   =item $formname Only useful in the inline case, if a form already exists, this needs to be used and specfiy the name of the form, otherwise the Progress line will be created in a new form of it's own
   
   =item $inputname Only useful in the inline case, if a form and an input of type text exists, use this to specify the name of the input field 
   
 =back  =back
   
 Returns a hash containing the progress state data structure.  Returns a hash containing the progress state data structure.
Line 625  Returns: none Line 634  Returns: none
 ########################################################  ########################################################
 ########################################################  ########################################################
   
   my $uniq=0;
   sub get_uniq_name {
       $uniq++;
       return 'uniquename'.$uniq;
   }
   
 # 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,$width,$formname,
     #the whole function called through timeout is due to issues   $inputname)=@_;
     #in mozilla Read BUG #2665 if you want to know the whole story      if (!defined($type)) { $type='popup'; }
     if ($r ne '') {      if (!defined($width)) { $width=55; }
  $r->print('<script>'.      my %prog_state;
       $prog_state{'type'}=$type;
       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="'.$width.'" 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>".      $prog_state{'formname'}=&get_uniq_name();
           "<body bgcolor=\"#88DDFF\">".      &r_print($r,'<form name="'.$prog_state{'formname'}.'">');
                   "<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>\');".      $prog_state{'inputname'}=&get_uniq_name();
         "popwin.document.close();}".      &r_print($r,'<input type="text" name="'.$prog_state{'inputname'}.
       "\nwindow.setTimeout(openpopwin,0)</script>");       '" size="'.$width.'" />');
    } 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 750  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
   
Line 779  sub crumbs { Line 803  sub crumbs {
     return $output.'</font></b></tt><br />';      return $output.'</font></b></tt><br />';
 }  }
   
   # ------------------------------------------------- Output headers for HTMLArea
   
   sub htmlareaheaders {
       unless (&htmlareabrowser()) { return ''; }
       my $lang='en';
       return (<<ENDHEADERS);
   <script type="text/javascript" src="/htmlarea/htmlarea.js"></script>
   <script type="text/javascript" src="/htmlarea/lang/$lang.js"></script>
   <script type="text/javascript" src="/htmlarea/dialog.js"></script>
   <style type="text/css">
   \@import url(/htmlarea/htmlarea.css);
   </style>
   ENDHEADERS
   }
   
   # ---------------------------------------------------------- Script to activate
   
   sub htmlareaactive {
       unless (&htmlareabrowser()) { return ''; }
       return (<<ENDSCRIPT);
   <script type="text/javascript" defer="1">
       HTMLArea.replaceAll();
   </script>
   ENDSCRIPT
   }
   
   # ---------------------------------------- Browser capable of running HTMLArea?
   
   sub htmlareabrowser {
       return 1;
   }
   
 1;  1;
   

Removed from v.1.47  
changed lines
  Added in v.1.52


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