Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.13 and 1.21

version 1.13, 2003/02/20 14:34:59 version 1.21, 2003/05/12 22:04:41
Line 249  sub get_date_from_form { Line 249  sub get_date_from_form {
 ##############################################  ##############################################
 ##############################################  ##############################################
   
 sub AscendOrderOptions {  =pod
     my ($order, $page, $formName)=@_;  
   
     my $OpSel1 = '';  
     my $OpSel2 = '';  
   
     if($order eq 'Ascending') {  =item &pjump_javascript_definition()
         $OpSel1 = ' selected';  
     } else {  
         $OpSel2 = ' selected';  
     }  
   
     my $Str = '';  Returns javascript defining the 'pjump' function, which opens up a
     $Str .= '<select name="'.(($page)?$page:'').'Ascend"';  parameter setting wizard.
     if($formName) {  
         $Str .= ' onchange="document.'.$formName.'.submit()"';  
     }  
     $Str .= '>'."\n";  
     $Str .= '<option'.$OpSel1.'>Ascending</option>'."\n".  
     '<option'.$OpSel2.'>Descending</option>'."\n";  
     $Str .= '</select>'."\n";  
   
     return $Str;  =cut
 }  
   
 sub MapOptions {  
     my ($data, $page, $formName)=@_;  
     my $Str = '';  
     $Str .= '<select name="';  
     $Str .= (($page)?$page:'').'Maps"';  
     if($formName) {  
         $Str .= ' onchange="document.'.$formName.'.submit()"';  
     }  
     $Str .= '>'."\n";  
   
     my $selected = 0;  ##############################################
     foreach my $sequence (split(':',$data->{'orderedSequences'})) {  ##############################################
  $Str .= '<option';  sub pjump_javascript_definition {
         if($data->{$page.'Maps'} eq $data->{$sequence.':title'}) {      my $Str = <<END;
             $Str .= ' selected';      function pjump(type,dis,value,marker,ret,call) {
             $selected = 1;          parmwin=window.open("/adm/rat/parameter.html?type="+escape(type)
         }                   +"&value="+escape(value)+"&marker="+escape(marker)
  $Str .= '>'.$data->{$sequence.':title'}.'</option>'."\n";                        +"&return="+escape(ret)
     }                   +"&call="+escape(call)+"&name="+escape(dis),"LONCAPAparms",
     $Str .= '<option';                   "height=350,width=350,scrollbars=no,menubar=no");
     if(!$selected) {  
         $Str .= ' selected';  
     }      }
     $Str .= '>All Maps</option>'."\n";  END
   
     $Str .= '</select>'."\n";  
   
     return $Str;      return $Str;
 }  }
   
 sub ProblemOptions {  ##############################################
     my ($data, $page, $map, $formName)=@_;  ##############################################
     my $Str = '';  
     $Str .= '<select name="';  
     $Str .= (($page)?$page:'').'ProblemSelect"';  
     if($formName) {  
         $Str .= ' onchange="document.'.$formName.'.submit()"';  
     }  
     $Str .= '>'."\n";  
   
     my $selected = 0;  =pod
     foreach my $sequence (split(':',$data->{'orderedSequences'})) {  
  if($data->{$sequence.':title'} eq $map || $map eq 'All Maps') {  
     foreach my $problem (split(':', $data->{$sequence.':problems'})) {  
  $Str .= '<option';  
  if($data->{$page.'ProblemSelect'} eq   
    $data->{$problem.':title'}) {  
     $Str .= ' selected';  
     $selected = 1;  
  }  
  $Str .= '>'.$data->{$problem.':title'}.'</option>'."\n";  
     }  
  }  
     }  
     $Str .= '<option';  
     if(!$selected) {  
         $Str .= ' selected';  
     }  
     $Str .= '>All Problems</option>'."\n";  
   
     $Str .= '</select>'."\n";  =item &javascript_nothing()
   
     return $Str;  Return an appropriate null for the users browser.  This is used
 }  as the first arguement for window.open calls when you want a blank
   window that you can then write to.
   
 sub PartOptions {  =cut
     my ($data, $page, $parts, $formName)=@_;  
     my $Str = '';  
   
     if(!defined($parts)) {  ##############################################
  return '';  ##############################################
   sub javascript_nothing {
       # mozilla and other browsers work with "''", but IE on mac does not.
       my $nothing = "''";
       my $user_browser;
       my $user_os;
       $user_browser = $ENV{'browser.type'} if (exists($ENV{'browser.type'}));
       $user_os      = $ENV{'browser.os'}   if (exists($ENV{'browser.os'}));
       if (! defined($user_browser) || ! defined($user_os)) {
           (undef,$user_browser,undef,undef,undef,$user_os) = 
                              &Apache::loncommon::decode_user_agent();
     }      }
       if ($user_browser eq 'explorer' && $user_os =~ 'mac') {
     $Str .= '<select name="';          $nothing = "'javascript:void(0);'";
     $Str .= (($page)?$page:'').'PartSelect"';  
     if($formName) {  
         $Str .= ' onchange="document.'.$formName.'.submit()"';  
     }      }
     $Str .= '>'."\n";      return $nothing;
   }
   
     my $selected = 0;  
     foreach my $part (@$parts) {  
  $Str .= '<option';  
  if($data->{$page.'PartSelect'} eq $part) {  
     $Str .= ' selected';  
     $selected = 1;  
  }  
  $Str .= '>'.$part.'</option>'."\n";       
     }  
     $Str .= '<option';  
     if(!$selected) {  
         $Str .= ' selected';  
     }  
     $Str .= '>All Parts</option>'."\n";  
   
     $Str .= '</select>'."\n";  ##############################################
   ##############################################
   
     return $Str;  =pod
 }  
   
 sub StudentOptions {  =item &StatusOptions()
     my ($cache, $students, $selectedName, $page, $formName)=@_;  
   
     my $Str = '';  Returns html for a selection box which allows the user to choose the
     $Str .= '<select name="'.(($page)?$page:'').'Student"';  enrollment status of students.  The selection box name is 'Status'.
     if($formName) {  
         $Str .= ' onchange="document.'.$formName.'.submit()"';  
     }  
     $Str .= '>'."\n";  
   
     my $selected=0;  Inputs:
   
     foreach (@$students) {  $status: the currently selected status.  If undefined the value of
  $Str .= '<option';  $ENV{'form.Status'} is taken.  If that is undefined, a value of 'Active'
  if($selectedName eq $_) {  is used.
             $Str .= ' selected';  
             $selected = 1;  
         }  
         $Str .= '>';  
         $Str .= $cache->{$_.':fullname'};  
         $Str .= '</option>'."\n";       
     }  
   
     $Str .= '<option';  $formname: The name of the form.  If defined the onchange attribute of
     if($selectedName eq 'No Student Selected') {  the selection box is set to document.$formname.submit().
         $Str .= ' selected';  
         $selected = 1;  
     }  
     $Str .= '>No Student Selected</option>'."\n";  
   
     $Str .= '<option';  $size: the size (number of lines) of the selection box.
     if(!$selected) {  
         $Str .= ' selected';  
     }  
     $Str .= '>All Students</option>'."\n";  
   
     $Str .= '</select>'."\n";  Returns: a perl string as described.
   
     return $Str;  =cut
 }  
   
   ##############################################
   ##############################################
 sub StatusOptions {  sub StatusOptions {
     my ($status, $formName)=@_;      my ($status, $formName,$size)=@_;
       $size = 1 if (!defined($size));
       if (! defined($status)) {
           $status = 'Active';
           $status = $ENV{'form.Status'} if (exists($ENV{'form.Status'}));
       }
   
     my $OpSel1 = '';      my $OpSel1 = '';
     my $OpSel2 = '';      my $OpSel2 = '';
Line 431  sub StatusOptions { Line 354  sub StatusOptions {
     if(defined($formName) && $formName ne '') {      if(defined($formName) && $formName ne '') {
         $Str .= ' onchange="document.'.$formName.'.submit()"';          $Str .= ' onchange="document.'.$formName.'.submit()"';
     }      }
       $Str .= ' size="'.$size.'" ';
     $Str .= '>'."\n";      $Str .= '>'."\n";
     $Str .= '<option'.$OpSel1.'>Active</option>'."\n";      $Str .= '<option value="Active" '.$OpSel1.'>'.
     $Str .= '<option'.$OpSel2.'>Expired</option>'."\n";          'Currently Enrolled</option>'."\n";
     $Str .= '<option'.$OpSel3.'>Any</option>'."\n";      $Str .= '<option value="Expired" '.$OpSel2.'>'.
           'Previously Enrolled</option>'."\n";
       $Str .= '<option value="Any" '.$OpSel3.'>'.
           'Any Enrollment Status</option>'."\n";
     $Str .= '</select>'."\n";      $Str .= '</select>'."\n";
 }  }
   
Line 640  sub FormatStudentInformation { Line 567  sub FormatStudentInformation {
   
 # Create progress  # Create progress
 sub Create_PrgWin {  sub Create_PrgWin {
     my ($r, $title, $heading)=@_;      my ($r, $title, $heading, $number_to_do)=@_;
     $r->print('<script>'.      $r->print('<script>'.
     "popwin=open(\'\',\'popwin\',\'width=400,height=100\');".      "popwin=open(\'\',\'popwin\',\'width=400,height=100\');".
     "popwin.document.writeln(\'<html><body bgcolor=\"#88DDFF\">".      "popwin.document.writeln(\'<html><head><title>$title</title></head>".
               "<title>$title</title>".        "<body bgcolor=\"#88DDFF\">".
               "<h4>$heading</h4>".                "<h4>$heading</h4>".
               "<form name=popremain>".                "<form name=popremain>".
               "<input type=text size=35 name=remaining value=Starting></form>".                "<input type=text size=55 name=remaining value=Starting></form>".
               "</body></html>\');".                "</body></html>\');".
     "popwin.document.close();".      "popwin.document.close();".
     "</script>");      "</script>");
   
       my %prog_state;
       $prog_state{'done'}=0;
       $prog_state{'firststart'}=time;
       $prog_state{'laststart'}=time;
       $prog_state{'max'}=$number_to_do;
   
     $r->rflush();      $r->rflush();
       return %prog_state;
 }  }
   
 # update progress  # update progress
 sub Update_PrgWin {  sub Update_PrgWin {
     my ($displayString,$r)=@_;      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;
       $r->rflush();
   }
   
   # increment progress state
   sub Increment_PrgWin {
       my ($r,$prog_state,$extraInfo)=@_;
       $$prog_state{'done'}++;
       my $time_est= (time - $$prog_state{'firststart'})/$$prog_state{'done'} *
    ($$prog_state{'max'}-$$prog_state{'done'});
       $time_est = int($time_est);
       if (int ($time_est/60) > 0) {
    my $min = int($time_est/60);
    my $sec = $time_est % 60;
    $time_est = $min.' minutes';
    if ($sec > 1) {
       $time_est.= ', '.$sec.' seconds';
    } elsif ($sec > 0) {
       $time_est.= ', '.$sec.' second';
    }
       } else {
    $time_est .= ' seconds';
       }
       my $lasttime = time-$$prog_state{'laststart'};
       if ($lasttime == 1) {
           $lasttime = '('.$lasttime.' second for '.$extraInfo.')';
       } else {
           $lasttime = '('.$lasttime.' seconds for '.$extraInfo.')';
       }
       $r->print('<script>popwin.document.popremain.remaining.value="'.
         $$prog_state{'done'}.'/'.$$prog_state{'max'}.
         ': '.$time_est.' remaining '.$lasttime.'";'.'</script>');
       $$prog_state{'laststart'}=time;
     $r->rflush();      $r->rflush();
 }  }
   
 # close Progress Line  # close Progress Line
 sub Close_PrgWin {  sub Close_PrgWin {
     my ($r)=@_;      my ($r,$prog_state)=@_;
     $r->print('<script>popwin.close()</script>'."\n");      $r->print('<script>popwin.close()</script>'."\n");
       undef(%$prog_state);
     $r->rflush();       $r->rflush(); 
 }  }
   

Removed from v.1.13  
changed lines
  Added in v.1.21


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