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

version 1.1, 2002/07/22 20:35:05 version 1.7, 2002/08/13 00:37:18
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 29  sub MapOptions { Line 86  sub MapOptions {
 }  }
   
 sub StudentOptions {  sub StudentOptions {
     my ($cache, $students, $selectedName, $page)=@_;      my ($cache, $students, $selectedName, $page, $formName)=@_;
   
     my $Str = '';      my $Str = '';
     $Str = '<select name="'.(($page)?$page:'').'Student">'."\n";      $Str .= '<select name="'.(($page)?$page:'').'Student"';
       if($formName) {
           $Str .= ' onchange="document.'.$formName.'.submit()"';
       }
       $Str .= '>'."\n";
   
     my $selected=0;      my $selected=0;
     $Str .= '<option';  
     if($selectedName eq 'All Students') {  
         $Str .= ' selected';  
         $selected = 1;  
     }  
     $Str .= '>All Students</option>'."\n";  
   
     foreach (@$students) {      foreach (@$students) {
  $Str .= '<option';   $Str .= '<option';
Line 54  sub StudentOptions { Line 109  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 149  sub StatusOptions {
     $Str .= '</select>'."\n";      $Str .= '</select>'."\n";
 }  }
   
   sub MultipleSectionSelect {
       my ($sections,$selectedSections)=@_;
   
       my $Str = '';
       $Str .= '<select name="Section" multiple="true" size="4">'."\n";
   
       foreach (@$sections) {
           $Str .= '<option';
           foreach my $selected (@$selectedSections) {
               if($_ eq $selected) {
                   $Str .= ' selected=""';
               }
           }
           $Str .= '>'.$_.'</option>'."\n";
       }
       $Str .= '</select>'."\n";
   
       return $Str;
   }
   
 sub Title {  sub Title {
     my ($pageName)=@_;      my ($pageName)=@_;
   
Line 102  sub Title { Line 184  sub Title {
     $Str .= '</h1></td><td align="right">'."\n";      $Str .= '</h1></td><td align="right">'."\n";
     $Str .= '<img align="right" src=/adm/lonIcons/lonlogos.gif>';      $Str .= '<img align="right" src=/adm/lonIcons/lonlogos.gif>';
     $Str .= '</td></tr></table>'."\n";      $Str .= '</td></tr></table>'."\n";
 #    $Str .= '<h3>Current Time: '.localtime(time).'</h3><br><br><br>'."\n";  
   
     return $Str;  
 }  
   
 sub CreateStatisticsMainMenu {  
     my ($status, $reports)=@_;  
   
     my $Str = '';  
   
     $Str .= '<table border="0"><tbody><tr>'."\n";  
     $Str .= '<td></td><td></td>'."\n";  
     $Str .= '<td align="center"><b>Analysis Reports:</b></td>'."\n";  
     $Str .= '<td align="center"><b>Student Status:</b></td></tr>'."\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 196  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 215  $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 250  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 271  $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 @$keyID); $index++) {
           $currentColumn=$data->{$name.':'.$keyID->[$index]};
   
     for(my $index=0; $index<(scalar @$studentInformation); $index++) {          if($format eq 'preformatted') {
         if(!&ShouldShowColumn($cache, 'ChartHeading'.$index)) {              my @dataLength=split(//,$currentColumn);
             next;              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.7


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