--- loncom/interface/loncreateuser.pm	2007/08/31 03:21:27	1.180
+++ loncom/interface/loncreateuser.pm	2007/09/07 19:51:41	1.183
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Create a user
 #
-# $Id: loncreateuser.pm,v 1.180 2007/08/31 03:21:27 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.183 2007/09/07 19:51:41 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -699,12 +699,14 @@ ENDFORMINFO
         if (($instsrch->{'srchterm'} ne '') && ($instsrch->{'srchdomain'} ne '')) {
             $newuser = $instsrch->{'srchterm'}.':'.$instsrch->{'srchdomain'};
         }
-        my (%dirsrch_results,%inst_results);
+        my (%dirsrch_results,%inst_results,$dirsrchres);
         if ($newuser) {
             if (&directorysrch_check($instsrch) eq 'ok') {
-                %dirsrch_results = &Apache::lonnet::inst_directory_query($instsrch);
-                if (ref($dirsrch_results{$newuser}) eq 'HASH') { 
-                    %inst_results = %{$dirsrch_results{$newuser}};
+                ($dirsrchres,%dirsrch_results) = &Apache::lonnet::inst_directory_query($instsrch);
+                if ($dirsrchres eq 'ok') {
+                    if (ref($dirsrch_results{$newuser}) eq 'HASH') { 
+                        %inst_results = %{$dirsrch_results{$newuser}};
+                    }
                 }
             }
         }
@@ -2211,10 +2213,8 @@ sub user_search_result {
     my %allhomes;
     my %inst_matches;
     my %srch_results;
-    my ($response,$currstate,$forcenewuser);
-    $srch->{'srchterm'} =~ s/^\s+//;
-    $srch->{'srchterm'} =~ s/\s+$//;
-
+    my ($response,$currstate,$forcenewuser,$dirsrchres);
+    $srch->{'srchterm'} =~ s/\s+/ /g;
     if ($srch->{'srchby'} !~ /^(uname|lastname|lastfirst)$/) {
         $response = &mt('Invalid search.');
     }
@@ -2227,6 +2227,9 @@ sub user_search_result {
     if ($srch->{'srchterm'} eq '') {
         $response = &mt('You must enter a search term.');
     }
+    if ($srch->{'srchterm'} =~ /^\s+$/) {
+        $response = &mt('Your search term must contain more than just spaces.');
+    }
     if (($srch->{'srchin'} eq 'dom') || ($srch->{'srchin'} eq 'instd')) {
         if (($srch->{'srchdomain'} eq '') || 
 	    ! (&Apache::lonnet::domain($srch->{'srchdomain'}))) {
@@ -2324,9 +2327,18 @@ sub user_search_result {
         } elsif ($srch->{'srchin'} eq 'alc') {
             $currstate = 'query';
         } elsif ($srch->{'srchin'} eq 'instd') {
-            %srch_results = &Apache::lonnet::inst_directory_query($srch);
-            ($currstate,$response,$forcenewuser) = 
-                &build_search_response($srch,%srch_results); 
+            ($dirsrchres,%srch_results) = &Apache::lonnet::inst_directory_query($srch);
+            if ($dirsrchres eq 'ok') {
+                ($currstate,$response,$forcenewuser) = 
+                    &build_search_response($srch,%srch_results);
+            } else {
+                my $showdom = &display_domain_info($srch->{'srchdomain'});
+                $response = '<span class="LC_warning">'.
+                    &mt('Institutional directory search is not available in domain: [_1]',$showdom).
+                    '</span><br />'.
+                    &mt('You may want to search in the LON-CAPA domain instead of the institutional directory.').
+                    '<br /><br />'; 
+            }
         }
     } else {
         if ($srch->{'srchin'} eq 'dom') {
@@ -2388,9 +2400,17 @@ sub user_search_result {
         } elsif ($srch->{'srchin'} eq 'alc') {
             $currstate = 'query';
         } elsif ($srch->{'srchin'} eq 'instd') {
-            %srch_results = &Apache::lonnet::inst_directory_query($srch); 
-            ($currstate,$response,$forcenewuser) = 
-                &build_search_response($srch,%srch_results);
+            ($dirsrchres,%srch_results) = &Apache::lonnet::inst_directory_query($srch); 
+            if ($dirsrchres eq 'ok') {
+                ($currstate,$response,$forcenewuser) = 
+                    &build_search_response($srch,%srch_results);
+            } else {
+                my $showdom = &display_domain_info($srch->{'srchdomain'});                $response = '<span class="LC_warning">'.
+                    &mt('Institutional directory search is not available in domain: [_1]',$showdom).
+                    '</span><br />'.
+                    &mt('You may want to search in the LON-CAPA domain instead of the institutional directory.').
+                    '<br /><br />';
+            }
         }
     }
     return ($currstate,$response,$forcenewuser,\%srch_results);
@@ -2549,7 +2569,8 @@ sub build_search_response {
                 }
             }
             if (!($srch->{'srchby'} eq 'uname' && $srch->{'srchin'} eq 'dom' && $srch->{'srchtype'} eq 'exact' && $srch->{'srchdomain'} eq $env{'request.role.domain'})) {
-                $response .= '<br />'.&mt("<b>To add a new user</b> (you can only create new users in your current role's domain - <span class=\"LC_cusr_emph\">[_1]</span>) ...",$env{'request.role.domain'}).'<ul><li>'.&mt("Set '<span class=\"LC_cusr_emph\">Make new user if no match found</span>' to '<b>Yes</b>'").'</li><li>'.&mt('Provide the proposed username').'</li><li>'.&mt('Search').'</li></ul><br />';
+                my $showdom = &display_domain_info($env{'request.role.domain'}); 
+                $response .= '<br /><br />'.&mt("<b>To add a new user</b> (you can only create new users in your current role's domain - <span class=\"LC_cusr_emph\">[_1]</span>):",$env{'request.role.domain'}).'<ul><li>'.&mt("Set 'Domain/institution to search' to: <span class=\"LC_cusr_emph\">[_1]</span>",$showdom).'<li>'.&mt("Set 'Search criteria' to: <span class=\"LC_cusr_emph\">'username is ...... in selected LON-CAPA domain'").'</span></li><li>'.&mt('Provide the proposed username').'</li><li>'.&mt('Search').'</li></ul><br />';
             }
         }
     }