--- loncom/interface/lonuserutils.pm 2007/11/06 04:39:19 1.2 +++ loncom/interface/lonuserutils.pm 2007/11/06 18:23:14 1.3 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Utility functions for managing LON-CAPA user accounts # -# $Id: lonuserutils.pm,v 1.2 2007/11/06 04:39:19 raeburn Exp $ +# $Id: lonuserutils.pm,v 1.3 2007/11/06 18:23:14 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1130,23 +1130,36 @@ sub print_userlist { } my ($indexhash,$keylist) = &make_keylist_array(); my (%userlist,%userinfo); + if ($context eq 'domain' && $env{'form.roletype'} eq 'course') { + my $courseform = + &Apache::lonhtmlcommon::course_selection($formname,$totcodes, + $codetitles,$idlist,$idlist_titles); + $r->print('

'.&Apache::lonhtmlcommon::start_pick_box()."\n". + &Apache::lonhtmlcommon::start_pick_box()."\n". + &Apache::lonhtmlcommon::row_title(&mt('Select Course(s)'), + 'LC_oddrow_value')."\n". + $courseform."\n". + &Apache::lonhtmlcommon::row_closure(1). + &Apache::lonhtmlcommon::end_pick_box().'

'. + '

'.&list_submit_button(&mt('Update Display')). + "\n

\n"); + } + $r->print('
'.&mt('Searching').' ...
 
'); + $r->rflush(); if ($context eq 'course') { - # - # Print the userlist - $r->print('

'.&mt('Current User List').'

'); - (my $classlist,$keylist)=&Apache::loncoursedata::get_classlist(); - - if (exists($permission->{'view_section'})) { - my $sec = &Apache::loncoursedata::CL_SECTION(); - foreach my $student (keys(%{$classlist})) { - if ($userlist{$student}[$sec] ne $permission->{'view_section'}) { - delete($userlist{$student}); + my $classlist = &Apache::loncoursedata::get_classlist(); + my $secidx = &Apache::loncoursedata::CL_SECTION(); + foreach my $student (keys(%{$classlist})) { + if (exists($permission->{'view_section'})) { + if ($classlist->{$student}[$secidx] ne $permission->{'view_section'}) { + next; + } else { + $userlist{$student} = $classlist->{$student}; } + } else { + $userlist{$student} = $classlist->{$student}; } } - foreach my $item (keys(%{$classlist})) { - $userlist{$item} = $classlist->{$item}; - } my $cid =$env{'request.course.id'}; my $cdom=$env{'course.'.$cid.'.domain'}; my $cnum=$env{'course.'.$cid.'.num'}; @@ -1206,19 +1219,6 @@ sub print_userlist { } } } elsif ($env{'form.roletype'} eq 'course') { - my $courseform = - &Apache::lonhtmlcommon::course_selection($formname,$totcodes, - $codetitles,$idlist,$idlist_titles); - my $output='

'.&Apache::lonhtmlcommon::start_pick_box()."\n". - &Apache::lonhtmlcommon::start_pick_box()."\n". - &Apache::lonhtmlcommon::row_title(&mt('Select Course(s)'), - 'LC_oddrow_value')."\n". - $courseform."\n". - &Apache::lonhtmlcommon::row_closure(1). - &Apache::lonhtmlcommon::end_pick_box().'

'; - $r->print($output); - $r->print('

'.&list_submit_button(&mt('Update Display')). - "\n

