--- loncom/interface/loncommon.pm 2004/11/30 22:57:16 1.236 +++ loncom/interface/loncommon.pm 2005/02/25 04:56:05 1.251 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.236 2004/11/30 22:57:16 albertel Exp $ +# $Id: loncommon.pm,v 1.251 2005/02/25 04:56:05 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -687,24 +687,35 @@ sub help_open_menu { "
$text";
}
+ my $html=&Apache::lonxml::xmlbegin();
my $helpicon=&lonhttpdurl("/adm/lonIcons/helpgateway.gif");
$template .= <<"ENDTEMPLATE";
@@ -884,6 +895,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 +1143,7 @@ sub select_dom_form {
my $selectdomain = "";
@@ -1230,9 +1242,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 +2339,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 +2347,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.'';
}
##############################################
@@ -2606,16 +2669,20 @@ ENDROLE
($ENV{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|);
my $formaction='/priv/'.$uname.'/'.$thisdisfn;
$formaction=~s/\/+/\//g;
- unless ($customtitle) {
- my $parentpath = $thisdisfn;
- if ($thisdisfn =~ m-(.+/)[^/]*$-) {
+ unless ($customtitle) { #this is for resources; directories have customtitle, and crumbs and select recent are created in lonpubdir.pm
+ my $parentpath = '';
+ my $lastitem = '';
+ if ($thisdisfn =~ m-(.+/)([^/]*)$-) {
$parentpath = $1;
+ $lastitem = $2;
+ } else {
+ $lastitem = $thisdisfn;
}
$titleinfo = &Apache::loncommon::help_open_menu('','','','',3,'Authoring').
'Construction Space: '.
''
.&Apache::lonmenu::constspaceform();
@@ -2643,6 +2710,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(< |
|
-$titleinfo +$titleinfo $dc_info | $ENV{'environment.firstname'} @@ -2672,6 +2750,36 @@ ENDBODY } ############################################### +############################################### + +=pod + +=back + +=head1 HTTP Helpers + +=over 4 + +=item * &endbodytag() + +Returns a uniform footer for LON-CAPA web pages. + +Inputs: + +=over 4 + +=back + +Returns: A uniform footer for LON-CAPA web pages. + +=cut + +sub endbodytag { + my $endbodytag=' |