--- loncom/interface/lonmenu.pm 2009/12/07 21:48:37 1.309.2.2
+++ loncom/interface/lonmenu.pm 2010/10/04 23:00:46 1.309.2.16
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.309.2.2 2009/12/07 21:48:37 raeburn Exp $
+# $Id: lonmenu.pm,v 1.309.2.16 2010/10/04 23:00:46 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -131,6 +131,7 @@ use Apache::lonhtmlcommon();
use Apache::loncommon();
use Apache::lonenc();
use Apache::lonlocal;
+use Apache::loncoursequeueadmin;
use LONCAPA qw(:DEFAULT :match);
use HTML::Entities();
@@ -150,6 +151,9 @@ sub prep_menuitem {
} else { # textual Link
$link = &mt($$menuitem[3]);
}
+ if($$menuitem[4] eq 'newmsg'){ #special style for New Messages
+ return '
'.$link.' ';
+ }
return ''.$link.' ';
}
@@ -176,6 +180,12 @@ sub primary_menu {
next if $$menuitem[4] eq 'onlypublic'# hide links which are
&& $env{'user.name'} ne 'public' # only visible to public
&& $env{'user.domain'} ne 'public'; # users
+ next if $$menuitem[4] eq 'gci'
+ && (!$custommenu || $env{'request.role'} =~ m{^st\./gcitest/});
+ next if $$menuitem[4] eq 'home'
+ && $custommenu;
+ next if $$menuitem[4] eq 'gcitest'
+ && $env{'user.domain'} eq 'gci';
next if $$menuitem[4] eq 'roles' # hide links which are
&& $custommenu; # not visible when GCI
next if $$menuitem[4] eq 'courses' # tabbed interface in use
@@ -212,11 +222,13 @@ sub secondary_menu {
$env{'user.domain'}, $env{'user.name'},
$env{'course.' . $env{'request.course.id'} . '.domain'},
$env{'course.' . $env{'request.course.id'} . '.num'});
+ my $custommenu = &Apache::loncommon::needs_gci_custom();
+ my $numdc = &Apache::loncommon::check_for_gci_dc();
foreach my $menuitem (@secondary_menu) {
# evaluate conditions
next if ref($menuitem) ne 'ARRAY';
- next if $$menuitem[4] ne 'always'
- && !$env{'request.course.id'};
+ next if $$menuitem[4] eq 'showmenu'
+ && ($custommenu || !$numdc);
next if $$menuitem[4] eq 'showreturn'
&& !$showlink
&& !($env{'request.state'} eq 'construct');
@@ -237,8 +249,9 @@ sub secondary_menu {
next if $$menuitem[4] =~ /showgroups$/
&& !$canviewgrps
&& !%groups;
-
- if ($$menuitem[3] eq 'Roles' && $env{'request.course.id'}) {
+ next if $$menuitem[4] eq 'showroles'
+ && ($custommenu || !$numdc);
+ if ($$menuitem[3] eq 'Roles' && $env{'request.course.id'} && !$custommenu) {
# special treatment for role selector
my $roles_selector = &roles_selector(
$env{'course.' . $env{'request.course.id'} . '.domain'},
@@ -286,36 +299,30 @@ sub gci_secondary_menu {
my %courses = (
'review' => 'gci_9615072b469884921gcil1',
'submit' => 'gci_1H96711d710194bfegcil1',
+ 'tutorial' => 'gci_5422913620b814c90gcil1',
);
my %linktext = (
'review' => 'Review Questions',
'submit' => 'Submit Questions',
- 'createtest' => 'Create a Test',
+ 'managetest' => 'Manage Tests',
+ 'tutorial' => 'Tutorials',
);
- my (%links,$current);
+ my %links = (
+ 'managetest' => '/adm/menu',
+ );
+ my $current = 'managetest';
+ if ($env{'form.destinationurl'} eq '/adm/gci_info') {
+ undef($current);
+ }
foreach my $key (keys(%courses)) {
$links{$key} = "javascript:switchpage('$key');";
if ($env{'request.course.id'} eq $courses{$key}) {
$links{$key} = '/adm/navmaps';
$current = $key;
+ $links{'managetest'} = '/adm/roles?selectrole=1&cm=1&orgurl=%2fadm%2fmenu';
}
}
- $links{'createtest'} = "javascript:switchpage('createtest');";
- if (($ENV{'REQUEST_URI'} eq '/adm/requestcourse') ||
- ($env{'form.orgurl'} eq '/adm/requestcourse')) {
- $current = 'createtest';
- }
- my @menutabs = ('review','submit','createtest');
- if ($env{'user.adv'}) {
- my $key = 'managetest';
- push(@menutabs,$key);
- $linktext{$key} = 'Manage Tests';
- $links{$key} = "javascript:switchpage('$key');";
- if (($current eq '') && (($ENV{'REQUEST_URI'} eq '/adm/menu') ||
- ($env{'form.orgurl'} eq '/adm/menu'))) {
- $current = $key;
- }
- }
+ my @menutabs = ('review','submit','managetest','tutorial');
my $tabs;
foreach my $item (@menutabs) {
if ($item eq $current) {
@@ -522,6 +529,10 @@ ENDINLINEMENU
}
sub show_return_link {
+ if (($env{'request.noversionuri'} =~ m{^/adm/(viewclasslist|navmaps)($|\?)})
+ || ($env{'request.noversionuri'} =~ m{^/adm/.*/aboutme($|\?)})) {
+ return if ($env{'form.register'});
+ }
return (($env{'request.noversionuri'}=~m{^/(res|public)/} &&
$env{'request.symb'} eq '')
||
@@ -530,7 +541,7 @@ sub show_return_link {
(($env{'request.noversionuri'}=~/^\/adm\//) &&
($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) &&
($env{'request.noversionuri'}!~
- m[^/adm/.*/(smppg|bulletinboard|aboutme)($|\?)])
+ m[^/adm/.*/(smppg|bulletinboard)($|\?)])
));
}
@@ -603,9 +614,13 @@ sub innerregister {
} else {
$contentstext = &mt('Course Contents');
}
- my @crumbs = ({text => $contentstext,
- href => "Javascript:gonav('/adm/navmaps')"});
-
+ my @crumbs;
+ unless (($forcereg) && ($env{'request.noversionuri'} eq '/adm/navmaps')
+ && ($mapurl eq $env{'course.'.$env{'request.course.id'}.'.url'})) {
+ @crumbs = ({text => Apache::loncommon::course_type()
+ . ' Contents',
+ href => "Javascript:gopost('/adm/navmaps','')"});
+ }
if ($mapurl ne $env{'course.'.$env{'request.course.id'}.'.url'}) {
push(@crumbs, {text => '...',
no_mt => 1});
@@ -849,7 +864,7 @@ $menuitems.="Make notes and annotations
"&go('/adm/requestcourse')&Course requests\n";
}
}
- unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme)(\?|$)/) {
+ unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme|portfolio)(\?|$)/) {
if ((!$env{'request.enc'}) && ($env{'request.noversionuri'} !~ m{^/adm/wrapper/ext/})) {
$menuitems.=(<'.
- ''.
- ''.&mt('Utilities').' '.
- '';
- if ($switcher) {
- $output .= ' ';
+ my (%can_request,%request_domains,$canreq,$createtext);
+ my $role = 'st';
+ my $custommenu = &Apache::loncommon::needs_gci_custom();
+ if ($custommenu) {
+ $role = 'cc';
+ }
+ my %courses = &Apache::loncommon::existing_gcitest_courses($role);
+ my $numcourses = keys(%courses);
+ my ($switcher_js,$switcher);
+ my $formname = 'testpicker';
+ if ($numcourses > 0) {
+ $switcher = &Apache::loncommon::gcitest_switcher($role,$formname,%courses);
+ my $current;
+ my $cid = $env{'request.course.id'};
+ if ($cid) {
+ $current = $role.'./'.$env{'course.'.$cid.'.domain'}.
+ '/'.$env{'course.'.$cid.'.num'};
+ }
+ $switcher_js = &Apache::loncommon::gcitest_switcher_js($current,$numcourses,$formname);
+ if ($switcher_js) {
+ $switcher_js= <<"ENDSCRIPT";
+
+
+ENDSCRIPT
+ }
+ $switcher = $switcher_js.$switcher;
}
- $output .= '
';
- if (($env{'request.course.id'}) &&
- (&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) {
- $output.= ''.
- '
'.
- ''.&mt('Test Management').' '.
- ' ';
+ if ($env{'user.domain'} eq 'gci') {
+ $canreq =
+ &Apache::lonnet::check_can_request('gcitest',\%can_request,\%request_domains);
+ $createtext = &mt('Create Concept Test');
+ if ($numcourses) {
+ $createtext = &mt('Create New Test');
+ }
+ }
+ if ($env{'request.course.id'}) {
+ if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {
+ $output .=
+ ' ';
+ } else {
+ my $navtext = &mt('Table of Contents');
+ my $navdesc = &mt('Display Table of Contents for Geoscience Concept Inventory');
+ if ($env{'request.role.domain'} eq 'gcitest') {
+ $navtext = &mt('Display Test Contents');
+ $navdesc = &mt('Display the table of contents for this Concept Test');
+ }
+ $output .=
+ ' ';
+ }
+ } elsif ($switcher || $canreq) {
+ $output .= ' '.
+ ' ';
+ }
+ } elsif ($context eq 'gcinorole') {
+ my $queued = &Apache::loncoursequeueadmin::queued_selfenrollment('notitle');
+ if ($queued) {
+ $output .=
+ ''.
+ '
'.&mt('Pending Enrollment Requests').' '.
+ $queued.
+ '';
}
- $output.=' 0) {
secok = 1;