--- loncom/auth/lonroles.pm 2009/12/15 05:04:17 1.240.2.3 +++ loncom/auth/lonroles.pm 2010/10/06 18:46:53 1.240.2.18 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.240.2.3 2009/12/15 05:04:17 raeburn Exp $ +# $Id: lonroles.pm,v 1.240.2.18 2010/10/06 18:46:53 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -138,7 +138,7 @@ use Apache::lonannounce; use Apache::lonlocal; use Apache::lonpageflip(); use Apache::lonnavdisplay(); -use Apache::lonmainmenu(); +use Apache::loncoursequeueadmin; use GDBM_File; use LONCAPA qw(:DEFAULT :match); use HTML::Entities; @@ -165,6 +165,7 @@ sub redirect_user { my $start_page = &Apache::loncommon::start_page('Switching Role',undef, {'redirect' => [1,$url], 'bread_crumbs' => $brcrum,}); + &Apache::lonhtmlcommon::clear_breadcrumbs(); my $end_page = &Apache::loncommon::end_page(); # Note to style police: @@ -449,8 +450,16 @@ ENDENTERKEY if (($cnum) && ($role ne 'ca') && ($role ne 'aa')) { my $msg; + if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } + &Apache::lonnet::appenv({'request.role.adv'=>$tadv}); my ($furl,$ferr)= &Apache::lonuserstate::readmap($cdom.'/'.$cnum); + if ($custommenu) { + unless (($ferr) || ($env{'form.switchrole'})) { + &Apache::lonnet::put('nohist_crslastlogin',{$env{'user.name'}.':'.$env{'user.domain'}.':'.$csec.':'.$role => $now}, + $cdom,$cnum); + } + } if (($env{'form.orgurl'}) && ($env{'form.orgurl'}!~/^\/adm\/flip/)) { my $dest=$env{'form.orgurl'}; @@ -462,8 +471,6 @@ ENDENTERKEY } $dest .= 'symb='.$env{'form.symb'}; } - if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } - &Apache::lonnet::appenv({'request.role.adv'=>$tadv}); if (($ferr) && ($tadv)) { &error_page($r,$ferr,$dest); } else { @@ -482,8 +489,6 @@ ENDENTERKEY .'

'.&mt('Please try again.').'

' .'

'.$ferr.'

'; } - if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } - &Apache::lonnet::appenv({'request.role.adv'=>$tadv}); if (($ferr) && ($tadv)) { &error_page($r,$ferr,$furl); @@ -587,10 +592,14 @@ ENDENTERKEY return OK if $r->header_only; my ($crumbtext,$pagetitle,$recent,$show_course); + $show_course=&Apache::loncommon::show_course(); my $noscript=''.&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.').'
'.&mt('As this is not the case, most functionality in the system will be unavailable.').'

'; if ($custommenu) { - my $start_page = &Apache::loncommon::start_page('Main Menu',undef, - {'bread_crumbs' => 1}); + my $brcrum = {'bread_crumbs' => 1}; + if ($env{'form.destinationurl'} eq '/adm/gci_info') { + undef($brcrum); + } + my $start_page = &Apache::loncommon::start_page('Main Menu',undef,$brcrum); $r->print(<<"ENDCUSTOM"); $start_page
@@ -602,16 +611,25 @@ ENDCUSTOM $crumbtext = 'User Roles'; $pagetitle = 'My Roles'; $recent = &mt('Recent Roles'); - $show_course=&Apache::loncommon::show_course(); + my $standby=&mt('Role selected. Please stand by.'); if ($show_course) { $crumbtext = 'Courses'; $pagetitle = 'My Courses'; $recent = &mt('Recent Courses'); + $standby = &mt('Course selected. Please stand by.'); + } + my $brcrum = [{ href => '/adm/roles', + text => $crumbtext,}, + ]; + my $args; + if (($env{'user.domain'} eq 'gcitest') && (!$numdc)) { + $args = {bread_crumbs => $brcrum, + bread_crumbs_nomenu => 1}; + } else { + $args = {bread_crumbs => $brcrum}; } - my $brcrum =[{href=>"/adm/roles",text=>$crumbtext}]; + my $start_page=&Apache::loncommon::start_page($pagetitle,undef,$args); my $swinfo=&Apache::lonmenu::rawconfig(); - my $start_page=&Apache::loncommon::start_page($pagetitle,undef,{bread_crumbs=>$brcrum}); - my $standby=&mt('Role selected. Please stand by.'); $standby=~s/\n/\\n/g; $r->print(< $refresh}); + if (!$countactive && !$countfuture) { + if (&Apache::loncommon::new_roles_update()) { + ($countactive,$countfuture,$inrole,$possiblerole) = + &gather_roles($then,$refresh,$now,$reinit,$nochoose,\%roletext,\%sortrole, + \%roleclass,\%futureroles,\%timezones); + } + } if ($custommenu) { - my %courses = &Apache::loncommon::existing_gcitest_courses(); + if ($env{'form.destinationurl'} eq '/adm/gci_info') { + $r->print(&gci_info_page()). + &Apache::loncommon::end_page(); + return OK; + } + my %courses = &Apache::loncommon::existing_gcitest_courses('cc'); $env{'browser.interface'}='faketextual'; $env{'environment.remote'}='off'; my $numcourses = keys(%courses); my $switcher; if ($numcourses > 0) { - $switcher = &Apache::lonmainmenu::gcitest_switcher(%courses); + $switcher = &Apache::loncommon::gcitest_switcher('cc',%courses); my $current; if ($env{'request.course.id'}) { $current = 'cc./'.$env{'course.'.$env{'request.course.id'}.'.domain'}. '/'.$env{'course.'.$env{'request.course.id'}.'.num'}; } - my $switcher_js = &Apache::lonmainmenu::gcitest_switcher_js($current,$numcourses); + my $switcher_js = &Apache::loncommon::gcitest_switcher_js($current,$numcourses); $r->print(<<"ENDSCRIPT");