--- loncom/auth/lonroles.pm 2013/05/06 16:16:03 1.283 +++ loncom/auth/lonroles.pm 2013/08/16 13:13:52 1.291 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.283 2013/05/06 16:16:03 raeburn Exp $ +# $Id: lonroles.pm,v 1.291 2013/08/16 13:13:52 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -311,6 +311,7 @@ sub handler { my $trolecode = 'au./'.$domain.'/'; my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode; $r->internal_redirect($switchserver); + return OK; } last; } @@ -322,6 +323,7 @@ sub handler { my $trolecode = 'ca./'.$domain.'/'.$user; my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode; $r->internal_redirect($switchserver); + return OK; } last; } @@ -343,6 +345,7 @@ sub handler { my $switchserver = '/adm/switchserver?' .'otherserver='.$home.'&role='.$trolecode; $r->internal_redirect($switchserver); + return OK; } } else { delete($env{$envkey}); @@ -519,16 +522,27 @@ ENDENTERKEY my $msg; my ($furl,$ferr)= &Apache::lonuserstate::readmap($cdom.'/'.$cnum); - unless (($ferr) || ($env{'form.switchrole'}) || - ($env{"environment.internal.$cdom.$cnum.$role.adhoc"})) { - &Apache::lonnet::put('nohist_crslastlogin', - {$env{'user.name'}.':'.$env{'user.domain'}. - ':'.$csec.':'.$role => $now},$cdom,$cnum); - my $feeds; + unless ($ferr) { + unless (($env{'form.switchrole'}) || + ($env{"environment.internal.$cdom.$cnum.$role.adhoc"})) { + &Apache::lonnet::put('nohist_crslastlogin', + {$env{'user.name'}.':'.$env{'user.domain'}. + ':'.$csec.':'.$role => $now},$cdom,$cnum); + } + my ($feeds,$syllabus_time); &Apache::lonrss::advertisefeeds($cnum,$cdom,undef,\$feeds); - &Apache::lonnet::appenv( - {'course.'.$cdom.'_'.$cnum.'.feeds' => $feeds} - ); + &Apache::lonnet::appenv({'request.course.feeds' => $feeds}); + &Apache::lonnet::get_numsuppfiles($cnum,$cdom,1); + unless ($env{'course.'.$cdom.'_'.$cnum.'.updatedsyllabus'}) { + unless (($env{'course.'.$cdom.'_'.$cnum.'.externalsyllabus'}) || + ($env{'course.'.$cdom.'_'.$cnum.'.uploadedsyllabus'})) { + my %syllabus=&Apache::lonnet::dump('syllabus',$cdom,$cnum); + $syllabus_time = $syllabus{'uploaded.lastmodified'}; + if ($syllabus_time) { + &Apache::lonnet::appenv({'request.course.syllabustime' => $syllabus_time}); + } + } + } } if (($env{'form.orgurl'}) && ($env{'form.orgurl'}!~/^\/adm\/flip/)) { @@ -678,7 +692,7 @@ ENDENTERKEY $redirect_url .= $where; } $redirect_url .= '/'; - &redirect_user($r,&mt('Entering Construction Space'), + &redirect_user($r,&mt('Entering Authoring Space'), $redirect_url); return OK; } @@ -710,11 +724,13 @@ ENDENTERKEY my $crumbtext = 'User Roles'; my $pagetitle = 'My Roles'; my $recent = &mt('Recent Roles'); + my $standby = &mt('Role selected. Please stand by.'); my $show_course=&Apache::loncommon::show_course(); 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}]; @@ -724,7 +740,6 @@ ENDENTERKEY my $swinfo=&Apache::lonmenu::rawconfig(); my $start_page=&Apache::loncommon::start_page($pagetitle,undef,{bread_crumbs=>$brcrum}); my $funcs = &get_roles_functions($showcount); - my $standby=&mt('Role selected. Please stand by.'); $standby=~s/\n/\\n/g; 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.').'

