--- loncom/interface/loncreateuser.pm	2012/12/20 16:22:59	1.368
+++ loncom/interface/loncreateuser.pm	2013/02/06 16:10:27	1.373
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Create a user
 #
-# $Id: loncreateuser.pm,v 1.368 2012/12/20 16:22:59 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.373 2013/02/06 16:10:27 bisitz Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1672,7 +1672,7 @@ sub display_existing_roles {
                 }
             }
             if ($area=~m{^/($match_domain)/($match_courseid)/(\w+)}) {
-                $carea.='<br />Section: '.$3;
+                $carea.='<br />'.&mt('Section: [_1]',$3);
                 $sortkey.="\0$3";
                 if (!$allowed) {
                     if ($env{'request.course.sec'} eq $3) {
@@ -3062,7 +3062,7 @@ sub display_userinfo {
                    ref($newsetting) eq 'HASH' &&
                    ref($newsettingtext) eq 'HASH');
     my %lt=&Apache::lonlocal::texthash(
-         'ui'             => 'User Information (unchanged)',
+         'ui'             => 'User Information',
          'uic'            => 'User Information Changed',
          'firstname'      => 'First Name',
          'middlename'     => 'Middle Name',
@@ -3083,10 +3083,8 @@ sub display_userinfo {
          'prvs'           => 'Previous Value:',
          'chto'           => 'Changed To:'
     );
-    my $title = $lt{'ui'}; 
     if ($changed) {
-        $title = $lt{'uic'};
-        $r->print('<h4>'.$title.'</h4>'.
+        $r->print('<h3>'.$lt{'uic'}.'</h3>'.
                 &Apache::loncommon::start_data_table().
                 &Apache::loncommon::start_data_table_header_row());
         $r->print("<th>&nbsp;</th>\n");
@@ -3145,6 +3143,9 @@ sub display_userinfo {
             }
         }
         $r->print(&Apache::loncommon::end_data_table().'<br />');
+    } else {
+        $r->print('<h3>'.$lt{'ui'}.'</h3>'.
+                  '<p>'.&mt('No changes made to user information').'</p>');
     }
     return;
 }
@@ -3343,8 +3344,13 @@ sub update_roles {
 						$env{'form.ccuname'},
 						$scope,$role,'','',$context);
                 $r->print(&Apache::lonhtmlcommon::confirm_success(
-                            &mt('Revoking [_1] in [_2]', &Apache::lonnet::plaintext($role), '"'.&cid_to_cname($scope).'"<br />'),
-                            $result ne "ok"));
+                            &mt('Revoking [_1] in [_2]',
+                                &Apache::lonnet::plaintext($role),
+                                &Apache::loncommon::show_role_extent($scope,$context,$role)),
+                                $result ne "ok").'<br />');
+                if ($result ne "ok") {
+                    $r->print(&mt('Error: [_1]',$result).'<br />');
+                }
 		if ($role eq 'st') {
 		    my $result = 
                         &Apache::lonuserutils::classlist_drop($scope,
@@ -3358,10 +3364,15 @@ sub update_roles {
 	    }
 	    if ($key=~m{^form\.rev\:([^_]+)_cr\.cr/($match_domain)/($match_username)/(\w+)$}s) {
 # Revoke custom role
+                my $result = &Apache::lonnet::revokecustomrole(
+                    $env{'form.ccdomain'},$env{'form.ccuname'},$1,$2,$3,$4,'','',$context);
                 $r->print(&Apache::lonhtmlcommon::confirm_success(
-                            &mt('Revoking custom role [_1] by [_2]:[_3] in [_4]',$4,$3,$2,'"'.&cid_to_cname($1).'"<br />'),
-                            &Apache::lonnet::revokecustomrole($env{'form.ccdomain'},$env{'form.ccuname'},$1,$2,$3,$4,'','',$context) ne 'ok'));
-
+                            &mt('Revoking custom role [_1] by [_2] in [_3]',
+                                $4,$3.':'.$2,&Apache::loncommon::show_role_extent($1,$context,'cr')),
+                            $result ne 'ok').'<br />');
+                if ($result ne "ok") {
+                    $r->print(&mt('Error: [_1]',$result).'<br />');
+                }
                 if (!grep(/^cr$/,@rolechanges)) {
                     push(@rolechanges,'cr');
                 }
@@ -3377,14 +3388,19 @@ sub update_roles {
                                                 $context);
                 $r->print(&Apache::lonhtmlcommon::confirm_success(
                             &mt('Deleting [_1] in [_2]',
-                            &Apache::lonnet::plaintext($role),'"'.&cid_to_cname($scope).'"<br />'),$result ne 'ok'));
+                                &Apache::lonnet::plaintext($role),
+                                &Apache::loncommon::show_role_extent($scope,$context,$role)),
+                            $result ne 'ok').'<br />');
+                if ($result ne "ok") {
+                    $r->print(&mt('Error: [_1]',$result).'<br />');
+                }
 
 		if ($role eq 'st') {
 		    my $result = 
                         &Apache::lonuserutils::classlist_drop($scope,
                             $env{'form.ccuname'},$env{'form.ccdomain'},
 			    $now);
-		    $r->print($result);
+		    $r->print(&Apache::lonhtmlcommon::confirm_success($result));
 		}
                 if (!grep(/^\Q$role\E$/,@rolechanges)) {
                     push(@rolechanges,$role);
@@ -3393,11 +3409,16 @@ sub update_roles {
 	    if ($key=~m{^form\.del\:([^_]+)_cr\.cr/($match_domain)/($match_username)/(\w+)$}) {
                 my ($url,$rdom,$rnam,$rolename) = ($1,$2,$3,$4);
 # Delete custom role
-                $r->print(&confirm_success(&mt('Deleting custom role [_1] by [_2] in [_3]',
-                      $rolename,$rnam.':'.$rdom,'"'.&cid_to_cname($1).'"').'<br />'));
-                      &Apache::lonnet::assigncustomrole($env{'form.ccdomain'},
-                         $env{'form.ccuname'},$url,$rdom,$rnam,$rolename,$now,
-                         0,1,$context);
+                my $result =
+                    &Apache::lonnet::assigncustomrole($env{'form.ccdomain'},
+                        $env{'form.ccuname'},$url,$rdom,$rnam,$rolename,$now,
+                        0,1,$context);
+                $r->print(&Apache::lonhtmlcommon::confirm_success(&mt('Deleting custom role [_1] by [_2] in [_3]',
+                      $rolename,$rnam.':'.$rdom,&Apache::loncommon::show_role_extent($1,$context,'cr')),
+                      $result ne "ok").'<br />');
+                if ($result ne "ok") {
+                    $r->print(&mt('Error: [_1]',$result).'<br />');
+                }
 
                 if (!grep(/^cr$/,@rolechanges)) {
                     push(@rolechanges,'cr');
@@ -3419,11 +3440,13 @@ sub update_roles {
                             if ($result eq 'refused' && $logmsg) {
                                 $output = $logmsg;
                             } else { 
-                                $output = "Error: $result\n";
+                                $output = &mt('Error: [_1]',$result)."\n";
                             }
                         } else {
-                            $output = &Apache::lonhtmlcommon::confirm_success(&mt('Assigning [_1] in [_2] starting [_3]',&Apache::lonnet::plaintext($role),
-                                        '"'.&cid_to_cname($url).'"',&Apache::lonlocal::locallocaltime($now))).'<br />'.$logmsg.'<br />';
+                            $output = &Apache::lonhtmlcommon::confirm_success(&mt('Assigning [_1] in [_2] starting [_3]',
+                                        &Apache::lonnet::plaintext($role),
+                                        &Apache::loncommon::show_role_extent($url,$context,'st'),
+                                        &Apache::lonlocal::locallocaltime($now))).'<br />'.$logmsg.'<br />';
                         }
                     }
                 } else {
@@ -3431,8 +3454,12 @@ sub update_roles {
                                $env{'form.ccuname'},$url,$role,0,$now,'','',
                                $context);
                         $output = &Apache::lonhtmlcommon::confirm_success(&mt('Re-enabling [_1] in [_2]',
-                                        &Apache::lonnet::plaintext($role),'"'.&cid_to_cname($url).'"').'<br />',$result ne "ok");
-		}
+                                        &Apache::lonnet::plaintext($role),
+                                        &Apache::loncommon::show_role_extent($url,$context,$role)),$result ne "ok").'<br />';
+                    if ($result ne "ok") {
+                        $output .= &mt('Error: [_1]',$result).'<br />';
+                    }
+                }
                 $r->print($output);
                 if (!grep(/^\Q$role\E$/,@rolechanges)) {
                     push(@rolechanges,$role);
@@ -3444,8 +3471,13 @@ sub update_roles {
                 my $result = &Apache::lonnet::assigncustomrole(
                                $env{'form.ccdomain'}, $env{'form.ccuname'},
                                $url,$rdom,$rnam,$rolename,0,$now,undef,$context);
-                $r->print(&Apache::lonhtmlcommon::confirm_success(&mt('Re-enabling custom role [_1] by [_2] in [_3]',
-                        $rolename,$rnam.':'.$rdom,'"'.&cid_to_cname($1).'"').'<br />'),$result ne "ok");
+                $r->print(&Apache::lonhtmlcommon::confirm_success(
+                    &mt('Re-enabling custom role [_1] by [_2] in [_3]',
+                        $rolename,$rnam.':'.$rdom,&Apache::loncommon::show_role_extent($1,$context,'cr')),
+                    $result ne "ok").'<br />');
+                if ($result ne "ok") {
+                    $r->print(&mt('Error: [_1]',$result).'<br />');
+                }
                 if (!grep(/^cr$/,@rolechanges)) {
                     push(@rolechanges,'cr');
                 }
@@ -3585,7 +3617,7 @@ sub update_roles {
 # Flush the course logs so reverse user roles immediately updated
     $r->register_cleanup(\&Apache::lonnet::flushcourselogs);
     if (@rolechanges == 0) {
-        $r->print(&mt('No roles to modify'));
+        $r->print('<p>'.&mt('No roles to modify').'</p>');
     }
     return @rolechanges;
 }
@@ -4576,7 +4608,8 @@ function updateCols(caller) {
         }
     }
     if (caller == 'showrole') {
-        if (document.studentform.showrole.options[document.studentform.showrole.selectedIndex].value == 'Any') {
+        if ((document.studentform.showrole.options[document.studentform.showrole.selectedIndex].value == 'Any') ||
+            (document.studentform.showrole.options[document.studentform.showrole.selectedIndex].value == 'cr')) {
             document.getElementById('showcolrole').checked = true;
             document.getElementById('showcolrole').disabled = '';
         } else {
@@ -4826,6 +4859,7 @@ sub print_main_menu {
             );
         }
     } elsif ($context eq 'author') {
+        push(@{ $menu[2]->{items} }, #Category: Administration
             {
              linktext => 'Change Log',
              icon => 'document-properties.png',
@@ -4834,6 +4868,7 @@ sub print_main_menu {
              permission => $permission->{'cusr'},
              linktitle => 'View change log.',
             },
+        );
     }
     return Apache::lonhtmlcommon::generate_menu(@menu);
 #               { text => 'View Log-in History',
@@ -6945,12 +6980,7 @@ sub get_selfenroll_titles {
 #--------------------------------- functions for &phase_two and &phase_three
 
 #--------------------------end of functions for &phase_two and &phase_three
-sub cid_to_cname(){
-    my $courseid = shift;
-    $courseid =~ s/^\///;
-    $courseid =~ s/\//_/;
-    return $env{'course.'.$courseid.'.description'};
-}
+
 1;
 __END__