--- loncom/interface/lonpickuser.pm 2009/08/06 20:46:42 1.2 +++ loncom/interface/lonpickuser.pm 2016/09/05 01:46:08 1.6 @@ -1,7 +1,7 @@ # The LearningOnline Network # Search for a user # -# $Id: lonpickuser.pm,v 1.2 2009/08/06 20:46:42 raeburn Exp $ +# $Id: lonpickuser.pm,v 1.6 2016/09/05 01:46:08 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -71,7 +71,7 @@ sub handler { # Get parameters from query string &Apache::loncommon::get_unprocessed_cgi ($ENV{'QUERY_STRING'},['srchdom','form','udomelement','unameelement','ulastelement', - 'ufirstelement','uemailelement','hideudomelement','coursedom']); + 'ufirstelement','uemailelement','hideudomelement','coursedom','caller']); my $js; if (($env{'form.phase'} eq 'get_user_info') || @@ -89,6 +89,77 @@ function setphase(caller) { // ]]> ENDSP + } elsif ($env{'form.caller'} eq 'checkusername') { + $js = <<"ENDCHK"; + +ENDCHK + } elsif ($env{'form.phase'} eq '') { + $js = <<"ENDSET"; + +ENDSET } my $startargs = {'no_nav_bar' => 1, }; if ($env{'form.phase'} eq 'store_newuser') { @@ -98,9 +169,18 @@ ENDSP my $newlast = $env{'form.newlast'}; my $newemail = $env{'form.newemail'}; $startargs->{'add_entries'} = { onload => 'javascript:gochoose('."'$uname','$udom','$newfirst','$newlast','$newemail'".');' }; + } elsif ($env{'form.caller'} eq 'checkusername') { + $startargs->{'add_entries'} = { onload => 'javascript:checkUser();' }; + } elsif ($env{'form.phase'} eq '') { + $startargs->{'add_entries'} = { onload => 'javascript:setUserSearch();' }; } $r->print(&Apache::loncommon::start_page('Selecting course personnel', $js,$startargs)); + if ($env{'form.caller'} eq 'checkusername') { + $r->print(&check_user_form(). + &Apache::loncommon::end_page()); + return OK; + } my %toset = ( uname => 'unameelement', udom => 'udomelement', @@ -123,33 +203,34 @@ ENDSP ($srch{'srchtype'} eq 'exact') && ($srch{'srchdomain'} ne '') && ($srch{'srchterm'} ne '')) { + my (%curr_rules,%got_rules); my ($rules,$ruleorder) = &Apache::lonnet::inst_userrules($srch{'srchdomain'},'username'); $usertype = &Apache::lonuserutils::check_usertype($srch{'srchdomain'}, - $srch{'srchterm'},$rules); + $srch{'srchterm'},$rules, + \%curr_rules,\%got_rules); } my $dom = $env{'form.coursedom'}; my $cancreate = &Apache::lonuserutils::can_create_user($dom,$context,$usertype); - my $userpicker = + my ($userpicker,$cansearch) = &Apache::loncommon::user_picker($dom,\%srch,$forcenewuser, - 'document.userpicker',$cancreate,$usertype); + 'document.userpicker',$cancreate, + $usertype,$context); my $srchbutton = &mt('Search'); my $headertext = &mt('Search for a user to add to course personnel'); my $opener_elems = ''."\n". ''."\n"; - foreach my $item (keys(%toset)) { - if (exists($env{'form.'.$toset{$item}})) { - $opener_elems .= ''."\n"; - } - } + $env{'form.coursedom'}.'" />'."\n". + &set_opener_elems(); unless ($env{'form.phase'} eq 'define_newuser') { - $r->print(<<"ENDBLOCK"); + if ($cansearch) { + + $r->print(<<"ENDBLOCK");

$headertext

$opener_elems @@ -158,8 +239,16 @@ $userpicker
ENDBLOCK + } else { + $r->print(<<"ENDBLOCK"); +
+$opener_elems + +
+ENDBLOCK + } } - if ($env{'form.phase'} eq 'get_user_info') { + if (($env{'form.phase'} eq 'get_user_info') && ($env{'form.srchterm'} ne '')) { $r->print('
'.&mt('Searching ...').'
'); $r->rflush(); my ($currstate,$response,$forcenewuser,$results) = @@ -189,12 +278,13 @@ $opener_elems.' '); } else { my $helplink = 'javascript:helpMenu('."'display'".')'; - my %usertypetext = ( - official => 'institutional', - unofficial => 'non-institutional', + my %usertypetext = + &Apache::lonlocal::texthash( + official => 'You are not authorized to create new institutional users in this domain.', + unofficial => 'You are not authorized to create new non-institutional users in this domain.', ); $r->print('
'. - &mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.").' '. + $usertypetext{$usertype}.' '. &mt('Please contact the [_1]helpdesk[_2] for assistance.','','').'
'); } @@ -265,4 +355,37 @@ function gochoose(uname,udom,ufirst,ulas ENDGC } +sub check_user_form { + return ' +
+ +'."\n". + &set_opener_elems().' + + + + + + +
'."\n"; +} + +sub set_opener_elems { + my %toset = ( + uname => 'unameelement', + udom => 'udomelement', + first => 'ufirstelement', + lastn => 'ulastelement', + email => 'uemailelement', + hidedom => 'hideudomelement', + ); + my $output; + foreach my $item (keys(%toset)) { + if (exists($env{'form.'.$toset{$item}})) { + $output .= ''."\n"; + } + } + return $output; +} + 1;