--- loncom/interface/loncommon.pm 2002/08/22 21:20:23 1.53.2.1 +++ loncom/interface/loncommon.pm 2002/08/26 14:32:29 1.60 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.53.2.1 2002/08/22 21:20:23 albertel Exp $ +# $Id: loncommon.pm,v 1.60 2002/08/26 14:32:29 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -480,7 +480,7 @@ sub help_open_topic { # Add the graphic $template .= <<"ENDTEMPLATE"; -(Help: $topic) +(Help: $topic) ENDTEMPLATE return $template; @@ -735,7 +735,7 @@ sub authform_nochange{ my $result=''; $result.=<<"END"; + onclick="javascript:changed_radio('nochange',$in{'formname'});" /> Do not change login data END return $result; @@ -751,12 +751,12 @@ sub authform_kerberos{ $result.=<<"END"; + onchange="javascript:changed_radio('krb',$in{'formname'});" /> Kerberos authenticated with domain - Version 4 - Version 5 + onchange="javascript:changed_text('krb',$in{'formname'});" /> +Version 4 +Version 5 END return $result; } @@ -771,10 +771,10 @@ sub authform_internal{ $result.=<<"END"; + onclick="javascript:changed_radio('int',$args{'formname'});" /> Internally authenticated (with initial password + onchange="javascript:changed_text('int',$args{'formname'});" /> END return $result; } @@ -789,10 +789,10 @@ sub authform_local{ $result.=<<"END"; + onclick="javascript:changed_radio('loc',$in{'formname'});" /> Local Authentication with argument + onchange="javascript:changed_text('loc',$in{'formname'});" /> END return $result; } @@ -807,7 +807,7 @@ sub authform_filesystem{ $result.=<<"END"; + onclick="javascript:changed_radio('fsys',$in{'formname'});" /> Filesystem authenticated (with initial password @@ -887,52 +887,6 @@ sub keyword { return exists($Keywords{$word}); } -################################################### -# Old code, to be removed soon # -################################################### -# -------------------------------------------------------- Return related words -#sub related { -# my $newword=shift; -# $newword=~s/\W//g; -# $newword=~tr/A-Z/a-z/; -# my $tindex=$theindex{$newword}; -# if ($tindex) { -# my %found=(); -# foreach (split(/\,/,$therelated[$tindex])) { -## - Related word found -# my ($ridx,$rcount)=split(/\:/,$_); -## - Direct relation index -# my $directrel=$rcount/$thecount[$tindex]; -# if ($directrel>$thethreshold) { -# foreach (split(/\,/,$therelated[$ridx])) { -# my ($rridx,$rrcount)=split(/\:/,$_); -# if ($rridx==$tindex) { -## - Determine reverse relation index -# my $revrel=$rrcount/$thecount[$ridx]; -## - Calculate full index -# $found{$ridx}=$directrel*$revrel; -# if ($found{$ridx}>$thethreshold) { -# foreach (split(/\,/,$therelated[$ridx])) { -# my ($rrridx,$rrrcount)=split(/\:/,$_); -# unless ($found{$rrridx}) { -# my $revrevrel=$rrrcount/$thecount[$ridx]; -# if ( -# $directrel*$revrel*$revrevrel>$thethreshold -# ) { -# $found{$rrridx}= -# $directrel*$revrel*$revrevrel; -# } -# } -# } -# } -# } -# } -# } -# } -# } -# return (); -#} - ############################################################### =pod @@ -949,7 +903,6 @@ Uses global $thesaurus_db_file. =cut ############################################################### - sub get_related_words { my $keyword = shift; my %thesaurus_db; @@ -1195,6 +1148,166 @@ sub findallcourses { } ############################################### +############################################### + +=pod + +=item &domainlogo() + +Inputs: $domain (usually will be undef) + +Returns: A link to a domain logo, if the domain logo exists. +If the domain logo does not exist, a description of the domain. + +=cut + +############################################### +############################################### +sub domainlogo { + my ($domain) = @_; + if (! $domain) { + # Determine domain if we have not been given one + $domain = $Apache::lonnet::perlvar{'lonDefDomain'}; + if ($ENV{'user.domain'}) { $domain=$ENV{'user.domain'}; } + if ($ENV{'request.role.domain'}) { + $domain=$ENV{'request.role.domain'}; + } + } + # See if there is a logo + if (-e '/home/httpd/html/adm/lonDomLogos/'.$domain.'.gif') { + return ''; + } elsif(exists($Apache::lonnet::domaindescription{$domain})) { + return $Apache::lonnet::domaindescription{$domain}; + } else { + return ''; + } +} + +############################################### +############################################### + +=pod + +=item &bodytag() + +Returns a uniform header for LON-CAPA web pages. + +Inputs: + + $title, A title to be displayed on the page. + $function, the current role (can be undef). + $addentries, extra parameters for the tag. + $bodyonly, if defined, only return the tag. + $domain, if defined, force a given domain. + +Returns: A uniform header for LON-CAPA web pages. +If $bodyonly is nonzero, a string containing a tag will be returned. +If $bodyonly is undef or zero, an html string containing a tag and +other decorations will be returned. + +=cut + +############################################### +############################################### +sub bodytag { + my ($title,$function,$addentries,$bodyonly,$domain)=@_; + unless ($function) { + $function='student'; + if ($ENV{'request.role'}=~/^(cc|in|ta|ep)/) { + $function='coordinator'; + } + if ($ENV{'request.role'}=~/^(su|dc|ad|li)/) { + $function='admin'; + } + if (($ENV{'request.role'}=~/^(au|ca)/) || + ($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) { + $function='author'; + } + } + my $img=''; + my $pgbg=''; + my $tabbg=''; + my $font=''; + my $link=''; + my $alink='#CC0000'; + my $vlink=''; + if ($function eq 'admin') { + $img='admin'; + $pgbg='#FFFFCC'; + $tabbg='#CCCC99'; + $font='#772200'; + $link='#663300'; + $vlink='#666600'; + } elsif ($function eq 'coordinator') { + $img='coordinator'; + $pgbg='#CCFFFF'; + $tabbg='#CCCCFF'; + $font='#000044'; + $link='#003333'; + $vlink='#006633'; + } elsif ($function eq 'author') { + $img='author'; + $pgbg='#CCFFFF'; + $tabbg='#CCFFCC'; + $font='#004400'; + $link='#003333'; + $vlink='#006666'; + } else { + $img='student'; + $pgbg='#FFFFAA'; + $tabbg='#FF9900'; + $font='#991100'; + $link='#993300'; + $vlink='#996600'; + } +# role and realm + my ($role,$realm) + =&Apache::lonnet::plaintext((split(/\./,$ENV{'request.role'}))[0]); +# realm + if ($ENV{'request.course.id'}) { + $realm= + $ENV{'course.'.$ENV{'request.course.id'}.'.description'}; + } + unless ($realm) { $realm=' '; } +# Set messages + my $messages=&domainlogo($domain); +# Output + my $bodytag = < +END + if ($bodyonly) { + return $bodytag; + } else { + return(< + + +$messages + + + + $title + + + $ENV{'environment.firstname'} + $ENV{'environment.middlename'} + $ENV{'environment.lastname'} + $ENV{'environment.generation'} +   + + + +$role  + + +$realm  +
+ENDBODY + } +} +############################################### sub get_unprocessed_cgi { my ($query,$possible_names)= @_; @@ -1279,6 +1392,8 @@ sub upfile_store { return $datatoken; } +=pod + =item load_tmp_file($r) Load uploaded file from tmp, $r should be the HTTP Request object, @@ -1300,6 +1415,8 @@ sub load_tmp_file { $ENV{'form.upfile'}=join('',@studentdata); } +=pod + =item upfile_record_sep() Separate uploaded file into records @@ -1315,6 +1432,8 @@ sub upfile_record_sep { } } +=pod + =item record_sep($record) Separate a record into fields $record should be an item from the upfile_record_sep(), needs $ENV{'form.upfiletype'} @@ -1365,6 +1484,8 @@ sub record_sep { return %components; } +=pod + =item upfile_select_html() return HTML code to select file and specify its type @@ -1373,7 +1494,7 @@ return HTML code to select file and spec sub upfile_select_html { return (<<'ENDUPFORM'); - +
Type: