--- loncom/interface/lonuserutils.pm 2007/12/05 17:53:13 1.9 +++ loncom/interface/lonuserutils.pm 2007/12/05 19:11:37 1.10 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Utility functions for managing LON-CAPA user accounts # -# $Id: lonuserutils.pm,v 1.9 2007/12/05 17:53:13 raeburn Exp $ +# $Id: lonuserutils.pm,v 1.10 2007/12/05 19:11:37 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1358,6 +1358,8 @@ sub print_userlist { &gather_userinfo($context,$format,\%userlist,$indexhash, \%userinfo,\%allusers); } else { + $r->print(''); return; } } @@ -1381,17 +1383,18 @@ sub print_userlist { # Print out the available choices my $usercount; if ($env{'form.action'} eq 'modifystudent') { - ($usercount) = &show_users_list($r,$context,'view','modify', + ($usercount) = &show_users_list($r,$context,'view',$permission, $env{'form.Status'},\%userlist,$keylist); } else { ($usercount) = &show_users_list($r,$context,$env{'form.output'}, - 'aboutme',$env{'form.Status'},\%userlist,$keylist); + $permission,$env{'form.Status'},\%userlist,$keylist); } if (!$usercount) { $r->print('
'.&mt('There are no users matching the search criteria.')); } } - $r->print(''); + $r->print(''); } sub list_submit_button { @@ -1696,7 +1699,7 @@ sub process_date_info { } sub show_users_list { - my ($r,$context,$mode,$linkto,$statusmode,$userlist,$keylist)=@_; + my ($r,$context,$mode,$permission,$statusmode,$userlist,$keylist)=@_; # # Variables for excel output my ($excel_workbook, $excel_sheet, $excel_filename,$row,$format); @@ -1749,6 +1752,29 @@ END } unless ($mode eq 'autoenroll') { $r->print(< + +function username_display_launch(username,domain) { + var target; + for (var i=0; i + END } @@ -1772,6 +1798,9 @@ END 'clicker' => "clicker id", 'photo' => "photo", 'extent' => "extent", + 'link' => "Behavior of username links", + 'aboutme' => "Display a user's personal page", + 'modify' => "Modify a user's information", ); if ($context eq 'domain' && $env{'form.roletype'} eq 'course') { $lt{'extent'} = &mt('Course(s): description, section(s), status'); @@ -1813,13 +1842,33 @@ END my $output; if ($mode eq 'html' || $mode eq 'view') { $r->print(< - + + + + + END - if ($linkto eq 'aboutme') { - $output = &mt("Select a user name to view the user's personal page."); - } elsif ($linkto eq 'modify') { - $output = &mt("Select a user name to modify the user's information"); + if ($mode ne 'autoenroll') { + $output = '

'; + my @linkdests = ('aboutme'); + if ($permission->{'cusr'}) { + push (@linkdests,'modify'); + $output .= ''.$lt{'link'}.': '; + my $usernamelink = $env{'form.usernamelink'}; + if ($usernamelink eq '') { + $usernamelink = 'aboutme'; + } + foreach my $item (@linkdests) { + my $checkedstr = ''; + if ($item eq $usernamelink) { + $checkedstr = ' checked="checked" '; + } + $output .= '  '; + } + $output .= '
'; + } else { + $output .= &mt("Click on a username to view the user's personal page.").'
'; + } } $output .= "\n

\n". &Apache::loncommon::start_data_table(). @@ -2000,22 +2049,12 @@ END if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') { $r->print(&Apache::loncommon::start_data_table_row()); $r->print("$rowcount\n"); - if ($linkto eq 'aboutme') { - $in{'username'} = - &Apache::loncommon::aboutmewrapper($in{'username'}, - $in{'username'}, - $in{'domain'}); - } elsif ($linkto eq 'modify') { - $in{'username'} = ''. - $in{'username'}."\n"; - } foreach my $item (@cols) { - $r->print(''.$in{$item}.''."\n"); + if ($item eq 'username') { + $r->print(''.&print_username_link($permission,\%in).''); + } else { + $r->print(''.$in{$item}.''."\n"); + } } if ($context eq 'course') { if ($env{'form.showrole'} eq 'st' || $env{'form.showrole'} eq 'Any') { @@ -2096,6 +2135,21 @@ END } } +sub print_username_link { + my ($permission,$in) = @_; + my $output; + if (!$permission->{'cusr'}) { + $output = &Apache::loncommon::aboutmewrapper($in->{'username'}, + $in->{'username'}, + $in->{'domain'}); + } else { + $output = '{'username'}','$in->{'domain'}'".')" />'. + $in->{'username'}.''; + } + return $output; +} + sub role_type_names { my %lt = &Apache::lonlocal::texthash ( 'domain' => 'Domain Roles',