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

version 1.11, 2003/01/14 22:01:56 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') {  
         $OpSel1 = ' selected';  
     } else {  
         $OpSel2 = ' selected';  
     }  
   
     my $Str = '';  =item &pjump_javascript_definition()
     $Str .= '<select name="'.(($page)?$page:'').'Ascend"';  
     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;  Returns javascript defining the 'pjump' function, which opens up a
 }  parameter setting wizard.
   
 sub MapOptions {  =cut
     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";
 }  }
   
   
   ########################################################
   ########################################################
   
   =pod
   
   =item &MultipleSectionSelect()
   
   Inputs: 
   
   =over 4
   
   =item $sections A references to an array containing the names of all the
   sections used in a class.
   
   =item $selectedSections A reference to an array containing the names of the
   currently selected sections.
   
   =back 
   
   Returns: a string containing HTML for a multiple select box for
   selecting sections of a course.  
   
   The form element name is 'Section'.  @$sections is sorted prior to output.
   
   =cut
   
   ########################################################
   ########################################################
 sub MultipleSectionSelect {  sub MultipleSectionSelect {
     my ($sections,$selectedSections)=@_;      my ($sections,$selectedSections)=@_;
   
Line 454  sub MultipleSectionSelect { Line 410  sub MultipleSectionSelect {
         $Str .= '>'.$_.'</option>'."\n";          $Str .= '>'.$_.'</option>'."\n";
     }      }
     $Str .= '</select>'."\n";      $Str .= '</select>'."\n";
       
     return $Str;      return $Str;
 }  }
   
   ########################################################
   ########################################################
   
   =pod
   
   =item &Title()
   
   Inputs: $pageName a string containing the name of the page to be sent
   to &Apache::loncommon::bodytag.
   
   Returns: string containing being <html> and complete <head> and <title>
   as well as a <script> to focus the current window and change its width
   and height to 500.  Why?  I do not know.  If you find out, please update
   this documentation.
   
   =cut
   
   ########################################################
   ########################################################
 sub Title {  sub Title {
     my ($pageName)=@_;      my ($pageName)=@_;
   
Line 471  sub Title { Line 446  sub Title {
     return $Str;      return $Str;
 }  }
   
   ########################################################
   ########################################################
   
 =pod  =pod
   
 =item &CreateTableHeadings()  =item &CreateHeadings()
   
 This function generates the column headings for the chart.  This function generates the column headings for the chart.
   
Line 498  $Str: A formatted string of the table co Line 476  $Str: A formatted string of the table co
   
 =cut  =cut
   
   ########################################################
   ########################################################
 sub CreateHeadings {  sub CreateHeadings {
     my ($data,$keyID,$headings,$displayString,$format)=@_;      my ($data,$keyID,$headings,$displayString,$format)=@_;
     my $Str='';      my $Str='';
Line 524  sub CreateHeadings { Line 504  sub CreateHeadings {
     return $Str;      return $Str;
 }  }
   
   ########################################################
   ########################################################
   
 =pod  =pod
   
 =item &FormatStudentInformation()  =item &FormatStudentInformation()
Line 553  $Str: Formatted string. Line 536  $Str: Formatted string.
   
 =cut  =cut
   
   ########################################################
   ########################################################
 sub FormatStudentInformation {  sub FormatStudentInformation {
     my ($data,$name,$keyID,$displayString,$format)=@_;      my ($data,$name,$keyID,$displayString,$format)=@_;
     my $Str='';      my $Str='';
Line 577  sub FormatStudentInformation { Line 562  sub FormatStudentInformation {
     return $Str;      return $Str;
 }  }
   
   ########################################################
   ########################################################
   
 # 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.11  
changed lines
  Added in v.1.21


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