Diff for /loncom/auth/lonroles.pm between versions 1.108 and 1.109

version 1.108, 2004/11/12 15:33:32 version 1.109, 2004/11/12 23:29:55
Line 105  sub handler { Line 105  sub handler {
             foreach my $envkey (keys %ENV) {              foreach my $envkey (keys %ENV) {
                 if ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-) {                  if ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-) {
                     if ($dcroles{$1}) {                      if ($dcroles{$1}) {
                         unless ($ENV{'user.role.cc./'.$1.'/'.$2}) {                          my $cckey = 'user.role.cc./'.$1.'/'.$2;
                           if ($ENV{$cckey}) {
                               my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont);
                               &role_status($cckey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);
                               unless (($tstatus eq 'is') || ($tstatus eq 'will_not')) {
                                   &set_privileges($1,$2);
                               }
                           } else {
                             &set_privileges($1,$2);                              &set_privileges($1,$2);
                         }                          }
                     }                      }
Line 761  sub role_status { Line 768  sub role_status {
     }      }
 }  }
   
 sub dc_script {  
     my $response = (<<"END");  
 function setDCchoice(caller) {  
     var dcname = "dc./"+caller+"/"  
     document.rolechoice.dcselected.value = caller  
     document.rolechoice.elements[3].name = dcname  
     document.rolechoice.submit()  
 }  
 END  
     return $response;  
 }  
                                                                                    
 sub check_fordc {  sub check_fordc {
     my ($dcroles,$then) = @_;      my ($dcroles,$then) = @_;
     my $numdc = 0;      my $numdc = 0;
Line 796  sub check_fordc { Line 791  sub check_fordc {
   
 sub courselink {  sub courselink {
     my ($dcdom) = @_;      my ($dcdom) = @_;
     my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($dcdom,'dom');      my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($dcdom,$dcdom);
       my $verify_script = &coursepick_jscript($dcdom);
       my $courseform=&Apache::loncommon::selectcourse_link
                        ('rolechoice','dccourse_'.$dcdom,'dcdomain_'.$dcdom,'coursedesc_'.$dcdom);
       my $hiddenitems = '<input type="hidden" name="dcdomain_'.$dcdom.'" value="'.$dcdom.'" />'.
                         '<input type="hidden" name="origdom_'.$dcdom.'" value="'.$dcdom.'" />'.
                         '<input type="hidden" name="dccourse_'.$dcdom.'" value="" />'.
                         '<input type="hidden" name="coursedesc_'.$dcdom.'" value="" />';
       return $cb_jscript.$verify_script.$courseform.$hiddenitems;
   }
   
   sub coursepick_jscript {
       my ($dcdom) = @_;
     my $verify_script = <<"END";      my $verify_script = <<"END";
 <script>  <script>
 function verifyCoursePick(caller) {  function verifyCoursePick(caller) {
     var numbutton = getIndex(caller)      var numbutton = getIndex(caller)
     var pickedCourse = document.rolechoice.dccourse.value      var pickedCourse = document.rolechoice.dccourse_$dcdom.value
     var pickedDomain = document.rolechoice.dcdomain.value      var pickedDomain = document.rolechoice.dcdomain_$dcdom.value
     if (document.rolechoice.dcdomain.value == document.rolechoice.origdom.value) {      if (document.rolechoice.dcdomain_$dcdom.value == document.rolechoice.origdom_$dcdom.value) {
         if (pickedCourse != '') {          if (pickedCourse != '') {
             if (numbutton != -1) {              if (numbutton != -1) {
                 var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse                  var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse
Line 819  function verifyCoursePick(caller) { Line 826  function verifyCoursePick(caller) {
         alert("You can only use this screen to select courses in the current domain")          alert("You can only use this screen to select courses in the current domain")
     }      }
 }  }
   function getIndex(caller) {
 function getIndex(what) {  
     for (var i=0;i<document.rolechoice.elements.length;i++) {      for (var i=0;i<document.rolechoice.elements.length;i++) {
         if (what == document.rolechoice.elements[i]) {          if (document.rolechoice.elements[i] == caller) {
             return i;              return i;
         }          }
     }      }
Line 830  function getIndex(what) { Line 836  function getIndex(what) {
 }  }
 </script>  </script>
 END  END
     my $courseform=&Apache::loncommon::selectcourse_link      return $verify_script;
                      ('rolechoice','dccourse','dcdomain','coursedesc');  
     my $hiddenitems = '<input type="hidden" name="dcdomain" value="'.$dcdom.'" />'.  
                       '<input type="hidden" name="origdom" value="'.$dcdom.'" />'.  
                       '<input type="hidden" name="dccourse" value="" />'.  
                       '<input type="hidden" name="coursedesc" value="" />';  
     return $cb_jscript.$verify_script.$courseform.$hiddenitems;  
 }  }
   
   sub processpick {
       my $dcdom = shift;
       my $process_pick = <<"END";
   <script>
   function process_pick(dom) {
       var numbutton = getIndex(dom)
       var pickedCourse = opener.document.rolechoice.dccourse_$dcdom.value
       var pickedDomain = opener.document.rolechoice.dcdomain_$dcdom.value
       if (opener.document.rolechoice.dcdomain_$dcdom.value == opener.document.rolechoice.origdom_$dcdom.value) {
           if (pickedCourse != '') {
               if (numbutton != -1) {
                   var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse
                   opener.document.rolechoice.elements[numbutton+1].name = courseTarget
                   opener.document.rolechoice.submit()
               }
           }
       }
   }
    
   function getIndex(dom) {
       var callername = 'ccpick_'+dom
       for (var i=0;i<opener.document.rolechoice.elements.length;i++) {
           var elemname = opener.document.rolechoice.elements[i].name
           if (elemname == callername) {
               return i;
           }
       }
       return -1;
   }
   </script>
   END
       return $process_pick;
   }
   
 sub select_recent_courses {  sub select_recent_courses {
     my ($r,$roletext)=@_;      my ($r,$roletext)=@_;
Line 852  sub select_recent_courses { Line 885  sub select_recent_courses {
                     '</td></tr>'."\n";                      '</td></tr>'."\n";
     foreach my $courseid (sort keys %recent) {      foreach my $courseid (sort keys %recent) {
         unless ($courseid =~/^error\:/) {          unless ($courseid =~/^error\:/) {
               print STDERR "$courseid\n";
             my ($dom,$crs) = split/_/,$courseid;              my ($dom,$crs) = split/_/,$courseid;
             $numrecent ++;              $numrecent ++;
             my $crskey = 'user.role.cc./'.$dom.'/'.$crs;              my $crskey = 'user.role.cc./'.$dom.'/'.$crs;
Line 864  sub select_recent_courses { Line 898  sub select_recent_courses {
 }  }
   
 sub allcourses_row {  sub allcourses_row {
     my ($dcdom) = @_;      my $dcdom = shift;
     my $ccrole = Apache::lonnet::plaintext('cc');      my $ccrole = Apache::lonnet::plaintext('cc');
     my $selectlink = &courselink($dcdom);      my $selectlink = &courselink($dcdom);
     my $output = '<tr bgcolor="#77FF77">'.      my $output = '<tr bgcolor="#77FF77">'.
               '<td><input type="button" value="'.                '<td><input type="button" value="'.
               &mt('Select').'" name="ccpick_'.$dcdom.'/" '.                &mt('Select').'" name="ccpick_'.$dcdom.'"'.
               'onClick="verifyCoursePick(this)">'.                'onClick="verifyCoursePick(this)">'.
               '<input type="hidden" name="pick_'.$dcdom.'" value="1"></td>'.                '<input type="hidden" name="pick_'.$dcdom.'" value="1"></td>'.
               '<td><font color="#002200">'.                '<td><font color="#002200">'.

Removed from v.1.108  
changed lines
  Added in v.1.109


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