Diff for /loncom/interface/lonpickcourse.pm between versions 1.15 and 1.19

version 1.15, 2004/05/07 17:53:01 version 1.19, 2004/11/23 18:03:04
Line 52  ENDDOCUMENT Line 52  ENDDOCUMENT
     &Apache::loncommon::get_unprocessed_cgi      &Apache::loncommon::get_unprocessed_cgi
         ($ENV{'QUERY_STRING'},['domainfilter','descriptfilter',          ($ENV{'QUERY_STRING'},['domainfilter','descriptfilter',
        'sincefilter','form','cnumelement',         'sincefilter','form','cnumelement',
        'cdomelement','cnameelement']);         'cdomelement','cnameelement','roleelement',
                                  'pickedcourse']);
 # domain filter and selection  # domain filter and selection
     my $domainfilter=$ENV{'form.domainfilter'};      my $domainfilter=$ENV{'form.domainfilter'};
     $domainfilter=~s/\W//g;      $domainfilter=~s/\W//g;
Line 62  ENDDOCUMENT Line 63  ENDDOCUMENT
 # description filter  # description filter
     my $descriptfilter=$ENV{'form.descriptfilter'};      my $descriptfilter=$ENV{'form.descriptfilter'};
     unless ($descriptfilter) { $descriptfilter=''; }      unless ($descriptfilter) { $descriptfilter=''; }
     my $listdescript=$descriptfilter;      my $listdescript=&HTML::Entities::encode($descriptfilter,'<>&"');
     $listdescript=~s/\"/\&quot\;/g;  
 # last course activity filter and selection  # last course activity filter and selection
     my $sincefilter=$ENV{'form.sincefilter'};      my $sincefilter=$ENV{'form.sincefilter'};
     $sincefilter=~s/[^\d-]//g;      $sincefilter=~s/[^\d-]//g;
Line 79  ENDDOCUMENT Line 79  ENDDOCUMENT
                       'select_form_order' =>                        'select_form_order' =>
                       ['-1','86400','604800','2592000','7776000',                        ['-1','86400','604800','2592000','7776000',
       '15552000','31104000']));        '15552000','31104000']));
          # if called from loncreateuser, report sections, then close
     $r->print(&Apache::loncommon::bodytag("Selecting a Course"));      my ($loaditem,$seclist);
       my $num_sections = 0;
       my @sections = ();
       if ($ENV{'form.form'} eq 'cu' && $ENV{'form.pickedcourse'}) {
           $loaditem = 'onLoad="setSections()"';
           my ($cdom,$cnum) = split/_/,$ENV{'form.pickedcourse'};
           my %sections_count = ();
           $num_sections = &Apache::loncommon::get_sections($cdom,$cnum,\%sections_count);
           my @sections = ();
           if ($num_sections > 0) {
               @sections = (sort {$a <=> $b} keys %sections_count);
               $seclist = join('","',@sections);
           }
       }
       $r->print(&Apache::loncommon::bodytag("Selecting a Course",undef,$loaditem));
     my %lt=&Apache::lonlocal::texthash(      my %lt=&Apache::lonlocal::texthash(
        'cac' => 'Course Activity',         'cac' => 'Course Activity',
        'cde' => 'Course Description',         'cde' => 'Course Description',
Line 91  ENDDOCUMENT Line 105  ENDDOCUMENT
  $name_input ='<input type="hidden" name="cnameelement" value="'.   $name_input ='<input type="hidden" name="cnameelement" value="'.
     $ENV{'form.cnameelement'}.'" />';      $ENV{'form.cnameelement'}.'" />';
     }      }
       my $submitopener = '';
       my $autosubmit = '';
       my $roleelement = '';
       my $lastaction = 'self.close()';
       if ($ENV{'form.form'} eq 'cu') {
           $lastaction = 'document.courselist.pickedcourse.value = cdom+"_"+cname;'."\n".
                         'document.courselist.submit();';
       }
       my $roledom = $ENV{'form.roleelement'};
       if ($roledom) {
           $roleelement = '<input type="hidden" name="roleelement" value="'.$roledom.'" />';
           $submitopener = &Apache::lonroles::processpick($roledom);
           $autosubmit = 'process_pick("'.$roledom.'")';
       }
     $r->print(<<ENDSCRIPT);      $r->print(<<ENDSCRIPT);
 <script>  <script>
 function gochoose(cname,cdom,cdesc) {  function gochoose(cname,cdom,cdesc) {
     $name_code      $name_code
     opener.document.$ENV{"form.form"}.$ENV{'form.cnumelement'}.value=cname;      var openerForm = "$ENV{'form.form'}";
     var slct=opener.document.$ENV{'form.form'}.$ENV{'form.cdomelement'};      opener.document.$ENV{'form.form'}.$ENV{'form.cnumelement'}.value=cname;
     var i;      if (openerForm == 'cu' || openerForm == 'rolechoice') {
     for (i=0;i<slct.length;i++) {           opener.document.$ENV{'form.form'}.$ENV{'form.cdomelement'}.value=cdom;
         if (slct.options[i].value==cdom) { slct.selectedIndex=i; }      }
       else {
           var slct=opener.document.$ENV{'form.form'}.$ENV{'form.cdomelement'};
           var i;
           for (i=0;i<slct.length;i++) {
               if (slct.options[i].value==cdom) { slct.selectedIndex=i; }
           }
       }
       $autosubmit
       $lastaction
   }
   
   function setSections() {
       var numSections = $num_sections
       var sectionsArray = new Array("$seclist")
       opener.document.$ENV{"form.form"}.currsec.length = 0
       if (numSections == 0) {
           opener.document.$ENV{"form.form"}.currsec.options[0] = new Option('No existing sections','-1',false,false)
       }
       else {
           for (var i=0; i<numSections; i++) {
               opener.document.$ENV{"form.form"}.currsec.options[i] = new Option(sectionsArray[i],sectionsArray[i],false,false)
           }
           opener.document.$ENV{"form.form"}.currsec.multiple=true
           if (numSections < 3) {
               opener.document.$ENV{"form.form"}.currsec.size=numSections;
           }
           else {
               opener.document.$ENV{"form.form"}.currsec.size=3;
           }
           opener.document.$ENV{"form.form"}.currsec.options[0].selected = false
     }      }
     self.close();      self.close()
 }  }
 </script>  </script>
   $submitopener
 <form method="post">  <form method="post">
 <input type="hidden" name="cnumelement" value="$ENV{'form.cnumelement'}" />  <input type="hidden" name="cnumelement" value="$ENV{'form.cnumelement'}" />
 <input type="hidden" name="cdomelement" value="$ENV{'form.cdomelement'}" />  <input type="hidden" name="cdomelement" value="$ENV{'form.cdomelement'}" />
 $name_input  $name_input
 <input type="hidden" name="form" value="$ENV{'form.form'}" />  <input type="hidden" name="form" value="$ENV{'form.form'}" />
   $roleelement
 $lt{'cac'}: $sincefilterform  $lt{'cac'}: $sincefilterform
 <br />  <br />
 $lt{'cdo'}: $domainselectform  $lt{'cdo'}: $domainselectform
