Diff for /loncom/interface/lonpickcourse.pm between versions 1.63.2.1 and 1.66

version 1.63.2.1, 2007/06/01 18:07:47 version 1.66, 2007/10/22 22:16:38
Line 72  sub handler { Line 72  sub handler {
     my $roledom = $env{'form.roleelement'};      my $roledom = $env{'form.roleelement'};
     if ($roledom) {      if ($roledom) {
         $roleelement = '<input type="hidden" name="roleelement" value="'.$roledom.'" />';          $roleelement = '<input type="hidden" name="roleelement" value="'.$roledom.'" />';
         $submitopener = &Apache::lonroles::processpick();          $submitopener = &processpick();
         $autosubmit = 'process_pick("'.$roledom.'")';          $autosubmit = 'process_pick("'.$roledom.'")';
     }      }
   
Line 83  sub handler { Line 83  sub handler {
     }      }
   
     my %loaditem;      my %loaditem;
     if ($env{'form.form'} eq 'cu' && $env{'form.pickedcourse'}) {      if ((($env{'form.form'} eq 'cu') || ($env{'form.form'} eq 'studentform')) && 
           ($env{'form.pickedcourse'})) {
         $loaditem{'onload'} ="setSections()";          $loaditem{'onload'} ="setSections()";
     }      }
     $r->print(&Apache::loncommon::start_page($title,undef,      $r->print(&Apache::loncommon::start_page($title,undef,
Line 92  sub handler { Line 93  sub handler {
   
     if ($env{'form.form'} eq 'portform') {      if ($env{'form.form'} eq 'portform') {
         $lastaction = 'document.courselist.submit()';          $lastaction = 'document.courselist.submit()';
     } elsif ($env{'form.form'} eq 'cu') {      } elsif ($env{'form.form'} eq 'cu' || $env{'form.form'} eq 'studentform') {
         $lastaction =           $lastaction = 
              'document.courselist.pickedcourse.value = cdom+"_"+cname;'."\n".               'document.courselist.pickedcourse.value = cdom+"_"+cname;'."\n".
              'document.courselist.submit();';               'document.courselist.submit();';
Line 101  sub handler { Line 102  sub handler {
     }      }
   
     # if called to assign a role in a course to a user via CUSR      # if called to assign a role in a course to a user via CUSR
     if ($env{'form.form'} eq 'cu') {      if ($env{'form.form'} eq 'cu' || $env{'form.form'} eq 'studentform') {
         $r->print(&create_user_javascript($type));           $r->print(&create_user_javascript($type)); 
     }      }
   
Line 137  sub handler { Line 138  sub handler {
     return OK;      return OK;
 }  }
   
   sub processpick {
       my $openerform = 'rolechoice';
       if ($env{'form.form'} eq 'studentform') {
           $openerform = $env{'form.form'};
       }
       my $process_pick = <<"ENDONE";
   <script type="text/javascript">
   function process_pick(dom) {
       var pickedCourse=opener.document.$openerform.$env{'form.cnumelement'}.value;
       var pickedDomain=opener.document.$openerform.$env{'form.cdomelement'}.value;
       var okDomain = 0;
   ENDONE
       if ($openerform eq 'rolechoice') {
           $process_pick .= <<"ENDTWO";
       if (pickedDomain == dom) {
           if (pickedCourse != '') {
               var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse
               opener.document.title='Role selected. Please stand by.';
               opener.status='Role selected. Please stand by.';
               opener.document.rolechoice.newrole.value=courseTarget
               opener.document.rolechoice.submit();
           }
       } 
       else {
           alert("You may only use this screen to select courses in the current domain: "+dom+"\\nPlease return to the roles page window and click the 'Select Course' link for domain: "+pickedDomain+",\\n if you are a Domain Coordinator in that domain, and wish to become a Course Coordinator in a course in the domain");
       }
   ENDTWO
       } else {
           $process_pick .= <<"ENDTHREE";
       if (pickedDomain != dom) {
           alert("You may only use this screen to select courses in the current domain: "+dom+"\\nPlease return to the roles page window and click the 'Select Course' link for domain: "+pickedDomain+",\\n if you are a Domain Coordinator in that domain, and wish to become a Course Coordinator in a course in the domain");
           return;
       }
   ENDTHREE
       }
       $process_pick .= "
   }
   
   </script>
   ";
       return $process_pick;
   }
   
 sub create_user_javascript {  sub create_user_javascript {
     my ($type) = @_;      my ($type) = @_;
     my $output;      my $output;
Line 175  sub display_matched_courses { Line 219  sub display_matched_courses {
     my $numcourses = keys(%courses);      my $numcourses = keys(%courses);
     foreach my $course (keys(%courses)) {      foreach my $course (keys(%courses)) {
         my $descr;          my $descr;
         if ($courses{$course} =~ m/^([^:]*):/i) {          if (ref($courses{$course}) eq 'HASH') {
               $descr = $courses{$course}{'description'};
           } elsif ($courses{$course} =~ m/^([^:]*):/i) {
             $descr = &unescape($1);              $descr = &unescape($1);
         } else {          } else {
             $descr = &unescape($courses{$course});              $descr = &unescape($courses{$course});
Line 195  sub display_matched_courses { Line 241  sub display_matched_courses {
             my $cleandesc=&HTML::Entities::encode($description,'<>&"');              my $cleandesc=&HTML::Entities::encode($description,'<>&"');
             $cleandesc=~s/'/\\'/g;              $cleandesc=~s/'/\\'/g;
             my ($cdom,$cnum)=split(/\_/,$course);              my ($cdom,$cnum)=split(/\_/,$course);
             my ($descr,$instcode,$owner,$ttype) = split/:/,$courses{$course};              my ($descr,$instcode,$ttype,@owners);
               if (ref($courses{$course}) eq 'HASH') {
                   $descr = $courses{$course}{'description'};
                   $instcode =  $courses{$course}{'inst_code'};
                   $ttype =  $courses{$course}{'type'};
                   push(@owners,&unescape($courses{$course}{'owner'}));
                   if (ref($courses{$course}{'co-owners'}) eq 'ARRAY') {
                       foreach my $item (@{$courses{$course}{'co-owners'}}) {
                           push(@owners,&unescape($item));
                       }
                   }
               } else {
                   my $singleowner; 
                   ($descr,$instcode,$singleowner,$ttype)=split(/:/,$courses{$course});
                   push(@owners,&unescape($singleowner));
               }
               my $owner = join(', ',@owners);
             $r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc));              $r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc));
             $r->print($description.'('.              $r->print($description.'('.
                       (&Apache::lonnet::domain($cdom,'description')?                        (&Apache::lonnet::domain($cdom,'description')?
                        &Apache::lonnet::domain($cdom,'description'):$cdom).")");                         &Apache::lonnet::domain($cdom,'description'):$cdom).")");
             unless ($instcode eq '') {              if ($instcode ne '') {
                 $r->print(" - ".&unescape($instcode));                  $r->print(" - ".&unescape($instcode));
             }              }
             unless ($owner eq '') {              if (@owners > 1) {
                 $r->print(", owner - ".&unescape($owner));                  $r->print(', '.&mt('owners').' - ',join(', ',@owners)); 
               } elsif (@owners == 1) {
                   $r->print(', '.&mt('owner').' - '.$owner);
             }              }
             unless ($ttype eq '') {              if ($ttype ne '') {
                 $r->print('('.&unescape($ttype).')');                  $r->print('('.&unescape($ttype).')');
             }              }
             if ($multiple) { $r->print("</label>\n"); }              if ($multiple) { $r->print("</label>\n"); }
Line 322  sub build_filters { Line 386  sub build_filters {
               'cog' => &mt('Course Type')                'cog' => &mt('Course Type')
              );               );
   
     $typeselectform =  '<select name="type" size="1"';      $typeselectform =  '<select name="type" size="1">'."\n";
     $typeselectform .= ">\n";  
     if ($type eq 'Course') {      if ($type eq 'Course') {
         $instcodeform =           $instcodeform = 
                 '<input type="text" name="instcodefilter" size="10" value="'.                  '<input type="text" name="instcodefilter" size="10" value="'.
Line 363  $multelement Line 426  $multelement
     if ($domainselectform) {      if ($domainselectform) {
         $output .= $lt{'cdo'}.': '.$domainselectform.'<br />'."\n";          $output .= $lt{'cdo'}.': '.$domainselectform.'<br />'."\n";
     }      }
 #    if ($typeselectform) {      if ($typeselectform) {
 #        $output .= $lt{'cog'}.': '.$typeselectform.'<br />'."\n";          $output .= $lt{'cog'}.': '.$typeselectform.'<br />'."\n";
 #    }      }
     if ($instcodeform) {      if ($instcodeform) {
         $output .= $lt{'cin'}.': '.$instcodeform.'<br />'."\n";          $output .= $lt{'cin'}.': '.$instcodeform.'<br />'."\n";
     }      }
Line 425  sub search_courses { Line 488  sub search_courses {
         $r->print('<br />');          $r->print('<br />');
         my %coursehash = &Apache::loncommon::findallcourses();           my %coursehash = &Apache::loncommon::findallcourses(); 
         foreach my $cid (sort(keys(%coursehash))) {          foreach my $cid (sort(keys(%coursehash))) {
             $courses{$cid} = $env{'course.'.$cid.'.description'};              $courses{$cid}{'description'} = $env{'course.'.$cid.'.description'};
         }          }
     }      }
     return %courses;      return %courses;
Line 689  Side Effects: None Line 752  Side Effects: None
 X<gochoose_javascript()>  X<gochoose_javascript()>
 B<gochoose_javascript($type,$multiple,$autosubmit,$lastaction)>:  B<gochoose_javascript($type,$multiple,$autosubmit,$lastaction)>:
   
 Input: 4 - course type; single (0) or multiple courses (1); in context of DC selecting a CC role in a course: javascript code from Apache::lonroles::processpick(); final action to take after user chooses course(s):  either close window, or submit form for display of next page etc.  Input: 4 - course type; single (0) or multiple courses (1); in context of DC selecting a CC role in a course: javascript code from &processpick(); final action to take after user chooses course(s):  either close window, or submit form for display of next page etc.
   
 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
   

Removed from v.1.63.2.1  
changed lines
  Added in v.1.66


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