Diff for /loncom/interface/loncommon.pm between versions 1.555 and 1.558

version 1.555, 2007/07/28 21:38:29 version 1.558, 2007/08/02 01:07:00
Line 334  sub studentbrowser_javascript { Line 334  sub studentbrowser_javascript {
    return (<<'ENDSTDBRW');     return (<<'ENDSTDBRW');
 <script type="text/javascript" language="Javascript" >  <script type="text/javascript" language="Javascript" >
     var stdeditbrowser;      var stdeditbrowser;
     function openstdbrowser(formname,uname,udom,roleflag) {      function openstdbrowser(formname,uname,udom,roleflag,ignorefilter) {
         var url = '/adm/pickstudent?';          var url = '/adm/pickstudent?';
         var filter;          var filter;
         eval('filter=document.'+formname+'.'+uname+'.value;');   if (!ignorefilter) {
       eval('filter=document.'+formname+'.'+uname+'.value;');
    }
         if (filter != null) {          if (filter != null) {
            if (filter != '') {             if (filter != '') {
                url += 'filter='+filter+'&';                 url += 'filter='+filter+'&';
Line 365  sub selectstudent_link { Line 367  sub selectstudent_link {
    return '';     return '';
        }         }
        return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele.         return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele.
         '","'.$udomele.'");'."'>".&mt('Select User')."</a>";          '","'.$udomele.'","","1");'."'>".&mt('Select User')."</a>";
    }     }
    if ($env{'request.role'}=~/^(au|dc|su)/) {     if ($env{'request.role'}=~/^(au|dc|su)/) {
        return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele.         return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele.
Line 5555  sub user_picker { Line 5557  sub user_picker {
         }          }
         $srchterm = $srch->{'srchterm'};          $srchterm = $srch->{'srchterm'};
     }      }
       use Data::Dumper;
       &Apache::lonnet::logthis(&Dumper($srch));
     my %lt=&Apache::lonlocal::texthash(      my %lt=&Apache::lonlocal::texthash(
                     'usr'  => 'Search for',                      'usr'       => 'Search for',
                     'or'   => 'or',                      'or'        => 'or',
                     'in'   => 'in',                      'doma'      => 'domain',
                     'doma' => 'domain',                      'uname'     => 'username',
                     'uname' => 'username',                      'lastname'  => 'last name',
                     'lastname' => 'last name',  
                     'lastfirst' => 'last name, first name',                      'lastfirst' => 'last name, first name',
                     'crs' => 'this course',                      'crs'       => 'in this course',
                     'dom' => 'this domain',                       'dom'       => 'in this domain', 
                     'alc' => 'all LON-CAPA',                      'alc'       => 'all LON-CAPA',
                     'instd' => 'institutional directory',                      'instd'     => 'in institutional directory',
                     'exact' => 'as exact match to',                      'exact'     => 'is',
                     'contains' => 'contained in',                      'contains'  => 'contains',
                                        );                                         );
     my $domform = &select_dom_form($currdom,'srchdomain',1);      my $domform = &select_dom_form($currdom,'srchdomain',1);
   
     my $srchinsel = ' <select name="srchin">';      my $srchin;
   
     my @srchins = ('crs','dom','alc','instd');      my @srchins = ('crs','dom','alc','instd');
   
Line 5583  sub user_picker { Line 5585  sub user_picker {
         #       has been completed.          #       has been completed.
         next if ($option eq 'alc');          next if ($option eq 'alc');
         next if ($option eq 'crs' && !$env{'request.course.id'});          next if ($option eq 'crs' && !$env{'request.course.id'});
         if ($curr_selected{'srchin'} eq $option) {          my $checked =($curr_selected{'srchin'} eq $option) ?'checked="checked"'
             $srchinsel .= '                                                      :'';
    <option value="'.$option.'" selected="selected">'.$lt{$option}.'</option>';   my $extra = ($option eq 'dom') ? $domform
         } else {                                 : '';
             $srchinsel .= '   $srchin.=<<ROW
    <option value="'.$option.'">'.$lt{$option}.'</option>';   <tr>
         }     <td>
        <label><input type="radio" name="srchin" value="$option" $checked /> $lt{$option}</label> $extra
      </td>
   </tr>
   ROW
     }      }
     $srchinsel .= "\n  </select>\n";  
   
     my $srchbysel =  ' <select name="srchby">';      my $srchbysel =  ' <select name="srchby">';
     foreach my $option ('uname','lastname','lastfirst') {      foreach my $option ('uname','lastname','lastfirst') {
Line 5617  sub user_picker { Line 5622  sub user_picker {
     }      }
     $srchtypesel .= "\n  </select>\n";      $srchtypesel .= "\n  </select>\n";
   
       my ($newuserscript,$new_user_create);
   
       if ($forcenewuser) {
    $new_user_create = '<p> <input type="submit" name="forcenew" value="'.&HTML::Entities::encode(&mt('Make new user "[_1]"',$srchterm),'<>&"').'" onclick="javascript:setSearch(\'1\');" /> </p>';
           $newuserscript = <<"ENDSCRIPT";
   
   function setSearch(createnew) {
       if (createnew == 1) {
           for (var i=0; i<document.crtuser.srchby.length; i++) {
               if (document.crtuser.srchby.options[i].value == 'uname') {
                   document.crtuser.srchby.selectedIndex = i;
               }
           }
           for (var i=0; i<document.crtuser.srchin.length; i++) {
               if ( document.crtuser.srchin[i].value == 'dom') {
    document.crtuser.srchin[i].checked = 1;
               }
           }
           for (var i=0; i<document.crtuser.srchtype.length; i++) {
               if (document.crtuser.srchtype.options[i].value == 'exact') {
                   document.crtuser.srchtype.selectedIndex = i;
               }
           }
           for (var i=0; i<document.crtuser.srchdomain.length; i++) {
               if (document.crtuser.srchdomain.options[i].value == '$env{'request.role.domain'}') {
                   document.crtuser.srchdomain.selectedIndex = i;
               }
           }
       }
   }
   ENDSCRIPT
   
       }
   
     my $output = <<"END_BLOCK";      my $output = <<"END_BLOCK";
   <script type="text/javascript">
   function validateEntry() {
   
       var checkok = 1;
       var srchin;
       for (var i=0; i<document.crtuser.srchin.length; i++) {
    if ( document.crtuser.srchin[i].checked ) {
       srchin = document.crtuser.srchin[i].value;
    }
       }
   
       var srchtype = document.crtuser.srchtype.options[document.crtuser.srchtype.selectedIndex].value;
       var srchby = document.crtuser.srchby.options[document.crtuser.srchby.selectedIndex].value;
       var srchdomain = document.crtuser.srchdomain.options[document.crtuser.srchdomain.selectedIndex].value;
       var srchterm =  document.crtuser.srchterm.value;
       var msg = "";
   
       if (srchterm == "") {
           checkok = 0;
           msg += "You must include some text to search for.\\n";
       }
   
       if (srchtype== 'contains') {
           if (srchterm.length < 3) {
               checkok = 0;
               msg += "The text you are searching for must contain at least three characters when using a 'contained in' type search.\\n";
           }
       }
       if (srchin == 'instd') {
           if (srchdomain == '') {
               checkok = 0;
               msg += "You must choose a domain when using an institutional directory search.\\n";
           }
       }
       if (srchin == 'dom') {
           if (srchdomain == '') {
               checkok = 0;
               msg += "You must choose a domain when using a domain search.\\n";
           }
       }
       if (srchby == 'lastfirst') {
           if (srchterm.indexOf(",") == -1) {
               checkok = 0;
               msg += "When using searching by last,first you must include a comma as separator between last name and first name.\\n";
           }
           if (srchterm.indexOf(",") == srchterm.length -1) {
               checkok = 0;
               msg += "When searching by last,first you must include at least one character in the first name.\\n";
           }
       }
       if (checkok == 0) {
           alert("The following need to be corrected before the search can be run:\\n"+msg);
           return;
       }
       if (checkok == 1) {
           document.crtuser.submit();
       }
   }
   
   $newuserscript
   
   </script>
   
   $new_user_create
   
 <table>  <table>
 <tr>   <tr>
  <td align="right">$lt{'usr'}:</td><td><input type="text" size="15" name="srchterm" value="$srchterm" /></td>    <td> $srchbysel
  <td>         $srchtypesel 
 $srchtypesel         <input type="text" size="15" name="srchterm" value="$srchterm" />
  </td>    </td>
  <td>   </tr>
 $srchbysel  $srchin
  </td>  
 </tr>  
 <tr>  
  <td align="right">$lt{'in'}:</td>  
  <td colspan="2">  
 $srchinsel  
  </td>  
 </tr>  
 <tr>  
  <td align="right">$lt{'doma'}:</td><td colspan="2">$domform</td>  
 </tr>  
 </table>  </table>
 <br />  <br />
 END_BLOCK  END_BLOCK
     if ($forcenewuser) {  
         $output .= '<span class="LC_nobreak">'.&mt('Make new user if no match found: ').'<input type="radio" name="forcenew" value="1" onclick="javascript:setSearch()" />'.&mt('Yes').'&nbsp;&nbsp;<input type="radio" name="forcenew" value="0" checked="checked" />'.&mt('No').'</span><br />';  
     }  
     return $output;      return $output;
 }  }
   
   
   
 =pod  =pod
   
 =back  =back

Removed from v.1.555  
changed lines
  Added in v.1.558


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