\n"); if ($env{'form.coursepick'}) { my %courses = &process_coursepick(); my %allusers; @@ -1264,29 +1264,29 @@ sub print_userlist { } } } - if (keys(%userlist) == 0) { - if ($context eq 'construction_space') { - $r->print(&mt('There are no co-authors to display.')."\n"); - } elsif ($context eq 'domain') { - if ($env{'form.roletype'} eq 'domain') { - $r->print(&mt('There are no users with domain roles to display.')."\n"); - } elsif ($env{'form.roletype'} eq 'construction_space') { - $r->print(&mt('There are no authors or co-authors to display.')."\n"); - } elsif ($env{'form.roletype'} eq 'course') { - $r->print(&mt('There are no course users to display')."\n"); - } - } elsif ($context eq 'course') { - $r->print(&mt('There are no course users to display.')."\n"); + } + if (keys(%userlist) == 0) { + if ($context eq 'construction_space') { + $r->print(&mt('There are no co-authors to display.')."\n"); + } elsif ($context eq 'domain') { + if ($env{'form.roletype'} eq 'domain') { + $r->print(&mt('There are no users with domain roles to display.')."\n"); + } elsif ($env{'form.roletype'} eq 'construction_space') { + $r->print(&mt('There are no authors or co-authors to display.')."\n"); + } elsif ($env{'form.roletype'} eq 'course') { + $r->print(&mt('There are no course users to display')."\n"); } + } elsif ($context eq 'course') { + $r->print(&mt('There are no course users to display.')."\n"); + } + } else { + # Print out the available choices + if ($env{'form.action'} eq 'modifystudent') { + &show_users_list($r,$context,'view','modify', + $env{'form.Status'},\%userlist,$keylist); } else { - # Print out the available choices - if ($env{'form.action'} eq 'modifystudent') { - &show_users_list($r,$context,'view','modify', - $env{'form.Status'},\%userlist,$keylist); - } else { - &show_users_list($r,$context,$env{'form.output'},'aboutme', - $env{'form.Status'},\%userlist,$keylist); - } + &show_users_list($r,$context,$env{'form.output'},'aboutme', + $env{'form.Status'},\%userlist,$keylist); } } $r->print(''); @@ -1603,14 +1603,14 @@ sub show_users_list { my ($CSVfile,$CSVfilename); # my $sortby = $env{'form.sortby'}; + my @sortable = ('username','domain','id','fullname','start','end','email','role'); if ($context eq 'course') { - if ($sortby !~ /^(username|domain|section|groups|fullname|id|start|end|type)$/) { - $sortby = 'username'; - } + push(@sortable,('section','groups','type')); } else { - if ($sortby !~ /^(username|domain|id|fullname|start|end|role|email|extent)$/) { - $sortby = 'username'; - } + push(@sortable,'extent'); + } + if (!grep(/^\Q$sortby\E$/,@sortable)) { + $sortby = 'username'; } my ($cid,$cdom,$cnum,$classgroups,$displayphotos,$displayclickers); if ($context eq 'course') { @@ -1683,7 +1683,7 @@ END if (!($context eq 'domain' && $env{'form.roletype'} eq 'course')) { push(@cols,('start','end')); } - if ($env{'form.showrole'} eq 'Any') { + if ($env{'form.showrole'} eq 'Any' || $env{'form.showrole'} eq 'cr') { push(@cols,'role'); } if ($context eq 'domain' && ($env{'form.roletype'} eq 'construction_space' || @@ -1705,11 +1705,8 @@ END } my $results_description = &results_header_row($rolefilter,$statusmode, $context); - + $r->print(''.$results_description.'
'); if ($mode eq 'html' || $mode eq 'view') { - $r->print('
'.&mt('Searching').' ...
 
'); - $r->rflush(); - $r->print(''.$results_description.'
'); if ($linkto eq 'aboutme') { $r->print(&mt("Select a user name to view the user's personal page.")); } elsif ($linkto eq 'modify') { @@ -1988,7 +1985,7 @@ sub results_header_row { my ($rolefilter,$statusmode,$context) = @_; my $description; if ($context eq 'course') { - $description = &mt('Course - ').$env{'course.'.env{'request.course.id'}.'.description'}.': '; + $description = &mt('Course - ').$env{'course.'.$env{'request.course.id'}.'.description'}.': '; if ($statusmode eq 'Expired') { $description .= &mt('Users in course with expired [_1] roles',$rolefilter); }