Line 129  ENDSCRIPT Line 188  ENDSCRIPT
  my %courses=   my %courses=
     &Apache::lonnet::courseiddump      &Apache::lonnet::courseiddump
     ($domainfilter,$descriptfilter,$timefilter);      ($domainfilter,$descriptfilter,$timefilter);
  $r->print('<form>');   $r->print('<form name="courselist">');
  my %by_descrip;   my %by_descrip;
  foreach my $course (keys %courses) {   foreach my $course (keys %courses) {
     $by_descrip{lc($courses{$course})}=$course;              my $descr;
               if ($courses{$course} =~ m/^([^:]*):/) {
                   $descr = &Apache::lonnet::unescape($1);
               } else {
                   $descr = &Apache::lonnet::unescape($courses{$course});
               }
               $by_descrip{lc($descr)}=$course;
  }   }
  foreach my $description (sort(keys(%by_descrip))) {   foreach my $description (sort(keys(%by_descrip))) {
     my $course=$by_descrip{$description};      my $course=$by_descrip{$description};
     my $cleandesc=&HTML::Entities::encode($courses{$course},'<>&"');      my $cleandesc=&HTML::Entities::encode($description,'<>&"');
     $cleandesc=~s/'/\\'/g;      $cleandesc=~s/'/\\'/g;
     my ($cdom,$cnum)=split(/\_/,$course);      my ($cdom,$cnum)=split(/\_/,$course);
     $r->print('<input type="button" value="Select" onClick="gochoose('.      $r->print('<input type="button" value="Select" onClick="gochoose('.
   "'".$cnum."','".$cdom."','".$cleandesc."')".'" /> '.$courses{$course}.' ('.    "'".$cnum."','".$cdom."','".$cleandesc."')".'" /> '.$description.' ('.
   ($Apache::lonnet::domaindescription{$cdom}?    ($Apache::lonnet::domaindescription{$cdom}?
                    $Apache::lonnet::domaindescription{$cdom}:$cdom).                     $Apache::lonnet::domaindescription{$cdom}:$cdom).
                  ")<br />\n");                   ")<br />\n");
  }   }
  if (!%courses) { $r->print(&mt('None found')); }   if (!%courses) { $r->print(&mt('None found')); }
         $r->print('</form>');          $r->print('<input type="hidden" name="form" value="'.$ENV{'form.form'}.'" />'."\n".
                      '<input type="hidden" name="pickedcourse" value="" />'."\n".
                      '<input type="hidden" name="cnumelement" value="'.$ENV{'form.cnumelement'}.'" />'."\n".
                      '<input type="hidden" name="cdomelement" value="'.$ENV{'form.cdomelement'}.'" />'."\n".
                      '</form>');
     }      }
     $r->print('</body></html>');      $r->print('</body></html>');
     return OK;      return OK;
 }   }
   
 1;  1;
 __END__  __END__

Removed from v.1.15  
changed lines
  Added in v.1.19


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