Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.42 and 1.46

version 1.42, 2004/01/27 16:35:37 version 1.46, 2004/02/12 22:23:30
Line 169  sub checkbox { Line 169  sub checkbox {
     return $Str;      return $Str;
 }  }
   
   
   
 ##############################################  ##############################################
 ##############################################  ##############################################
   
Line 527  sub StatusOptions { Line 525  sub StatusOptions {
     $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 {  
     my ($sections,$selectedSections)=@_;  
   
     my $Str = '';  
     $Str .= '<select name="Section" multiple="true" size="4">'."\n";  
   
     foreach (sort @$sections) {  
         $Str .= '<option';  
         foreach my $selected (@$selectedSections) {  
             if($_ eq $selected) {  
                 $Str .= ' selected=""';  
             }  
         }  
         $Str .= '>'.$_.'</option>'."\n";  
     }  
     $Str .= '</select>'."\n";  
       
     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 {  
     my ($pageName)=@_;  
   
     my $Str = '';  
   
     $Str .= '<html><head><title>'.$pageName.'</title></head>'."\n";  
     $Str .= &Apache::loncommon::bodytag($pageName)."\n";  
     $Str .= '<script>window.focus(); window.width=500;window.height=500;';  
     $Str .= '</script>'."\n";  
   
     return $Str;  
 }  
   
 ########################################################  
 ########################################################  
   
 =pod  
   
 =item &CreateHeadings()  
   
 This function generates the column headings for the chart.  
   
 =over 4  
   
 Inputs: $CacheData, $keyID, $headings, $spacePadding  
   
 $CacheData: pointer to a hash tied to the cached data database  
   
 $keyID: a pointer to an array containing the names of the data   
 held in a column and is used as part of a key into $CacheData  
   
 $headings: The names of the headings for the student information  
   
 $spacePadding: The spaces to go between columns  
   
 Output: $Str  
   
 $Str: A formatted string of the table column headings.  
   
 =back  
   
 =cut  
   
 ########################################################  
 ########################################################  
 sub CreateHeadings {  
     my ($data,$keyID,$headings,$displayString,$format)=@_;  
     my $Str='';  
     my $formatting = '';  
   
     for(my $index=0; $index<(scalar @$headings); $index++) {  
   my $currentHeading=$headings->[$index];  
         if($format eq 'preformatted') {  
             my @dataLength=split(//,$currentHeading);  
             my $length=scalar @dataLength;  
             $formatting = (' 'x  
                       ($data->{$keyID->[$index].':columnWidth'}-$length));  
         }  
         my $linkdata=$keyID->[$index];  
   
         my $tempString = $displayString;  
         $tempString =~ s/LINKDATA/$linkdata/;  
         $tempString =~ s/DISPLAYDATA/$currentHeading/;  
         $tempString =~ s/FORMATTING/$formatting/;  
   
         $Str .= $tempString;  
     }  
   
     return $Str;  
 }  
   
 ########################################################  
 ########################################################  
   
 =pod  
   
 =item &FormatStudentInformation()  
   
 This function produces a formatted string of the student\'s information:  
 username, domain, section, full name, and PID.  
   
 =over 4  
   
 Input: $cache, $name, $keyID, $spacePadding  
   
 $cache: This is a pointer to a hash that is tied to the cached data  
   
 $name:  The name and domain of the current student in name:domain format  
   
 $keyID: A pointer to an array holding the names used to  
   
 remove data from the hash.  They represent the name of the data to be removed.  
   
 $spacePadding: Extra spaces that represent the space between columns  
   
 Output: $Str  
   
 $Str: Formatted string.  
   
 =back  
   
 =cut  
   
 ########################################################  
 ########################################################  
 sub FormatStudentInformation {  
     my ($data,$name,$keyID,$displayString,$format)=@_;  
     my $Str='';  
     my $currentColumn;  
   
     for(my $index=0; $index<(scalar @$keyID); $index++) {  
         $currentColumn=$data->{$name.':'.$keyID->[$index]};  
   
         if($format eq 'preformatted') {  
             my @dataLength=split(//,$currentColumn);  
             my $length=scalar @dataLength;  
             $currentColumn.= (' 'x  
                      ($data->{$keyID->[$index].':columnWidth'}-$length));  
         }  
   
         my $tempString = $displayString;  
         $tempString =~ s/DISPLAYDATA/$currentColumn/;  
   
         $Str .= $tempString;  
     }  
   
     return $Str;  
 }  
   
 ########################################################  ########################################################
 ########################################################  ########################################################
   
Line 826  Returns: none Line 627  Returns: none
 # Create progress  # Create progress
 sub Create_PrgWin {  sub Create_PrgWin {
     my ($r, $title, $heading, $number_to_do)=@_;      my ($r, $title, $heading, $number_to_do)=@_;
       #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('<script>'.      $r->print('<script>'.
     "popwin=open(\'\',\'popwin\',\'width=400,height=100\');".      "var popwin;
        function openpopwin () {
        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>".
Line 835  sub Create_PrgWin { Line 640  sub Create_PrgWin {
               '<input type="text" size="55" name="remaining" value="'.                '<input type="text" size="55" name="remaining" value="'.
       &mt('Starting').'"></form>'.        &mt('Starting').'"></form>'.
               "</body></html>\');".                "</body></html>\');".
     "popwin.document.close();".      "popwin.document.close();}".
     "</script>");      "\nwindow.setTimeout(openpopwin,0)</script>");
   
     my %prog_state;      my %prog_state;
     $prog_state{'done'}=0;      $prog_state{'done'}=0;
Line 924  sub crumbs { Line 729  sub crumbs {
     my ($uri,$target,$prefix,$form)=@_;      my ($uri,$target,$prefix,$form)=@_;
     my $output='<br /><tt><b><font size="+2">'.$prefix.'/';      my $output='<br /><tt><b><font size="+2">'.$prefix.'/';
     if ($ENV{'user.adv'}) {      if ($ENV{'user.adv'}) {
  my $path=$prefix;   my $path=$prefix.'/';
  foreach (split('/',$uri)) {   foreach (split('/',$uri)) {
     unless ($_) { next; }      unless ($_) { next; }
     $path.='/'.$_;      $path.=$_;
       unless ($path eq $uri) { $path.='/'; }
     my $linkpath=$path;      my $linkpath=$path;
     if ($form) {      if ($form) {
  $linkpath="javascript:$form.action='$path/';$form.submit();";   $linkpath="javascript:$form.action='$path';$form.submit();";
     }      }
     $output.='<a href="'.$linkpath.'"'.($target?' target="'.$target.'"':'').'>'.$_.'</a>/';      $output.='<a href="'.$linkpath.'"'.($target?' target="'.$target.'"':'').'>'.$_.'</a>/';
  }   }

Removed from v.1.42  
changed lines
  Added in v.1.46


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