Diff for /loncom/interface/lonpickcourse.pm between versions 1.79 and 1.83

version 1.79, 2009/05/04 13:24:12 version 1.83, 2009/07/25 23:16:04
Line 51  sub handler { Line 51  sub handler {
         ($ENV{'QUERY_STRING'},['domainfilter','form','cnumelement',          ($ENV{'QUERY_STRING'},['domainfilter','form','cnumelement',
        'cdomelement','cnameelement','roleelement',         'cdomelement','cnameelement','roleelement',
                                'multiple','type','setroles','fixeddom']);                                 'multiple','type','setroles','fixeddom']);
   
     my ($type,$title,$jscript,$multelement,$multiple,$roleelement,      my ($type,$title,$jscript,$multelement,$multiple,$roleelement,
         $lastaction,$autosubmit,$submitopener);          $lastaction,$autosubmit,$submitopener);
   
     # Get course type - Course or Non-standard Course.      # Get course type - Course or Community.
     $type = $env{'form.type'};      $type = $env{'form.type'};
     if (!defined($env{'form.type'})) {      if (!defined($env{'form.type'})) {
         $type = 'Course';          $type = 'Course';
     }      }
     $title = &mt('Selecting a [_1]',$type);      $title = 'Selecting a '.$type;
   
     # Setup for multiple course selections, if flag for multiples set.      # Setup for multiple course selections, if flag for multiples set.
     $multiple = $env{'form.multiple'};      $multiple = $env{'form.multiple'};
     if ($multiple) {      if ($multiple) {
         ($jscript,$multelement) = &multiples_tag();          ($jscript,$multelement) = &multiples_tag();
         $title = &mt('Selecting [_1](s)',lc($type));          $title = 'Selecting '.$type.'(s)';
     }      }
   
     # if called when a DC is selecting a course       # if called when a DC is selecting a course 
Line 423  sub multiples_tag { Line 422  sub multiples_tag {
   
 sub build_filters {  sub build_filters {
     my ($filterlist,$type,$roleelement,$multelement,$filter,$action,      my ($filterlist,$type,$roleelement,$multelement,$filter,$action,
         $numtitlesref) = @_;          $numtitlesref,$caller) = @_;
     my $list;      my $list;
     my $formname;      my $formname;
     my ($fixeddom,$codedom,$jscript);      my ($fixeddom,$codedom,$jscript);
     if (defined($env{'form.form'})) {      if (defined($env{'form.form'})) {
          $formname = $env{'form.form'};          $formname = $env{'form.form'};
       } else {
           $formname = $caller;
     }      }
     my ($domainselectform,$sincefilterform,$ownerdomselectform,$persondomselectform,      my ($domainselectform,$sincefilterform,$ownerdomselectform,$persondomselectform,
         $instcodeform,$typeselectform,$instcodetitle);          $instcodeform,$typeselectform,$instcodetitle);
Line 521  sub build_filters { Line 522  sub build_filters {
              );               );
   
     $typeselectform =  '<select name="type" size="1">'."\n";      $typeselectform =  '<select name="type" size="1">'."\n";
       my $officialjs;
     if ($type eq 'Course') {      if ($type eq 'Course') {
         if ($env{'form.fixeddom'}) {          if ($env{'form.fixeddom'}) {
               $officialjs = 1;
             ($instcodeform,$jscript,$$numtitlesref) =               ($instcodeform,$jscript,$$numtitlesref) = 
                 &instcode_selectors($codedom,'filterpicker');                  &instcode_selectors($codedom,'filterpicker',$officialjs);
         }          }
         if ($instcodeform eq '') {          if ($instcodeform eq '') {
             $instcodeform =               $instcodeform = 
Line 542  sub build_filters { Line 545  sub build_filters {
                        '</script>'."\n";                         '</script>'."\n";
         }          }
     }      }
     foreach my $posstype ('Course','Non-standard Course') {      foreach my $posstype ('Course','Community') {
         $typeselectform.='<option value="'.$posstype.'"'.          $typeselectform.='<option value="'.$posstype.'"'.
             ($posstype eq $type ? ' selected="selected" ' : ''). ">".&mt($posstype)."</option>\n";              ($posstype eq $type ? ' selected="selected" ' : ''). ">".&mt($posstype)."</option>\n";
     }      }
Line 631  $multelement Line 634  $multelement
 }  }
   
 sub instcode_selectors {  sub instcode_selectors {
     my ($codedom,$formname) = @_;      my ($codedom,$formname,$officialjs) = @_;
     my ($output,@codetitles,%cat_titles,%cat_order,%cat_items);      my ($output,@codetitles,%cat_titles,%cat_order,%cat_items);
     my ($jscript,$totcodes,$numtitles,$lasttitle) =      my ($jscript,$totcodes,$numtitles,$lasttitle) =
         &Apache::courseclassifier::instcode_selectors_data($codedom,$formname,          &Apache::courseclassifier::instcode_selectors_data($codedom,$formname,
                            \%cat_items,\@codetitles,\%cat_titles,\%cat_order);                             \%cat_items,\@codetitles,\%cat_titles,\%cat_order,$officialjs);
     if ($numtitles > 0) {      if ($numtitles > 0) {
         $output = &Apache::courseclassifier::build_instcode_selectors($numtitles,          my $unofficial = ' checked="checked" ';
                   $lasttitle,\%cat_items,\@codetitles,\%cat_titles,\%cat_order)."\n".          my $official = '';
                   '<input type="hidden" name="numtitles" value="'.$numtitles.'" />'."\n".          if ($env{'form.official'}) {
                   '<input type="hidden" name="state" value="listing" />'."\n";              $official = $unofficial;
               $unofficial = '';
           }
           $output .= '<span class="LC_nobreak">'.&mt('Official course:').'&nbsp;<label>'.
                      '<input type="radio" name="official" value="1"'.$official.' />'.
                      &mt('Yes').'</label>'.('&nbsp;'x3).'<label>'.
                      '<input type="radio" name="official" value="0"'.$unofficial.
                      ' onclick="toggleOfficial();" />'.&mt('No').'</label></span><br />'.
                      &Apache::courseclassifier::build_instcode_selectors($numtitles,
                      $lasttitle,\%cat_items,\@codetitles,\%cat_titles,\%cat_order)."\n".
                      '<input type="hidden" name="numtitles" value="'.$numtitles.'" />'."\n".
                      '<input type="hidden" name="state" value="listing" />'."\n";
     
     }      }
     return ($output,$jscript,$numtitles);      return ($output,$jscript,$numtitles);
Line 657  sub search_courses { Line 671  sub search_courses {
             $filter->{'combownerfilter'} = $filter->{'ownerfilter'}.':'.              $filter->{'combownerfilter'} = $filter->{'ownerfilter'}.':'.
                                            $filter->{'ownerdomfilter'};                                             $filter->{'ownerdomfilter'};
         }          }
         foreach my $item ('descriptfilter','instcodefilter','coursefilter',          foreach my $item ('descriptfilter','coursefilter','combownerfilter') {
                           'combownerfilter') {  
             if (!$filter->{$item}) {              if (!$filter->{$item}) {
                 $filter->{$item}='.';                  $filter->{$item}='.';
             }              }
         }          }
         if ($type eq '') { $type = '.'; }  
         my $timefilter =           my $timefilter = 
            ($filter->{'sincefilter'}==-1?1:time-$filter->{'sincefilter'});             ($filter->{'sincefilter'}==-1?1:time-$filter->{'sincefilter'});
         my ($instcodefilter,$regexpok);          my ($instcodefilter,$regexpok);
         if ($numtitles) {          if ($numtitles) {
             $instcodefilter =               if ($env{'form.official'}) {
                 &Apache::courseclassifier::instcode_search_str($filter->{'domainfilter'},                  $instcodefilter = 
                                                                $numtitles);                      &Apache::courseclassifier::instcode_search_str($filter->{'domainfilter'},
             $regexpok = 1;                                                                     $numtitles);
                   $regexpok = 1;
               }
         } else {          } else {
             $instcodefilter = $filter->{'instcodefilter'};              $instcodefilter = $filter->{'instcodefilter'};
         }          }
           if ($instcodefilter eq '') { $instcodefilter = '.'; }
           if ($type eq '') { $type = '.'; }
         %courses =           %courses = 
             &Apache::lonnet::courseiddump($filter->{'domainfilter'},              &Apache::lonnet::courseiddump($filter->{'domainfilter'},
                                           $filter->{'descriptfilter'},                                            $filter->{'descriptfilter'},
Line 737  sub gochoose_javascript { Line 753  sub gochoose_javascript {
                                  total => 'coursetotal',                                   total => 'coursetotal',
                                  list  => 'courselist',                                   list  => 'courselist',
                                  },                                   },
                      'Non-standard Course' => {                       'Community' => {
                                  name  => 'grouppick',                                   name  => 'grouppick',
                                  total => 'grouptotal',                                   total => 'grouptotal',
                                  list  => 'grouplist',                                   list  => 'grouplist',
Line 854  Course Activity - how recently was cours Line 870  Course Activity - how recently was cours
 Course Domain - the domain of the course  Course Domain - the domain of the course
   
 =item *  =item *
 Course Type - Course or Non-standard Course  Course Type - Course or Community
   
 =item *  =item *
 Course Institutional Code - the institutional identifier assigned to the course  Course Institutional Code - the institutional identifier assigned to the course
Line 907  Following selection, and/or submission, Line 923  Following selection, and/or submission,
 X<create_user_javascript()>  X<create_user_javascript()>
 B<create_user_javascript($type)>:  B<create_user_javascript($type)>:
   
 Input: 1 - $type  - the course type - Course or Non-standard Course  Input: 1 - $type  - the course type - Course or Community
   
 Output: 1 - $output - javascript wrapped in E<lt>scriptE<gt>E<lt>/scriptE<gt> tags   Output: 1 - $output - javascript wrapped in E<lt>scriptE<gt>E<lt>/scriptE<gt> tags 
   
Line 939  Side Effects: None Line 955  Side Effects: None
   
 =item *  =item *
 X<build_filters()>  X<build_filters()>
 B<build_filters($filterlist,$type,$roleelement,$multelement,$filter,$action,$numfiltersref)>:  B<build_filters($filterlist,$type,$roleelement,$multelement,$filter,$action,$numfiltersref,$caller)>:
   
   
 Input: 7 - anonymous array of search criteria; course type; $roleelement ; $multelement ; anonymous hash of criteria and their values; form action; ref to scalar (count of number of elements in institutional codes -- e.g., 4 for year, semester, department, and number).    Input: 7 - anonymous array of search criteria; course type; $roleelement ; $multelement ; anonymous hash of criteria and their values; form action; ref to scalar (count of number of elements in institutional codes -- e.g., 4 for year, semester, department, and number); caller context (e.g., set to 'modifycourse' when routine is called from lonmodifycourse.pm).
   
 Output: 1 - $output - HTML for display of search criteria, and hidden form elements.   Output: 1 - $output - HTML for display of search criteria, and hidden form elements. 
   

Removed from v.1.79  
changed lines
  Added in v.1.83


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