--- loncom/interface/lonmenu.pm 2010/09/03 19:20:47 1.309.2.15 +++ 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.15 2010/09/03 19:20:47 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 # @@ -151,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.'
  • '; } @@ -177,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 @@ -213,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'); @@ -238,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'}, @@ -517,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 '') || @@ -525,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)($|\?)]) )); } @@ -598,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}); @@ -844,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 ($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.= '
    choose role'.$createtext.'
    choose role'.$switcher.'
    communication'.&mt('Send/Display Messages').'
    user preferences'.&mt('Set my user preferences').'
    '. - ''. - '
    '. - '

    '.&mt('Test Management').'

    '. - ''."\n". - ''."\n". - ''."\n". - ''. - ''. - '
    course contentsConcept Test Contents
    assemble testAssemble Concept Test
    user privs'.&mt('Enrollment and Student Activity').'
    what is new'.&mt("What's New?").'
    print concept test'.&mt("Prepare Printable Concept Test").'
    Test Statistics'.&mt("Concept Test Statistics").'
    '; + if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) { + $output .= + '
    '. + '

    '.&mt('Test Management').'

    '. + ''. + '

    '; } 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 .= + '
    '. + '

    '.&mt('Utilities').'

    '. + ''; + if ($canreq) { + $output .= '
    '. + '
    '. + '
    '.$createtext.'
    '. + '
    '.&mt('Create a new Concept Test Course Container').'. '.&mt('Choose GCI questions to include in the test and upload a student roster.').'
    '; + } + $output .= '

    '; + } + } elsif ($switcher || $canreq) { + $output .= '

    '. + '
    '. + '

    '.&mt('Utilities').'

    '. + ''; + if ($switcher) { + $output .= '
    '. + '
    '; } - $output .= 'course contents'.$navtext.'
    '; } - } else { - $output.='
    '; - } - if ($context eq 'gcinorole') { - my $queued = &Apache::loncoursequeueadmin::queued_selfenrollment('notitle'); - if ($queued) { - $output .= ''. - '
    '. - '

    '.&mt('Pending Enrollment Requests').'

    '. - $queued. - '
    '; + 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 @@ -1801,7 +1880,6 @@ function switchpage(caller) { if (caller == 'tutorial') { document.location.href = '/adm/roles?selectrole=1&st./gci/5422913620b814c90gcil1=1'; } - return; } @@ -2255,7 +2333,7 @@ function adhocRole(roleitem) { secok = 0; var numrolesec = rolesections[selidx].length; var msgidx = numsec[selidx] - numrolesec; - secchoice = prompt("$lt{'this'}\\n"+secpick[msgidx]+"\\n$lt{'avai'} "+roleseclist[selidx],""); + secchoice = prompt("$lt{'this'} "+secpick[msgidx]+"\\n$lt{'avai'} "+roleseclist[selidx],""); if (secchoice == '') { if (msgidx > 0) { secok = 1;