'; @@ -1142,7 +1157,7 @@ sub gather_roles { } #next if ($home eq 'no_host'); $home = &Apache::lonnet::hostname($home); - $ttype='Construction Space'; + $ttype='Authoring Space'; $twhere=&mt('User').': '.$trest.'
'.&mt('Domain'). ': '.$tdom.'
'. ' '.&mt('Server').': '.$home; @@ -1161,7 +1176,7 @@ sub gather_roles { } #next if ($home eq 'no_host'); $home = &Apache::lonnet::hostname($home); - $ttype='Construction Space'; + $ttype='Authoring Space'; $twhere=&mt('Domain').': '.$tdom.'
'.&mt('Server'). ': '.$home; $env{'course.'.$tdom.'_'.$trest.'.description'}='ca'; @@ -1334,7 +1349,7 @@ sub roletable_headers { } sub roletypes { - my @types = ('Domain','Construction Space','Course','Community','Unavailable','System'); + my @types = ('Domain','Authoring Space','Course','Community','Unavailable','System'); return @types; } @@ -1473,7 +1488,7 @@ sub privileges_info { my (undef,$tdom,$trest,$tsec)=split(m{/},$where); if ($trest) { if ($env{'course.'.$tdom.'_'.$trest.'.description'} eq 'ca') { - $ttype='Construction Space'; + $ttype='Authoring Space'; $twhere='User: '.$trest.', Domain: '.$tdom; } else { $ttype= &Apache::loncommon::course_type($tdom.'_'.$trest); @@ -2427,9 +2442,11 @@ sub update_session_roles { &unescape($groupinfo{'description'}); } $groupdesc = $groupdescs{$cdom.'_'.$cnum}{$group}; - $groupmsg .= '
  • '. - &mt('[_1] with status: [_2].', - ''.$groupdesc.'',$newgroup{$item}).'
  • '; + if ($groupdesc) { + $groupmsg .= '
  • '. + &mt('[_1] with status: [_2].', + ''.$groupdesc.'',$newgroup{$item}).'
  • '; + } } } if ($groupmsg) { @@ -2443,47 +2460,67 @@ sub update_session_roles { } } if (keys(%newrole) > 0) { - $changemsg .= '
  • '.&mt('New roles'). - '
  • '; } if (keys(%customprivchg) > 0) { - $changemsg .= '
  • '. - &mt('Custom roles with privilege changes'). - '
  • '; + if ($privmsg) { + $changemsg .= '
  • '. + &mt('Custom roles with privilege changes'). + ''. + '
  • '; + } } if (keys(%rolechange) > 0) { - $changemsg .= '
  • '. - &mt('Existing roles with status changes').'
  • '. - ''; } if (keys(%deletedroles) > 0) { - $changemsg .= '
  • '. - &mt('Existing roles now expired').'
  • '. - ''; } } if ((keys(%changed_groups) > 0) || (keys(%groupchange) > 0)) { @@ -2543,6 +2580,12 @@ sub update_session_roles { } if ($changemsg) { $msg .= ''; + } else { + if (&Apache::loncommon::show_course()) { + $msg = &mt('No new courses or communities'); + } else { + $msg = &mt('No role changes'); + } } return $msg; } @@ -2554,6 +2597,7 @@ sub role_desc { &Apache::lonnet::role_status('user.role.'.$item,$update,$refresh, $now,\$role,\$where,\$trolecode, \$tstatus,\$tstart,\$tend); + return unless ($role); if ($role =~ /^cr\//) { my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$role); $tremark = &mt('Customrole defined by [_1].',$rauthor.':'.$rdomain); @@ -2595,9 +2639,15 @@ sub role_desc { } elsif ($tdom) { $twhere = &mt('Domain').': '.$tdom; } - my $output = "$trole -- $twhere"; - if ($tremark) { - $output .= '
    '.$tremark; + my $output; + if ($trole) { + $output = $trole; + if ($twhere) { + $output .= " -- $twhere"; + } + if ($tremark) { + $output .= '
    '.$tremark; + } } return $output; } @@ -2683,11 +2733,14 @@ sub get_roles_functions { } if ($env{'user.adv'}) { if ($env{'form.display'} eq 'showall') { - push(@links,["javascript:rolesView('noshowall');",'edit-redo-22x22',&mt('Exclude expired roles')]); + push(@links,["javascript:rolesView('noshowall');",'edit-redo-22x22',&mt('Exclude expired')]); } else { - push(@links,["javascript:rolesView('showall');",'edit-undo-22x22',&mt('Include expired roles')]); + push(@links,["javascript:rolesView('showall');",'edit-undo-22x22',&mt('Include expired')]); } } + if (&Apache::loncommon::designparm('login.coursecatalog',$env{'user.domain'})) { + push(@links,['/adm/coursecatalog','ccat-22x22',&mt('Course catalog')]); + } my $funcs = &Apache::lonhtmlcommon::start_funclist(); foreach my $link (@links) { $funcs .= &Apache::lonhtmlcommon::add_item_funclist(