Diff for /loncom/interface/lonpickuser.pm between versions 1.2 and 1.5

version 1.2, 2009/08/06 20:46:42 version 1.5, 2011/01/05 18:39:38
Line 71  sub handler { Line 71  sub handler {
     # Get parameters from query string      # Get parameters from query string
     &Apache::loncommon::get_unprocessed_cgi      &Apache::loncommon::get_unprocessed_cgi
         ($ENV{'QUERY_STRING'},['srchdom','form','udomelement','unameelement','ulastelement',          ($ENV{'QUERY_STRING'},['srchdom','form','udomelement','unameelement','ulastelement',
                                'ufirstelement','uemailelement','hideudomelement','coursedom']);                                 'ufirstelement','uemailelement','hideudomelement','coursedom','caller']);
     my $js;      my $js;
   
     if (($env{'form.phase'} eq 'get_user_info') ||       if (($env{'form.phase'} eq 'get_user_info') || 
Line 89  function setphase(caller) { Line 89  function setphase(caller) {
 // ]]>  // ]]>
 </script>  </script>
 ENDSP  ENDSP
       } elsif ($env{'form.caller'} eq 'checkusername') {
           $js = <<"ENDCHK";
   <script type="text/javascript">
   // <![CDATA[
   function checkUser() {
       var uname = opener.document.$env{'form.form'}.$env{'form.unameelement'}.value;
       var udom;
       var slct=opener.document.$env{'form.form'}.$env{'form.udomelement'};
       if (slct.options == undefined) {
           udom = opener.document.$env{'form.form'}.$env{'form.udomelement'}.value;
       } else {
           udom = slct.options[slct.selectedIndex].value;
       }
       if (uname != '') {
           document.userpicker.srchterm.value = uname;
           document.userpicker.srchdomain.value = udom;
       }
       document.userpicker.submit();
   }
   // ]]>
   </script>
   ENDCHK
       } elsif ($env{'form.phase'} eq '') {
           $js = <<"ENDSET";
   <script type="text/javascript">
   // <![CDATA[
   function setUserSearch() {
       var uname = opener.document.$env{'form.form'}.$env{'form.unameelement'}.value;
       var udom;
       var slct=opener.document.$env{'form.form'}.$env{'form.udomelement'};
       if (slct.options == undefined) {
           udom = opener.document.$env{'form.form'}.$env{'form.udomelement'}.value;
       } else {
           udom = slct.options[slct.selectedIndex].value;
       }
       if (uname != '') {
           document.userpicker.srchterm.value = uname;
           var seldom = document.userpicker.srchdomain;
           if (seldom.options != undefined) {
               var i;
               for (i=0;i<seldom.length;i++) {
                   if (seldom.options[i].value==udom) { seldom.selectedIndex=i; }
               }
           }
           var selby = document.userpicker.srchby;
           if (selby.options != undefined) {
               var i;
               for (i=0;i<selby.length;i++) {
                   if (selby.options[i].value=="uname") { selby.selectedIndex=i; }
               }
           }
           var seltype = document.userpicker.srchtype;
           if (seltype.options != undefined) {
               var i;
               for (i=0;i<seltype.length;i++) {
                   if (seltype.options[i].value=="exact") { seltype.selectedIndex=i; }
               }
           }
           var selin = document.userpicker.srchin;
           if (selin.options != undefined) {
               var i;
               for (i=0;i<selin.length;i++) {
                   if (selin.options[i].value=="dom") { selin.selectedIndex=i; }
               }
           }
       }
       return;
   }
   // ]]>
   </script>
   ENDSET
     }      }
     my $startargs = {'no_nav_bar'  => 1, };      my $startargs = {'no_nav_bar'  => 1, };
     if ($env{'form.phase'} eq 'store_newuser') {      if ($env{'form.phase'} eq 'store_newuser') {
Line 98  ENDSP Line 169  ENDSP
         my $newlast = $env{'form.newlast'};          my $newlast = $env{'form.newlast'};
         my $newemail = $env{'form.newemail'};          my $newemail = $env{'form.newemail'};
         $startargs->{'add_entries'} = { onload => 'javascript:gochoose('."'$uname','$udom','$newfirst','$newlast','$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',      $r->print(&Apache::loncommon::start_page('Selecting course personnel',
                                              $js,$startargs));                                               $js,$startargs));
       if ($env{'form.caller'} eq 'checkusername') {
           $r->print(&check_user_form().
                     &Apache::loncommon::end_page());
           return OK;
       }
     my %toset = (      my %toset = (
                   uname   => 'unameelement',                    uname   => 'unameelement',
                   udom    => 'udomelement',                    udom    => 'udomelement',
Line 123  ENDSP Line 203  ENDSP
         ($srch{'srchtype'} eq 'exact') &&          ($srch{'srchtype'} eq 'exact') &&
         ($srch{'srchdomain'} ne '') &&          ($srch{'srchdomain'} ne '') &&
         ($srch{'srchterm'} ne '')) {          ($srch{'srchterm'} ne '')) {
           my (%curr_rules,%got_rules);
         my ($rules,$ruleorder) =          my ($rules,$ruleorder) =
             &Apache::lonnet::inst_userrules($srch{'srchdomain'},'username');              &Apache::lonnet::inst_userrules($srch{'srchdomain'},'username');
         $usertype = &Apache::lonuserutils::check_usertype($srch{'srchdomain'},          $usertype = &Apache::lonuserutils::check_usertype($srch{'srchdomain'},
                                                           $srch{'srchterm'},$rules);                                                            $srch{'srchterm'},$rules,
                                                             \%curr_rules,\%got_rules);
     }      }
   
     my $dom = $env{'form.coursedom'};      my $dom = $env{'form.coursedom'};
Line 135  ENDSP Line 217  ENDSP
         &Apache::lonuserutils::can_create_user($dom,$context,$usertype);          &Apache::lonuserutils::can_create_user($dom,$context,$usertype);
     my $userpicker =      my $userpicker =
        &Apache::loncommon::user_picker($dom,\%srch,$forcenewuser,         &Apache::loncommon::user_picker($dom,\%srch,$forcenewuser,
                                        'document.userpicker',$cancreate,$usertype);                                         'document.userpicker',$cancreate,
                                          $usertype,$context);
     my $srchbutton = &mt('Search');      my $srchbutton = &mt('Search');
   
     my $headertext = &mt('Search for a user to add to course personnel');        my $headertext = &mt('Search for a user to add to course personnel');  
     my $opener_elems = '<input type="hidden" name="form" value="'.      my $opener_elems = '<input type="hidden" name="form" value="'.
                        $env{'form.form'}.'" />'."\n".                         $env{'form.form'}.'" />'."\n".
                        '<input type="hidden" name="coursedom" value="'.                         '<input type="hidden" name="coursedom" value="'.
                        $env{'form.coursedom'}.'" />'."\n";                         $env{'form.coursedom'}.'" />'."\n".
     foreach my $item (keys(%toset)) {                         &set_opener_elems();
         if (exists($env{'form.'.$toset{$item}})) {  
             $opener_elems .= '<input type="hidden" name="'.$toset{$item}.'" value="'.$env{'form.'.$toset{$item}}.'" />'."\n";  
         }  
     }  
     unless ($env{'form.phase'} eq 'define_newuser') {       unless ($env{'form.phase'} eq 'define_newuser') { 
         $r->print(<<"ENDBLOCK");          $r->print(<<"ENDBLOCK");
 <h3>$headertext</h3>  <h3>$headertext</h3>
Line 159  $userpicker Line 238  $userpicker
 </form>  </form>
 ENDBLOCK  ENDBLOCK
     }      }
     if ($env{'form.phase'} eq 'get_user_info') {      if (($env{'form.phase'} eq 'get_user_info') && ($env{'form.srchterm'} ne '')) {
         $r->print('<hr /><div>'.&mt('Searching ...').'</div>');          $r->print('<hr /><div>'.&mt('Searching ...').'</div>');
         $r->rflush();          $r->rflush();
         my ($currstate,$response,$forcenewuser,$results) =           my ($currstate,$response,$forcenewuser,$results) = 
Line 189  $opener_elems.' Line 268  $opener_elems.'
 </form></div>');  </form></div>');
                     } else {                      } else {
                         my $helplink = 'javascript:helpMenu('."'display'".')';                          my $helplink = 'javascript:helpMenu('."'display'".')';
                         my %usertypetext = (                          my %usertypetext = 
                             official   => 'institutional',                              &Apache::lonlocal::texthash(
                             unofficial => 'non-institutional',                                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('<div class="LC_warning">'.                          $r->print('<div class="LC_warning">'.
                                   &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.','<a href="'.$helplink.'">','</a>').'</div>');                                    &mt('Please contact the [_1]helpdesk[_2] for assistance.','<a href="'.$helplink.'">','</a>').'</div>');
   
                     }                      }
Line 265  function gochoose(uname,udom,ufirst,ulas Line 345  function gochoose(uname,udom,ufirst,ulas
 ENDGC  ENDGC
 }  }
   
   sub check_user_form {
       return '
   <form action="/adm/pickuser" method="post" name="userpicker">
   <input type="hidden" name="form" value="'.$env{'form.form'}.'" />
   <input type="hidden" name="coursedom" value="'.$env{'form.coursedom'}.'" />'."\n".
                    &set_opener_elems().'
   <input type="hidden" name="srchby" value="uname" />
   <input type="hidden" name="srchin" value="dom" />
   <input type="hidden" name="srchterm" value="" />
   <input type="hidden" name="srchdomain" value="" />
   <input type="hidden" name="srchtype" value="exact" />
   <input type="hidden" name="phase" value="get_user_info" />
   </form>'."\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 .= '<input type="hidden" name="'.$toset{$item}.'" value="'.$env{'form.'.$toset{$item}}.'" />'."\n";
           }
       }
       return $output;
   }
   
 1;  1;

Removed from v.1.2  
changed lines
  Added in v.1.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>