Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.1 and 1.9

version 1.1, 2002/07/22 20:35:05 version 1.9, 2002/08/30 15:35:08
Line 1 Line 1
   # The LearningOnline Network with CAPA
   # a pile of common html routines
   #
   # $Id$
   #
   # Copyright Michigan State University Board of Trustees
   #
   # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   #
   # LON-CAPA is free software; you can redistribute it and/or modify
   # it under the terms of the GNU General Public License as published by
   # the Free Software Foundation; either version 2 of the License, or
   # (at your option) any later version.
   #
   # LON-CAPA is distributed in the hope that it will be useful,
   # but WITHOUT ANY WARRANTY; without even the implied warranty of
   # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   # GNU General Public License for more details.
   #
   # You should have received a copy of the GNU General Public License
   # along with LON-CAPA; if not, write to the Free Software
   # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   #
   # /home/httpd/html/adm/gpl.txt
   #
   # http://www.lon-capa.org/
   #
   
 package Apache::lonhtmlcommon;  package Apache::lonhtmlcommon;
   
 use strict;  use strict;
   
   sub AscendOrderOptions {
       my ($order, $page, $formName)=@_;
   
       my $OpSel1 = '';
       my $OpSel2 = '';
   
       if($order eq 'Ascending') {
           $OpSel1 = ' selected';
       } else {
           $OpSel2 = ' selected';
       }
   
       my $Str = '';
       $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;
   }
   
 sub MapOptions {  sub MapOptions {
     my ($data, $page)=@_;      my ($data, $page, $formName)=@_;
     my $Str = '';      my $Str = '';
     $Str .= '<select name="';      $Str .= '<select name="';
     $Str .= (($page)?$page:'').'Map">'."\n";      $Str .= (($page)?$page:'').'Maps"';
       if($formName) {
           $Str .= ' onchange="document.'.$formName.'.submit()"';
       }
       $Str .= '>'."\n";
   
     my $selected = 0;      my $selected = 0;
     foreach my $sequence (split(':',$data->{'orderedSequences'})) {      foreach my $sequence (split(':',$data->{'orderedSequences'})) {
  $Str .= '<option';   $Str .= '<option';
         if($data->{$page.'Map'} eq $data->{$sequence.':title'}) {          if($data->{$page.'Maps'} eq $data->{$sequence.':title'}) {
             $Str .= ' selected';              $Str .= ' selected';
             $selected = 1;              $selected = 1;
         }          }
Line 28  sub MapOptions { Line 85  sub MapOptions {
     return $Str;      return $Str;
 }  }
   
 sub StudentOptions {  sub ProblemOptions {
     my ($cache, $students, $selectedName, $page)=@_;      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;
       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";
   
       return $Str;
   }
   
   sub PartOptions {
       my ($data, $page, $parts, $formName)=@_;
     my $Str = '';      my $Str = '';
     $Str = '<select name="'.(($page)?$page:'').'Student">'."\n";  
   
     my $selected=0;      if(!defined($parts)) {
    return '';
       }
   
       $Str .= '<select name="';
       $Str .= (($page)?$page:'').'PartSelect"';
       if($formName) {
           $Str .= ' onchange="document.'.$formName.'.submit()"';
       }
       $Str .= '>'."\n";
   
       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';      $Str .= '<option';
     if($selectedName eq 'All Students') {      if(!$selected) {
         $Str .= ' selected';          $Str .= ' selected';
         $selected = 1;  
     }      }
     $Str .= '>All Students</option>'."\n";      $Str .= '>All Parts</option>'."\n";
   
       $Str .= '</select>'."\n";
   
       return $Str;
   }
   
   sub StudentOptions {
       my ($cache, $students, $selectedName, $page, $formName)=@_;
   
       my $Str = '';
       $Str .= '<select name="'.(($page)?$page:'').'Student"';
       if($formName) {
           $Str .= ' onchange="document.'.$formName.'.submit()"';
       }
       $Str .= '>'."\n";
   
       my $selected=0;
   
     foreach (@$students) {      foreach (@$students) {
  $Str .= '<option';   $Str .= '<option';
Line 54  sub StudentOptions { Line 179  sub StudentOptions {
     }      }
   
     $Str .= '<option';      $Str .= '<option';
     if(!$selected) {      if($selectedName eq 'No Student Selected') {
         $Str .= ' selected';          $Str .= ' selected';
           $selected = 1;
     }      }
     $Str .= '>No Student Selected</option>'."\n";      $Str .= '>No Student Selected</option>'."\n";
   
       $Str .= '<option';
       if(!$selected) {
           $Str .= ' selected';
       }
       $Str .= '>All Students</option>'."\n";
   
     $Str .= '</select>'."\n";      $Str .= '</select>'."\n";
   
     return $Str;      return $Str;
Line 87  sub StatusOptions { Line 219  sub StatusOptions {
     $Str .= '</select>'."\n";      $Str .= '</select>'."\n";
 }  }
   
 sub Title {  sub MultipleSectionSelect {
     my ($pageName)=@_;      my ($sections,$selectedSections)=@_;
   
     my $Str = '';      my $Str = '';
       $Str .= '<select name="Section" multiple="true" size="4">'."\n";
   
     $Str .= '<html><head><title>'.$pageName.'</title></head>'."\n";      foreach (@$sections) {
     $Str .= '<body bgcolor="#FFFFFF">'."\n";          $Str .= '<option';
     $Str .= '<script>window.focus(); window.width=500;window.height=500;';          foreach my $selected (@$selectedSections) {
     $Str .= '</script>'."\n";              if($_ eq $selected) {
     $Str .= '<table width="100%"><tr><td valign="top">';                  $Str .= ' selected=""';
     $Str .= '<h1> Course: ';              }
     $Str .= $ENV{'course.'.$ENV{'request.course.id'}.'.description'};          }
     $Str .= '</h1></td><td align="right">'."\n";          $Str .= '>'.$_.'</option>'."\n";
     $Str .= '<img align="right" src=/adm/lonIcons/lonlogos.gif>';      }
     $Str .= '</td></tr></table>'."\n";      $Str .= '</select>'."\n";
 #    $Str .= '<h3>Current Time: '.localtime(time).'</h3><br><br><br>'."\n";  
   
     return $Str;      return $Str;
 }  }
   
 sub CreateStatisticsMainMenu {  sub Title {
     my ($status, $reports)=@_;      my ($pageName)=@_;
   
     my $Str = '';      my $Str = '';
   
     $Str .= '<table border="0"><tbody><tr>'."\n";      $Str .= '<html><head><title>'.$pageName.'</title></head>'."\n";
     $Str .= '<td></td><td></td>'."\n";      $Str .= &Apache::loncommon::bodytag($pageName)."\n";
     $Str .= '<td align="center"><b>Analysis Reports:</b></td>'."\n";      $Str .= '<script>window.focus(); window.width=500;window.height=500;';
     $Str .= '<td align="center"><b>Student Status:</b></td></tr>'."\n";      $Str .= '</script>'."\n";
     $Str .= '<tr>'."\n";  
     $Str .= '<td align="center"><input type="submit" name="Refresh" ';  
     $Str .= 'value="Refresh" /></td>'."\n";  
     $Str .= '<td align="center"><input type="submit" name="DownloadAll" ';  
     $Str .= 'value="Update All Student Data" /></td>'."\n";  
     $Str .= '<td align="center">';  
     $Str .= '<select name="reportSelected" onchange="document.';  
     $Str .= 'Statistics.submit()">'."\n";  
   
     foreach (sort(keys(%$reports))) {  
         next if($_ eq 'reportSelected');  
         $Str .= '<option name="'.$_.'"';  
         if($reports->{'reportSelected'} eq $reports->{$_}) {  
             $Str .= ' selected=""';  
         }  
         $Str .= '>'.$reports->{$_}.'</option>'."\n";  
     }  
     $Str .= '</select></td>'."\n";  
   
     $Str .= '<td align="center">';  
     $Str .= &StatusOptions($status, 'Statistics');  
     $Str .= '</td>'."\n";  
   
     $Str .= '</tr></tbody></table>'."\n";  
     $Str .= '<hr>'."\n";  
   
     return $Str;      return $Str;
 }  }
Line 153  This function generates the column headi Line 260  This function generates the column headi
   
 =over 4  =over 4
   
 Inputs: $CacheData, $studentInformation, $headings, $spacePadding  Inputs: $CacheData, $keyID, $headings, $spacePadding
   
 $CacheData: pointer to a hash tied to the cached data database  $CacheData: pointer to a hash tied to the cached data database
   
 $studentInformation: a pointer to an array containing the names of the data   $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  held in a column and is used as part of a key into $CacheData
   
 $headings: The names of the headings for the student information  $headings: The names of the headings for the student information
Line 172  $Str: A formatted string of the table co Line 279  $Str: A formatted string of the table co
   
 =cut  =cut
   
 sub CreateStudentInformationHeadings {  sub CreateHeadings {
     my ($data,$studentInformation,$headings,$displayString)=@_;      my ($data,$keyID,$headings,$displayString,$format)=@_;
     my $Str='';      my $Str='';
       my $formatting = '';
   
     for(my $index=0; $index<(scalar @$headings); $index++) {      for(my $index=0; $index<(scalar @$headings); $index++) {
 #        if(!&ShouldShowColumn($data, 'ChartHeading'.$index)) {    my $currentHeading=$headings->[$index];
 #            next;          if($format eq 'preformatted') {
 #        }              my @dataLength=split(//,$currentHeading);
   my $data=$headings->[$index];              my $length=scalar @dataLength;
         my $linkdata=$studentInformation->[$index];              $formatting = (' 'x
                         ($data->{$keyID->[$index].':columnWidth'}-$length));
           }
           my $linkdata=$keyID->[$index];
   
         my $tempString = $displayString;          my $tempString = $displayString;
         $tempString =~ s/LINKDATA/$linkdata/;          $tempString =~ s/LINKDATA/$linkdata/;
         $tempString =~ s/DISPLAYDATA/$data/;          $tempString =~ s/DISPLAYDATA/$currentHeading/;
           $tempString =~ s/FORMATTING/$formatting/;
   
         $Str .= $tempString;          $Str .= $tempString;
     }      }
   
Line 200  username, domain, section, full name, an Line 314  username, domain, section, full name, an
   
 =over 4  =over 4
   
 Input: $cache, $name, $studentInformation, $spacePadding  Input: $cache, $name, $keyID, $spacePadding
   
 $cache: This is a pointer to a hash that is tied to the cached data  $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  $name:  The name and domain of the current student in name:domain format
   
 $studentInformation: A pointer to an array holding the names used to  $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.  remove data from the hash.  They represent the name of the data to be removed.
   
Line 221  $Str: Formatted string. Line 335  $Str: Formatted string.
 =cut  =cut
   
 sub FormatStudentInformation {  sub FormatStudentInformation {
     my ($cache,$name,$studentInformation,$spacePadding)=@_;      my ($data,$name,$keyID,$displayString,$format)=@_;
     my $Str='';      my $Str='';
     my $data;      my $currentColumn;
   
     for(my $index=0; $index<(scalar @$studentInformation); $index++) {      for(my $index=0; $index<(scalar @$keyID); $index++) {
         if(!&ShouldShowColumn($cache, 'ChartHeading'.$index)) {          $currentColumn=$data->{$name.':'.$keyID->[$index]};
             next;  
           if($format eq 'preformatted') {
               my @dataLength=split(//,$currentColumn);
               my $length=scalar @dataLength;
               $currentColumn.= (' 'x
                        ($data->{$keyID->[$index].':columnWidth'}-$length));
         }          }
         $data=$cache->{$name.':'.$studentInformation->[$index]};  
  $Str .= $data;  
   
  my @dataLength=split(//,$data);          my $tempString = $displayString;
  my $length=scalar @dataLength;          $tempString =~ s/DISPLAYDATA/$currentColumn/;
  $Str .= (' 'x($cache->{$studentInformation->[$index].'Length'}-  
                       $length));          $Str .= $tempString;
  $Str .= $spacePadding;  
     }      }
   
     return $Str;      return $Str;
 }  }
   
   # Create progress
   sub Create_PrgWin {
       my ($r, $title, $heading)=@_;
       $r->print('<script>'.
       "popwin=open(\'\',\'popwin\',\'width=400,height=100\');".
       "popwin.document.writeln(\'<html><body bgcolor=\"#88DDFF\">".
                 "<title>$title</title>".
                 "<h4>$heading</h4>".
                 "<form name=popremain>".
                 "<input type=text size=35 name=remaining value=Starting></form>".
                 "</body></html>\');".
       "popwin.document.close();".
       "</script>");
   
       $r->rflush();
   }
   
   # update progress
   sub Update_PrgWin {
       my ($displayString,$r)=@_;
       $r->print('<script>popwin.document.popremain.remaining.value="'.
                 $displayString.'";</script>');
       $r->rflush();
   }
   
   # close Progress Line
   sub Close_PrgWin {
       my ($r)=@_;
       $r->print('<script>popwin.close()</script>'."\n");
       $r->rflush(); 
   }
   
 1;  1;
 __END__  __END__

Removed from v.1.1  
changed lines
  Added in v.1.9


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