--- loncom/interface/lonmenu.pm 2010/01/15 04:05:21 1.309.2.11
+++ loncom/interface/lonmenu.pm 2010/10/07 15:39:27 1.309.2.17
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.309.2.11 2010/01/15 04:05:21 raeburn Exp $
+# $Id: lonmenu.pm,v 1.309.2.17 2010/10/07 15:39:27 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) || ($env{'user.domain'} eq 'gcitest'));
+ next if $$menuitem[4] eq 'gcitest'
+ && (($env{'user.domain'} eq 'gci') || ($env{'request.role'} eq 'cm'));
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,10 +222,16 @@ 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();
+ my $role = $env{'request.role'};
foreach my $menuitem (@secondary_menu) {
# evaluate conditions
next if ref($menuitem) ne 'ARRAY';
- next if $$menuitem[4] ne 'always'
+ next if $$menuitem[4] eq 'showmenu'
+ && ($custommenu || (!$numdc && $role eq 'cm'));
+ next if $$menuitem[4] ne 'showmenu'
+ && $$menuitem[4] ne 'author'
&& !$env{'request.course.id'};
next if $$menuitem[4] eq 'showreturn'
&& !$showlink
@@ -237,8 +253,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 || ($numdc && $env{'request.noversionuri'} eq '/adm/roles'));
+ 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,11 +303,13 @@ sub gci_secondary_menu {
my %courses = (
'review' => 'gci_9615072b469884921gcil1',
'submit' => 'gci_1H96711d710194bfegcil1',
+ 'tutorial' => 'gci_5422913620b814c90gcil1',
);
my %linktext = (
'review' => 'Review Questions',
'submit' => 'Submit Questions',
'managetest' => 'Manage Tests',
+ 'tutorial' => 'Tutorials',
);
my %links = (
'managetest' => '/adm/menu',
@@ -307,7 +326,7 @@ sub gci_secondary_menu {
$links{'managetest'} = '/adm/roles?selectrole=1&cm=1&orgurl=%2fadm%2fmenu';
}
}
- my @menutabs = ('review','submit','managetest');
+ my @menutabs = ('review','submit','managetest','tutorial');
my $tabs;
foreach my $item (@menutabs) {
if ($item eq $current) {
@@ -514,6 +533,11 @@ ENDINLINEMENU
}
sub show_return_link {
+ return unless ($env{'request.course.id'});
+ 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 '')
||
@@ -522,7 +546,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)($|\?)])
));
}
@@ -595,9 +619,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});
@@ -841,7 +869,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 ($context eq 'gcicustom') {
- my $createtext = &mt('Create Concept Test');
- if ($switcher) {
- $createtext = &mt('Create New Test');
+ if ($context eq 'gcicustom') {
+ 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
}
- $output .= ' | ';
+ $switcher = $switcher_js.$switcher;
}
- if ($switcher) {
- $output .= ' | ';
+ 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');
+ }
}
- $output .= ' | '.
-' | ';
if ($env{'request.course.id'}) {
- if (($context eq 'gcicustom') && (&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) {
- $output.= ' | '.
- ''.
- ' | ';
+ 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 .= '
'.
+ '
';
+ if ($switcher) {
+ $output .= ''.&mt('Select Concept Test').''.
+ ''.$switcher.'
';
+ }
+ $output .= '
';
+ }
+ } elsif ($context eq 'gcinorole') {
+ my $queued = &Apache::loncoursequeueadmin::queued_selfenrollment('notitle');
+ if ($queued) {
+ $output .=
+ ''.
+ '
'.&mt('Pending Enrollment Requests').'
'.
+ $queued.
+ '';
}
- $output.='';
} else {
# calling rawconfig with "1" will evaluate mydesk.tab,
# even if there is no active remote control
@@ -1783,6 +1882,9 @@ function switchpage(caller) {
if (caller == 'managetest') {
document.location.href = '$managetesturl';
}
+ if (caller == 'tutorial') {
+ document.location.href = '/adm/roles?selectrole=1&st./gci/5422913620b814c90gcil1=1';
+ }
return;
}