# The LearningOnline Network with CAPA
# a pile of common html routines
#
# $Id: lonhtmlcommon.pm,v 1.2 2002/07/22 21:21:32 www Exp $
#
# 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;
use strict;
sub MapOptions {
my ($data, $page)=@_;
my $Str = '';
$Str .= '<select name="';
$Str .= (($page)?$page:'').'Map">'."\n";
my $selected = 0;
foreach my $sequence (split(':',$data->{'orderedSequences'})) {
$Str .= '<option';
if($data->{$page.'Map'} eq $data->{$sequence.':title'}) {
$Str .= ' selected';
$selected = 1;
}
$Str .= '>'.$data->{$sequence.':title'}.'</option>'."\n";
}
$Str .= '<option';
if(!$selected) {
$Str .= ' selected';
}
$Str .= '>All Maps</option>'."\n";
$Str .= '</select>'."\n";
return $Str;
}
sub StudentOptions {
my ($cache, $students, $selectedName, $page)=@_;
my $Str = '';
$Str = '<select name="'.(($page)?$page:'').'Student">'."\n";
my $selected=0;
$Str .= '<option';
if($selectedName eq 'All Students') {
$Str .= ' selected';
$selected = 1;
}
$Str .= '>All Students</option>'."\n";
foreach (@$students) {
$Str .= '<option';
if($selectedName eq $_) {
$Str .= ' selected';
$selected = 1;
}
$Str .= '>';
$Str .= $cache->{$_.':fullname'};
$Str .= '</option>'."\n";
}
$Str .= '<option';
if(!$selected) {
$Str .= ' selected';
}
$Str .= '>No Student Selected</option>'."\n";
$Str .= '</select>'."\n";
return $Str;
}
sub StatusOptions {
my ($status, $formName)=@_;
my $OpSel1 = '';
my $OpSel2 = '';
my $OpSel3 = '';
if($status eq 'Any') { $OpSel3 = ' selected'; }
elsif($status eq 'Expired' ) { $OpSel2 = ' selected'; }
else { $OpSel1 = ' selected'; }
my $Str = '';
$Str .= '<select name="Status"';
if(defined($formName) && $formName ne '') {
$Str .= ' onchange="document.'.$formName.'.submit()"';
}
$Str .= '>'."\n";
$Str .= '<option'.$OpSel1.'>Active</option>'."\n";
$Str .= '<option'.$OpSel2.'>Expired</option>'."\n";
$Str .= '<option'.$OpSel3.'>Any</option>'."\n";
$Str .= '</select>'."\n";
}
sub Title {
my ($pageName)=@_;
my $Str = '';
$Str .= '<html><head><title>'.$pageName.'</title></head>'."\n";
$Str .= '<body bgcolor="#FFFFFF">'."\n";
$Str .= '<script>window.focus(); window.width=500;window.height=500;';
$Str .= '</script>'."\n";
$Str .= '<table width="100%"><tr><td valign="top">';
$Str .= '<h1> Course: ';
$Str .= $ENV{'course.'.$ENV{'request.course.id'}.'.description'};
$Str .= '</h1></td><td align="right">'."\n";
$Str .= '<img align="right" src=/adm/lonIcons/lonlogos.gif>';
$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;
}
=pod
=item &CreateTableHeadings()
This function generates the column headings for the chart.
=over 4
Inputs: $CacheData, $studentInformation, $headings, $spacePadding
$CacheData: pointer to a hash tied to the cached data database
$studentInformation: 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 CreateStudentInformationHeadings {
my ($data,$studentInformation,$headings,$displayString)=@_;
my $Str='';
for(my $index=0; $index<(scalar @$headings); $index++) {
# if(!&ShouldShowColumn($data, 'ChartHeading'.$index)) {
# next;
# }
my $data=$headings->[$index];
my $linkdata=$studentInformation->[$index];
my $tempString = $displayString;
$tempString =~ s/LINKDATA/$linkdata/;
$tempString =~ s/DISPLAYDATA/$data/;
$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, $studentInformation, $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
$studentInformation: 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 ($cache,$name,$studentInformation,$spacePadding)=@_;
my $Str='';
my $data;
for(my $index=0; $index<(scalar @$studentInformation); $index++) {
if(!&ShouldShowColumn($cache, 'ChartHeading'.$index)) {
next;
}
$data=$cache->{$name.':'.$studentInformation->[$index]};
$Str .= $data;
my @dataLength=split(//,$data);
my $length=scalar @dataLength;
$Str .= (' 'x($cache->{$studentInformation->[$index].'Length'}-
$length));
$Str .= $spacePadding;
}
return $Str;
}
1;
__END__
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>