--- loncom/interface/lonmenu.pm 2006/05/15 17:27:51 1.182
+++ loncom/interface/lonmenu.pm 2006/08/04 18:56:19 1.202
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.182 2006/05/15 17:27:51 albertel Exp $
+# $Id: lonmenu.pm,v 1.202 2006/08/04 18:56:19 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -44,6 +44,8 @@ use Apache::lonhtmlcommon();
use Apache::loncommon();
use Apache::lonenc();
use Apache::lonlocal;
+use lib '/home/httpd/lib/perl/';
+use LONCAPA;
use vars qw(@desklines $readdesk);
@@ -60,8 +62,11 @@ sub initlittle {
'Roles':'Courses'),
'docs' => 'Course Documents',
'exit' => 'Exit',
+ 'login' => 'Log In',
'launch' => 'Launch Remote Control',
- 'groups' => 'Groups');
+ 'groups' => 'Groups',
+ 'gdoc' => 'Group Documents',
+ );
}
# ============================= This gets called at the top of the body section
@@ -83,23 +88,27 @@ sub menubuttons {
my $docs='';
my $groups='';
my $showgroups=0;
- my $escurl=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'}));
- my $escsymb=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($env{'request.symb'}));
+ my $escurl=&escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'}));
+ my $escsymb=&escape(&Apache::lonenc::check_encrypt($env{'request.symb'}));
+
+ my $logo=&Apache::loncommon::lonhttpdurl("/adm/lonIcons/minilogo.gif");
+ $logo = '
| ';
if ($env{'request.state'} eq 'construct') {
if (($env{'request.noversionuri'} eq '') || (!defined($env{'request.noversionuri'}))) {
my $returnurl = $env{'request.filename'};
$returnurl =~ s:^/home/([^/]+)/public_html/(.*)$:/priv/$1/$2:;
- $escurl = &Apache::lonnet::escape($returnurl);
+ $escurl = &escape($returnurl);
}
}
if ($env{'request.course.id'}) {
my %coursegroups;
- my $viewgrps_permission =
- &Apache::lonnet::allowed('vcg',$env{'request.course.id'});
+ my $viewgrps_permission =
+ &Apache::lonnet::allowed('vcg',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''));
if (!$viewgrps_permission) {
%coursegroups = &Apache::lonnet::get_active_groups($env{'user.domain'},$env{'user.name'},$env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'});
- }
+ }
if ((keys(%coursegroups) > 0) || ($viewgrps_permission)) {
$showgroups = 1;
}
@@ -114,7 +123,7 @@ ENDNAV
if (($env{'request.noversionuri'}=~/^\/adm\//) &&
($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) &&
($env{'request.noversionuri'}!~/^\/adm\/.*\/(smppg|bulletinboard|aboutme)(\?|$)/)) {
- my $escreload=&Apache::lonnet::escape('return:');
+ my $escreload=&escape('return:');
$reloadlink=(<$lt{'ret'}
ENDRELOAD
@@ -126,7 +135,7 @@ ENDDOCS
}
if ($showgroups) {
$groups =(<$lt{'groups'}
+$lt{'groups'}
ENDGROUPS
}
}
@@ -163,18 +172,15 @@ ENDMAINMENU
my $vlink=&Apache::loncommon::designparm($function.'.vlink',$domain);
my $sidebg=&Apache::loncommon::designparm($function.'.sidebg',$domain);
if ($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public') {
- my $logo=&Apache::loncommon::lonhttpdurl("/adm/lonIcons/minilogo.gif");
return (<
-
- $lt{'exit'}
+ $logo
+ | |
+
+ $lt{'login'}
|
-
-
- LON-CAPA
- |
-
+
ENDINLINEMENU
@@ -189,9 +195,11 @@ ENDINLINEMENU
$navmaps=(<$lt{'nav'}
ENDNAV
+my $is_group = (&Apache::loncommon::course_type() eq 'Group');
if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {
+ my $text = ($is_group) ? $lt{'gdoc'} : $lt{'docs'};
$docs=(<$lt{'docs'}
+$text |
ENDDOCS
}
if ($showgroups) {
@@ -209,14 +217,14 @@ ENDGROUPS
m[^/adm/.*/(smppg|bulletinboard|aboutme)($|\?)])
)
) {
- my $escreload=&Apache::lonnet::escape('return:');
+ my $escreload=&escape('return:');
$reloadlink=(<$lt{'ret'}
ENDRELOAD
}
}
if (($env{'request.state'} eq 'construct') && ($env{'request.course.id'})) {
- my $escreload=&Apache::lonnet::escape('return:');
+ my $escreload=&escape('return:');
$reloadlink=(<$lt{'ret'}
ENDCRELOAD
@@ -227,11 +235,12 @@ ENDCRELOAD
}
my $form=&serverform();
my $utility=&utilityfunctions();
- my $logo=&Apache::loncommon::lonhttpdurl("/adm/lonIcons/minilogo.gif");
my $remote;
if ($env{'user.adv'}) {
$remote = ''.$lt{'launch'}.' | '
}
+
+ my $helplink=&Apache::loncommon::top_nav_help('Help');
return (<
// BEGIN LON-CAPA Internal
@@ -241,6 +250,7 @@ $utility
$form
@@ -277,7 +287,7 @@ sub registerurl {
($env{'environment.remote'} eq 'off') ||
((($env{'request.publicaccess'}) ||
(!&Apache::lonnet::is_on_map(
- &Apache::lonnet::unescape($env{'request.noversionuri'})))) &&
+ &unescape($env{'request.noversionuri'})))) &&
(!$forcereg))) {
return $result.
''.$force_title;
@@ -378,7 +388,7 @@ sub innerregister {
&Apache::lonnet::allowed('opa',$crs)) {
$hwkadd.=&switch('','',7,3,'pparm.gif','problem[_2]','parms[_2]',
"gocmd('/adm/parmset','set')",
- 'Modify deadlines, etc, for this resource');
+ 'Modify parameter settings for this resource');
}
# -- End Homework
###
@@ -437,10 +447,7 @@ sub innerregister {
('','',6,1,'cstr.gif','edit[_1]','resource[_2]',
"go('".$cfile."');","Edit this resource");
} elsif ($editbutton eq '') {
- $editbutton=&switch('','',6,1,'port.gif',
- 'port-[_1]','folio[_1]',
- "go('/adm/portfolio');",
- "Enter my portfolio space");
+ $editbutton=&clear(6,1);
}
}
###
@@ -455,12 +462,13 @@ sub innerregister {
$is_const_dir = 1;
} else {
$currdir =~ s#[^/]+$##;
+ my $cleandisfn = &Apache::loncommon::escape_single($thisdisfn);
$menuitems=(<
@@ -729,7 +737,7 @@ sub load_remote_msg {
if (($env{'browser.interface'} eq 'textual') ||
($env{'environment.remote'} eq 'off')) { return ''; }
- my $esclowerurl=&Apache::lonnet::escape($lowerurl);
+ my $esclowerurl=&escape($lowerurl);
my $link=&mt('Continue on in Inline Menu mode',
"/adm/remote?action=collapse&url=$esclowerurl");
return(<'.$returnval.'';
@@ -919,12 +927,16 @@ sub rawconfig {
my $con=($env{'request.state'} eq 'construct');
my $rol=$env{'request.role'};
my $requested_domain = $env{'request.role.domain'};
- foreach (@desklines) {
- my ($row,$col,$pro,$prt,$img,$top,$bot,$act,$desc)=split(/\:/,$_);
+ foreach my $line (@desklines) {
+ my ($row,$col,$pro,$prt,$img,$top,$bot,$act,$desc)=split(/\:/,$line);
$prt=~s/\$uname/$uname/g;
$prt=~s/\$udom/$udom/g;
$prt=~s/\$crs/$crs/g;
$prt=~s/\$requested_domain/$requested_domain/g;
+ my $type = &Apache::loncommon::course_type();
+ if ($type eq 'Group') {
+ $desc = &convert_menu_function($desc,$type);
+ }
if ($pro eq 'clear') {
$output.=&clear($row,$col);
} elsif ($pro eq 'any') {
@@ -1045,7 +1057,7 @@ sub utilityfunctions {
unless (($env{'browser.interface'} eq 'textual') ||
($env{'environment.remote'} eq 'off') || ($caller eq '/adm/menu')) { return ''; }
my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0]));
- $currenturl=&Apache::lonenc::check_encrypt(&Apache::lonnet::unescape($currenturl));
+ $currenturl=&Apache::lonenc::check_encrypt(&unescape($currenturl));
my $currentsymb=&Apache::lonenc::check_encrypt($env{'request.symb'});
my $nav_control=&nav_control_js();
@@ -1253,6 +1265,20 @@ sub get_nav_status {
return $navstatus;
}
+#FIXME this needs to move into mydesktab and the other locations
+# the text is generated
+sub convert_menu_function {
+ my ($rolename,$type) = @_;
+ if ($type eq 'Group') {
+ $rolename =~ s/student/member/g;
+ $rolename =~ s/group/team/g;
+ $rolename =~ s/course/group/g;
+ $rolename =~ s/Course/Group/g;
+ }
+ return $rolename;
+}
+
+
# ================================================================ Main Program
BEGIN {
500 Internal Server Error
Internal Server Error
The server encountered an internal error or
misconfiguration and was unable to complete
your request.
Please contact the server administrator at
root@localhost to inform them of the time this error occurred,
and the actions you performed just before this error.
More information about this error may be available
in the server error log.