--- loncom/interface/lonhtmlcommon.pm 2004/01/29 00:51:06 1.43 +++ loncom/interface/lonhtmlcommon.pm 2004/02/13 21:12:12 1.47 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.43 2004/01/29 00:51:06 www Exp $ +# $Id: lonhtmlcommon.pm,v 1.47 2004/02/13 21:12:12 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -56,6 +56,7 @@ html. package Apache::lonhtmlcommon; use Time::Local; +use Time::HiRes; use Apache::lonlocal; use strict; @@ -169,8 +170,6 @@ sub checkbox { return $Str; } - - ############################################## ############################################## @@ -527,203 +526,6 @@ sub StatusOptions { $Str .= ''."\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 .= ''."\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 and complete and -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.''."\n"; - $Str .= &Apache::loncommon::bodytag($pageName)."\n"; - $Str .= ''."\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; -} - ######################################################## ######################################################## @@ -826,17 +628,37 @@ Returns: none # Create progress sub Create_PrgWin { my ($r, $title, $heading, $number_to_do)=@_; - $r->print('"); + #the whole function called through timeout is due to issues + #in mozilla Read BUG #2665 if you want to know the whole story + if ($r ne '') { + $r->print('"); + } else { + print('"); + } my %prog_state; $prog_state{'done'}=0; @@ -844,17 +666,22 @@ sub Create_PrgWin { $prog_state{'laststart'}=&Time::HiRes::time(); $prog_state{'max'}=$number_to_do; - $r->rflush(); + if ($r ne '') {$r->rflush();} return %prog_state; } # update progress sub Update_PrgWin { my ($r,$prog_state,$displayString)=@_; - $r->print(''); + } else { + print(''); + } $$prog_state{'laststart'}=&Time::HiRes::time(); - $r->rflush(); + if ($r ne '') {$r->rflush();} } # increment progress state @@ -902,19 +729,29 @@ sub Increment_PrgWin { if ($user_browser eq 'explorer' && $user_os =~ 'mac') { $lasttime = ''; } - $r->print(''); + } else { + print(''); + } $$prog_state{'laststart'}=&Time::HiRes::time(); - $r->rflush(); + if ($r ne '') {$r->rflush();} } # close Progress Line sub Close_PrgWin { my ($r,$prog_state)=@_; - $r->print(''."\n"); + if ($r ne '') { + $r->print(''."\n"); + } else { + print(''."\n"); + } undef(%$prog_state); - $r->rflush(); + if ($r ne '') {$r->rflush();} }