--- loncom/interface/loncommon.pm 2004/12/02 21:30:16 1.240 +++ loncom/interface/loncommon.pm 2005/02/14 01:44:02 1.249 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.240 2004/12/02 21:30:16 albertel Exp $ +# $Id: loncommon.pm,v 1.249 2005/02/14 01:44:02 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -691,20 +691,30 @@ sub help_open_menu { $template .= <<"ENDTEMPLATE"; @@ -884,6 +894,7 @@ sub define_excel_formats { $format->{'h1'} = $workbook->add_format(bold=>1, size=>18); $format->{'h2'} = $workbook->add_format(bold=>1, size=>16); $format->{'h3'} = $workbook->add_format(bold=>1, size=>14); + $format->{'i'} = $workbook->add_format(italic=>1); $format->{'date'} = $workbook->add_format(num_format=> 'mm/dd/yyyy hh:mm:ss'); return $format; @@ -1131,7 +1142,7 @@ sub select_dom_form { my $selectdomain = ""; @@ -1230,9 +1241,11 @@ Outputs: ############################################################### ############################################################### sub decode_user_agent { + my ($r)=@_; my @browsertype=split(/\&/,$Apache::lonnet::perlvar{"lonBrowsDet"}); my %mathcap=split(/\&/,$$Apache::lonnet::perlvar{"lonMathML"}); my $httpbrowser=$ENV{"HTTP_USER_AGENT"}; + if (!$httpbrowser && $r) { $httpbrowser=$r->header_in('User-Agent'); } my $clientbrowser='unknown'; my $clientversion='0'; my $clientmathml=''; @@ -2325,7 +2338,7 @@ sub get_student_answers { =item * &submlink() -Inputs: $text $uname $udom $symb +Inputs: $text $uname $udom $symb $target Returns: A link to grades.pm such as to see the SUBM view of a student @@ -2333,15 +2346,64 @@ Returns: A link to grades.pm such as to ############################################### sub submlink { - my ($text,$uname,$udom,$symb)=@_; + my ($text,$uname,$udom,$symb,$target)=@_; if (!($uname && $udom)) { (my $cursymb, my $courseid,$udom,$uname)= &Apache::lonxml::whichuser($symb); if (!$symb) { $symb=$cursymb; } } if (!$symb) { $symb=&symbread(); } - return ''.$text.''; + $symb=&Apache::lonnet::escape($symb); + if ($target) { $target="target=\"$target\""; } + return ''.$text.''; +} +############################################## + +=pod + +=item * &pgrdlink() + +Inputs: $text $uname $udom $symb $target + +Returns: A link to grades.pm such as to see the PGRD view of a student + +=cut + +############################################### +sub pgrdlink { + my $link=&submlink(@_); + $link=~s/(&command=submission)/$1&showgrading=yes/; + return $link; +} +############################################## + +=pod + +=item * &pprmlink() + +Inputs: $text $uname $udom $symb $target + +Returns: A link to parmset.pm such as to see the PPRM view of a +student andn resource + +=cut + +############################################### +sub pprmlink { + my ($text,$uname,$udom,$symb,$target)=@_; + if (!($uname && $udom)) { + (my $cursymb, my $courseid,$udom,$uname)= + &Apache::lonxml::whichuser($symb); + if (!$symb) { $symb=$cursymb; } + } + if (!$symb) { $symb=&symbread(); } + $symb=&Apache::lonnet::escape($symb); + if ($target) { $target="target=\"$target\""; } + return ''.$text.''; } ############################################## @@ -2608,14 +2670,18 @@ ENDROLE $formaction=~s/\/+/\//g; unless ($customtitle) { #this is for resources; directories have customtitle, and crumbs and select recent are created in lonpubdir.pm my $parentpath = ''; - if ($thisdisfn =~ m-(.+/)[^/]*$-) { + my $lastitem = ''; + if ($thisdisfn =~ m-(.+/)([^/]*)$-) { $parentpath = $1; + $lastitem = $2; + } else { + $lastitem = $thisdisfn; } $titleinfo = &Apache::loncommon::help_open_menu('','','','',3,'Authoring'). 'Construction Space: '. '
' - .&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."
" + .&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."$lastitem
" .&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') .'
' .&Apache::lonmenu::constspaceform(); @@ -2643,6 +2709,17 @@ ENDROLE if ($customtitle) { $titleinfo = $customtitle; } + # + # Extra info if you are the DC + my $dc_info = ''; + if ($ENV{'user.adv'} && exists($ENV{'user.role.dc./'. + $ENV{'course.'.$ENV{'request.course.id'}. + '.domain'}.'/'})) { + my $cid = $ENV{'request.course.id'}; + $dc_info.= $cid.' '.$ENV{'course.'.$cid.'.internal.coursecode'}; + $dc_info = '('.$dc_info.')'; + } + # return(< @@ -2652,7 +2729,7 @@ $upperleft -$titleinfo +$titleinfo $dc_info $ENV{'environment.firstname'} @@ -3028,7 +3105,12 @@ needs $ENV{'form.upfile'} and $ENV{'form sub upfile_record_sep { if ($ENV{'form.upfiletype'} eq 'xml') { } else { - return split(/\n/,$ENV{'form.upfile'}); + my @records; + foreach my $line (split(/\n/,$ENV{'form.upfile'})) { + if ($line=~/^\s*$/) { next; } + push(@records,$line); + } + return @records; } } @@ -3837,7 +3919,7 @@ sub icon { $curfext.".gif"; } } - return $iconname; + return &lonhttpdurl($iconname); } sub lonhttpdurl {