Diff for /loncom/interface/Attic/londropadd.pm between versions 1.26 and 1.32

version 1.26, 2002/04/16 21:02:17 version 1.32, 2002/04/26 19:10:54
Line 59  use Apache::Constants qw(:common :http R Line 59  use Apache::Constants qw(:common :http R
 # ================================================================ Print header  # ================================================================ Print header
   
 sub header {  sub header {
     my $r=shift;      return(<<ENDHEAD);
     $r->print(<<ENDHEAD);  
 <html>  <html>
 <head>  <head>
 <title>LON-CAPA Student Drop/Add</title>  <title>LON-CAPA Student Drop/Add</title>
Line 94  sub modifystudent { Line 93  sub modifystudent {
             my $section=$1;              my $section=$1;
             $section='' if ($course eq $courseid.'_st');              $section='' if ($course eq $courseid.'_st');
             if (((!$section) && (!$csec)) || ($section ne $csec)) {              if (((!$section) && (!$csec)) || ($section ne $csec)) {
                 my (undef,$end,$start)=split(/\_/,$course);                  my (undef,$end,$start)=split(/\_/,$roles{$course});
                 my $now=time;                  my $now=time;
                 if (($start) && ($end) && ($now>$start) && ($now<$end)) {                  if (!($start && ($now<$start)) || !($end && ($now>$end))) {
                     my $reply=&Apache::lonnet::modifystudent                      my $reply=&Apache::lonnet::modifystudent
                         ($udom,$unam,'','','','','','','',$section,time);                          ($udom,$unam,'','','','','','','',$section,time);
                 }                  }
Line 105  sub modifystudent { Line 104  sub modifystudent {
     }      }
 }  }
   
   # ============ build a domain and server selection form
   sub domain_form {
       my ($defdom) = @_;
       # Set up domain and server selection forms
       #
       # Get the domains
       my @domains = &Apache::loncommon::get_domains();
       # build up the menu information to be passed to 
       # &Apache::loncommon::linked_select_forms
       my %select_menus;
       foreach my $dom (@domains) {
           # set up the text for this domain
           $select_menus{$dom}->{'text'}= $dom;
           # we want a choice of 'default' as the default in the second menu
           $select_menus{$dom}->{'default'}= 'default';
           $select_menus{$dom}->{'select2'}->{'default'} = 'default';
           # Now build up the other items in the second menu
           my %servers = &Apache::loncommon::get_home_servers($dom);
           foreach my $server (keys(%servers)) {
               $select_menus{$dom}->{'select2'}->{$server} 
                                               = "$server $servers{$server}";
           }
       }
       my $result  = &Apache::loncommon::linked_select_forms
           ('studentform',' with home server ',$defdom,
            'lcdomain','lcserver',\%select_menus);
       return $result;
   }
   
 # ============================================================== Menu Phase One  # ============================================================== Menu Phase One
 sub menu_phase_one {  sub menu_phase_one {
     my $r=shift;      my $r=shift;
Line 147  to this page if the data selected is ins Line 175  to this page if the data selected is ins
 <input type="hidden" name="upfile_associate"   <input type="hidden" name="upfile_associate" 
                                        value="$ENV{'form.upfile_associate'}" />                                         value="$ENV{'form.upfile_associate'}" />
 <hr />  <hr />
 <script>  <script type="text/javascript" language="Javascript">
 $javascript  $javascript
 $javascript_validations  $javascript_validations
 </script>  </script>
Line 156  ENDPICK Line 184  ENDPICK
   
 sub javascript_validations {  sub javascript_validations {
     my ($krbdefdom)=@_;      my ($krbdefdom)=@_;
       my %param = ( formname => 'studentform',
                     kerb_def_dom => $krbdefdom );
       my $authheader = &Apache::loncommon::authform_header(%param);
     return (<<ENDPICK);      return (<<ENDPICK);
 function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec) {  function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec) {
     var foundatype=0;      var foundatype=0;
     var message='';      var message='';
     if (founduname==0) {      if (founduname==0) {
  alert('You need to specify at least the username field');   alert('You need to specify the username field');
         return;          return;
     }      }
     if (vf.login[0].checked) {      if (current.radiovalue == null || current.radiovalue == 'nochange') {
  foundatype=1;          // They did not check any of the login radiobuttons.
         if (vf.krbdom.value=='') {          alert('You must choose an authentication type');
     alert('You need to specify the Kerberos domain');          return;
             return;  
         }  
     }      }
     if (vf.login[1].checked) {      foundatype=1;
  foundatype=1;      if (current.argfield == null || current.argfield == '') {
         if ((vf.intpwd.value=='') && (foundpwd==0)) {          var alertmsg = '';
     alert('You need to specify the initial password');          switch (current.value) {
               case 'krb': 
                   alertmsg = 'You need to specify the Kerberos domain';
                   break;
               case 'loc':
               case 'fsys':
                   alertmsg = 'You need to specify the initial password';
                   break;
               case 'fsys':
                   alertmsg = '';
                   break;
               default: 
                   alertmsg = '';
           }
           if (alertmsg != '') {
               alert(alertmsg);
             return;              return;
         }          }
     }      }
     if (vf.login[2].checked) {  
  foundatype=1;  
  //An argument is not required  
     }  
     if (foundatype==0) {  
  alert('You need to set the login type');  
         return;  
     }  
     if (foundname==0) { message='No name fields specified. '; }      if (foundname==0) { message='No name fields specified. '; }
     if (foundid==0) { message+='No ID or student number field specified. '; }      if (foundid==0) { message+='No ID or student number field specified. '; }
     if (foundsec==0) { message+='No section or group field specified. '; }      if (foundsec==0) { message+='No section or group field specified. '; }
Line 213  function verify_message (vf,founduname,f Line 250  function verify_message (vf,founduname,f
     }      }
 }  }
   
 function setkrb(vf) {  
     if (vf.krbdom.value!='') {  
        clearpwd(vf);  
        vf.login[0].checked=true;  
        vf.krbdom.value=vf.krbdom.value.toUpperCase();  
        vf.intpwd.value='';  
        vf.locarg.value='';  
    }  
 }  
   
 function setint(vf) {  
     if (vf.intpwd.value!='') {  
        clearpwd(vf);  
        vf.login[1].checked=true;  
        vf.krbdom.value='';  
        vf.locarg.value='';  
    }  
 }  
   
 function setloc(vf) {  
     if (vf.locarg.value!='') {  
        vf.login[2].checked=true;  
        vf.krbdom.value='';  
        vf.intpwd.value='';  
    }  
 }  
   
 function clickkrb(vf) {  
     vf.krbdom.value='$krbdefdom';  
     clearpwd(vf);  
     vf.intpwd.value='';  
     vf.locarg.value='';  
 }  
   
 function clickint(vf) {  
     vf.krbdom.value='';  
     vf.locarg.value='';  
 }  
   
 function clickloc(vf) {  
     vf.krbdom.value='';  
     vf.intpwd.value='';  
 }  
   
     function pclose() {      function pclose() {
         parmwin=window.open("/adm/rat/empty.html","LONCAPAparms",          parmwin=window.open("/adm/rat/empty.html","LONCAPAparms",
Line 284  function clickloc(vf) { Line 278  function clickloc(vf) {
         pclose();          pclose();
     }      }
   
   $authheader
 ENDPICK  ENDPICK
   
 }  }
   
 sub phase_two_javascript_forward_associate {  sub phase_two_javascript_forward_associate {
Line 336  function flip(vf,tf) { Line 332  function flip(vf,tf) {
       }        }
    }     }
    if (nw==9) {     if (nw==9) {
        vf.login[1].checked=true;         changed_radio('int',document.studentform);
        vf.intpwd.value='';         set_auth_radio_buttons('int',document.studentform);
        vf.krbdom.value='';         vf.intarg.value='';
          vf.krbarg.value='';
        vf.locarg.value='';         vf.locarg.value='';
    }     }
 }  }
Line 391  function flip(vf,tf) { Line 388  function flip(vf,tf) {
    }     }
    // intial password specified, pick internal authentication     // intial password specified, pick internal authentication
    if (tf==8 && nw!=0) {     if (tf==8 && nw!=0) {
        vf.login[1].checked=true;         changed_radio('int',document.studentform);
        vf.intpwd.value='';         set_auth_radio_buttons('int',document.studentform);
        vf.krbdom.value='';         vf.krbarg.value='';
          vf.intarg.value='';
        vf.locarg.value='';         vf.locarg.value='';
    }     }
 }  }
Line 409  ENDPICK Line 407  ENDPICK
   
 sub phase_two_end {  sub phase_two_end {
     my ($r,$i,$keyfields,$defdom,$today,$halfyear)=@_;      my ($r,$i,$keyfields,$defdom,$today,$halfyear)=@_;
       my %param = ( formname => 'document.studentform');
       my $krbform = &Apache::loncommon::authform_kerberos(%param);
       my $intform = &Apache::loncommon::authform_internal(%param);
       my $locform = &Apache::loncommon::authform_local(%param);
       my $domform = &domain_form($defdom);
     $r->print(<<ENDPICK);      $r->print(<<ENDPICK);
 </table>  </table>
 <input type=hidden name=nfields value=$i>  <input type=hidden name=nfields value=$i>
Line 416  sub phase_two_end { Line 419  sub phase_two_end {
 <h3>Login Type</h3>  <h3>Login Type</h3>
 <p>Note: this will not take effect if the user already exists</p>  <p>Note: this will not take effect if the user already exists</p>
 <p>  <p>
 <input type="radio" name="login" value="krb" onClick="clickkrb(this.form);" />  $krbform
 Kerberos authenticated with domain  
 <input type="text" size="10" name="krbdom" onChange="setkrb(this.form);" />  
 </p>  </p>
 <p>  <p>
 <input type="radio" name="login" value="int" onClick="clickint(this.form);" />  $intform
 Internally authenticated (with initial password   
 <input type="text" size="10" name="intpwd" onChange="setint(this.form);" />)  
 </p>  </p>
 <p>  <p>
 <input type="radio" name="login" value="loc" onClick="clickloc(this.form);" />  $locform
 Local Authentication with argument  
 <input type="text" size="10" name="locarg" onChange="setloc(this.form);" />  
 </p>  </p>
 <h3>LON-CAPA Domain for Students</h3>  <h3>LON-CAPA Domain for Students</h3>
 LON-CAPA domain: <input type=text size=10 value=$defdom name=lcdomain><p>  LON-CAPA domain: $domform <p>
 <h3>Starting and Ending Dates</h3>  <h3>Starting and Ending Dates</h3>
 <input type="hidden" value=''          name="pres_value"  >  <input type="hidden" value=''          name="pres_value"  >
 <input type="hidden" value=''          name="pres_type"   >  <input type="hidden" value=''          name="pres_type"   >
Line 505  sub menu_phase_two_upload { Line 502  sub menu_phase_two_upload {
 sub enroll_single_student {  sub enroll_single_student {
     my $r=shift;      my $r=shift;
     $r->print('<h3>Enrolling Student</h3>');      $r->print('<h3>Enrolling Student</h3>');
       $r->print($ENV{'form.cuname'}." in domain ".$ENV{'form.lcdomain'});
     if (($ENV{'form.cuname'})&&($ENV{'form.cuname'}!~/\W/)&&      if (($ENV{'form.cuname'})&&($ENV{'form.cuname'}!~/\W/)&&
         ($ENV{'form.cdomain'})&&($ENV{'form.cdomain'}!~/\W/)) {          ($ENV{'form.lcdomain'})&&($ENV{'form.lcdomain'}!~/\W/)) {
           # Deal with home server selection
           my $domain=$ENV{'form.lcdomain'};
           my $desiredhost = $ENV{'form.lcserver'};
           if (lc($desiredhost) eq 'default') {
               $desiredhost = undef;
           } else {
               my %home_servers = &Apache::loncommon::get_home_servers($domain);
               if (! exists($home_servers{$desiredhost})) {
                   $r->print('<font color="#ff0000">Error:</font>'.
                             'Invalid home server specified');
                   return;
               }
           }
           $r->print(" with server $desiredhost :");
           # End of home server selection logic
  my $amode='';   my $amode='';
         my $genpwd='';          my $genpwd='';
         if ($ENV{'form.login'} eq 'krb') {          if ($ENV{'form.login'} eq 'krb') {
            $amode='krb4';             $amode='krb4';
            $genpwd=$ENV{'form.krbdom'};             $genpwd=$ENV{'form.krbarg'};
         } elsif ($ENV{'form.login'} eq 'int') {          } elsif ($ENV{'form.login'} eq 'int') {
            $amode='internal';             $amode='internal';
            $genpwd=$ENV{'form.intpwd'};             $genpwd=$ENV{'form.intarg'};
         }  elsif ($ENV{'form.login'} eq 'loc') {          }  elsif ($ENV{'form.login'} eq 'loc') {
     $amode='localauth';      $amode='localauth';
     $genpwd=$ENV{'form.locarg'};      $genpwd=$ENV{'form.locarg'};
     if (!$genpwd) { $genpwd=" "; }      if (!$genpwd) { $genpwd=" "; }
  }   }
         if (($amode) && ($genpwd)) {          if (($amode) && ($genpwd)) {
             &modifystudent($ENV{'form.cdomain'},$ENV{'form.cuname'},  
                            $ENV{'request.course.id'},$ENV{'form.csec'});  
           $r->print(&Apache::lonnet::modifystudent(            $r->print(&Apache::lonnet::modifystudent(
                       $ENV{'form.cdomain'},$ENV{'form.cuname'},                        $ENV{'form.lcdomain'},$ENV{'form.cuname'},
                       $ENV{'form.cstid'},$amode,$genpwd,                        $ENV{'form.cstid'},$amode,$genpwd,
                $ENV{'form.cfirst'},$ENV{'form.cmiddle'},                 $ENV{'form.cfirst'},$ENV{'form.cmiddle'},
                       $ENV{'form.clast'},$ENV{'form.cgen'},                        $ENV{'form.clast'},$ENV{'form.cgen'},
                       $ENV{'form.csec'},$ENV{'form.enddate'},                        $ENV{'form.csec'},$ENV{'form.enddate'},
                       $ENV{'form.startdate'},$ENV{'form.forceid'}));                        $ENV{'form.startdate'},$ENV{'form.forceid'},
                       $desiredhost));
               &modifystudent($ENV{'form.lcdomain'},$ENV{'form.cuname'},
                              $ENV{'request.course.id'},$ENV{'form.csec'});
  } else {   } else {
            $r->print('Invalid login mode or password');                 $r->print('Invalid login mode or password');    
         }                    }          
Line 547  sub menu_phase_two_enroll { Line 561  sub menu_phase_two_enroll {
     my $halfyear = $today+15552000;      my $halfyear = $today+15552000;
     my $defdom=$r->dir_config('lonDefDomain');      my $defdom=$r->dir_config('lonDefDomain');
     my $javascript_validations=&javascript_validations($krbdefdom);      my $javascript_validations=&javascript_validations($krbdefdom);
       # Set up authentication forms
       my %param = ( formname => 'document.studentform');
       my $krbform = &Apache::loncommon::authform_kerberos(%param);
       my $intform = &Apache::loncommon::authform_internal(%param);
       my $locform = &Apache::loncommon::authform_local(%param);
       # Set up domain selection form
       my $domform = &domain_form($defdom);
       # Print it all out
     $r->print(<<ENDSENROLL);      $r->print(<<ENDSENROLL);
 <script>  <script type="text/javascript" language="Javascript">
 function verify(vf) {  function verify(vf) {
     var founduname=0;      var founduname=0;
     var foundpwd=0;      var foundpwd=0;
Line 557  function verify(vf) { Line 579  function verify(vf) {
     var foundsec=0;      var foundsec=0;
     var tw;      var tw;
     if ((typeof(vf.cuname.value) !="undefined") && (vf.cuname.value!='') &&       if ((typeof(vf.cuname.value) !="undefined") && (vf.cuname.value!='') && 
  (typeof(vf.cdomain.value)!="undefined") && (vf.cdomain.value!='')) {   (typeof(vf.lcdomain.value)!="undefined") && (vf.lcdomain.value!='')) {
         founduname=1;          founduname=1;
     }      }
     if ((typeof(vf.cfirst.value)!="undefined") && (vf.cfirst.value!='') &&      if ((typeof(vf.cfirst.value)!="undefined") && (vf.cfirst.value!='') &&
Line 596  Generation:  <input type="text" name="cg Line 618  Generation:  <input type="text" name="cg
   
 <h3>Login Data</h3>  <h3>Login Data</h3>
 <p>Username: <input type="text" name="cuname"  size="15"></p>  <p>Username: <input type="text" name="cuname"  size="15"></p>
 <p>Domain:   <input type="text" name="cdomain" size="10" value="$defdom"></p>  <p>Domain:   $domform</p>
 <p>Note: login settings below  will not take effect if the user already exists  <p>Note: login settings below  will not take effect if the user already exists
 </p><p>  </p><p>
 <input type="radio" name="login" value="krb" onClick="clickkrb(this.form);">  $krbform
 Kerberos authenticated with domain   
 <input type="text" name="krbdom" size="10"  onChange="setkrb(this.form);">  
 </p><p>  </p><p>
 <input type="radio" name="login"  value="int" onClick="clickint(this.form);">   $intform
 Internally authenticated (with initial password   
 <input type="text"  name="intpwd" size="10" onChange="setint(this.form);">)  
 </p><p>  </p><p>
 <input type="radio" name="login" value="loc" onClick="clickloc(this.form);" />  $locform
 Local Authentication with argument  
 <input type="text" name="locarg" size="10"  onChange="setloc(this.form);" />  
 </p><p>  </p><p>
 <h3>Starting and Ending Dates</h3>  <h3>Starting and Ending Dates</h3>
 <input type="hidden" value='' name="pres_value">  <input type="hidden" value='' name="pres_value">
Line 654  sub get_current_classlist { Line 670  sub get_current_classlist {
                 $currentlist{$student}=1;                  $currentlist{$student}=1;
             }              }
         }          }
         return %currentlist;          return (undef,%currentlist);
     } else {      } else {
         return undef;          return ($tmp,undef);
     }      }
 }  }
   
Line 664  sub get_current_classlist { Line 680  sub get_current_classlist {
 sub menu_phase_two_drop {  sub menu_phase_two_drop {
     my $r=shift;      my $r=shift;
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
     my %currentlist=&get_current_classlist($ENV{'course.'.$cid.'.domain'},      my ($error,%currentlist)=&get_current_classlist($ENV{'course.'.$cid.'.domain'},
                                            $ENV{'course.'.$cid.'.num'});                                             $ENV{'course.'.$cid.'.num'});
       if (defined($error)) {
           $r->print('<pre>ERROR:$error</pre>');
       }
     if (!defined(%currentlist)) {       if (!defined(%currentlist)) { 
         $r->print('<font color=red>'.          $r->print("There are no students currently enrolled.\n");
                   '<h3> Could not access classlist.</h3></font>');  
     } else {      } else {
         # Print out the available choices          # Print out the available choices
         &show_drop_list($r,%currentlist);          &show_drop_list($r,%currentlist);
Line 680  sub show_drop_list { Line 698  sub show_drop_list {
     my ($r,%currentlist)=@_;      my ($r,%currentlist)=@_;
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
     $r->print(<<'END');      $r->print(<<'END');
   <script>
   function checkAll(field)
   {
       for (i = 0; i < field.length; i++)
           field[i].checked = true ;
   }
   
   function uncheckAll(field)
   {
       for (i = 0; i < field.length; i++)
           field[i].checked = false ;
   }
   </script>
   <p>
 <input type="hidden" name="phase" value="four">  <input type="hidden" name="phase" value="four">
 <table border=2>  <table border=2>
 <tr><th>&nbsp;</th><th>username</th><th>domain</th>  <tr><th>&nbsp;</th><th>username</th><th>domain</th>
Line 714  END Line 746  END
         }          }
     }      }
     $r->print('</table><br>');      $r->print('</table><br>');
     $r->print('<input type=submit value="Drop Students">');      $r->print(<<"END");
   </p><p>
   <input type="button" value="check all" onclick="javascript:checkAll(document.studentform.droplist)"> &nbsp;
   <input type="button" value="uncheck all" onclick="javascript:uncheckAll(document.studentform.droplist)"> 
   <p><input type=submit value="Drop Students"></p>
   END
 }  }
   
 # ================================================= Drop/Add from uploaded file  # ================================================= Drop/Add from uploaded file
Line 739  sub upfile_drop_add { Line 776  sub upfile_drop_add {
     my $enddate   = $ENV{'form.enddate'};      my $enddate   = $ENV{'form.enddate'};
     if ($startdate=~/\D/) { $startdate=''; }      if ($startdate=~/\D/) { $startdate=''; }
     if ($enddate=~/\D/)   { $enddate=''; }      if ($enddate=~/\D/)   { $enddate=''; }
     #      # Determine domain and desired host (home server)
     my $domain=$ENV{'form.lcdomain'};      my $domain=$ENV{'form.lcdomain'};
       my $desiredhost = $ENV{'form.lcserver'};
       if (lc($desiredhost) eq 'default') {
           $desiredhost = undef;
       } else {
           my %home_servers = &Apache::loncommon::get_home_servers($domain);
           if (! exists($home_servers{$desiredhost})) {
               $r->print('<font color="#ff0000">Error:</font>'.
                         'Invalid home server specified');
               return;
           }
       }
     # Determine authentication mechanism      # Determine authentication mechanism
     my $amode  = '';      my $amode  = '';
     my $genpwd = '';      my $genpwd = '';
     if ($ENV{'form.login'} eq 'krb') {      if ($ENV{'form.login'} eq 'krb') {
         $amode='krb4';          $amode='krb4';
         $genpwd=$ENV{'form.krbdom'};          $genpwd=$ENV{'form.krbarg'};
     } elsif ($ENV{'form.login'} eq 'int') {      } elsif ($ENV{'form.login'} eq 'int') {
         $amode='internal';          $amode='internal';
         if ((defined($ENV{'form.intpwd'})) && ($ENV{'form.intpwd'})) {          if ((defined($ENV{'form.intarg'})) && ($ENV{'form.intarg'})) {
             $genpwd=$ENV{'form.intpwd'};              $genpwd=$ENV{'form.intarg'};
         }          }
     } elsif ($ENV{'form.login'} eq 'loc') {      } elsif ($ENV{'form.login'} eq 'loc') {
         $amode='localauth';          $amode='localauth';
Line 823  sub upfile_drop_add { Line 871  sub upfile_drop_add {
                         }                          }
                     }                      }
                     if ($password) {                      if ($password) {
                         &modifystudent($domain,$username,$cid,$sec);  
                         my $reply=&Apache::lonnet::modifystudent                          my $reply=&Apache::lonnet::modifystudent
                             ($domain,$username,$id,$amode,$password,                              ($domain,$username,$id,$amode,$password,
                              $fname,$mname,$lname,$gen,$sec,$enddate,                               $fname,$mname,$lname,$gen,$sec,$enddate,
                              $startdate,$ENV{'form.forceid'});                               $startdate,$ENV{'form.forceid'},$desiredhost);
                           &modifystudent($domain,$username,$cid,$sec);
                         if ($reply ne 'ok') {                          if ($reply ne 'ok') {
                             $r->print('<p><b>'.                              $r->print('<p><b>'.
                                       'Error enrolling '.$username.': '.                                        'Error enrolling '.$username.': '.
Line 854  sub upfile_drop_add { Line 902  sub upfile_drop_add {
         if ($ENV{'form.fullup'} eq 'yes') {          if ($ENV{'form.fullup'} eq 'yes') {
             $r->print('<h3>Dropping Students</h3>');              $r->print('<h3>Dropping Students</h3>');
             #  Get current classlist              #  Get current classlist
             my %currentlist=&get_current_classlist              my ($error,%currentlist)=&get_current_classlist
                 ($ENV{'course.'.$cid.'.domain'},                  ($ENV{'course.'.$cid.'.domain'},
                  $ENV{'course.'.$cid.'.num'});                   $ENV{'course.'.$cid.'.num'});
               if (defined($error)) {
                   $r->print('<pre>ERROR:$error</pre>');
               }
             if (defined(%currentlist)) {              if (defined(%currentlist)) {
                 # Drop the students                  # Drop the students
                 foreach (@studentdata) {                  foreach (@studentdata) {
Line 870  sub upfile_drop_add { Line 921  sub upfile_drop_add {
                 # Print out list of dropped students                  # Print out list of dropped students
                 &show_drop_list($r,%currentlist);                  &show_drop_list($r,%currentlist);
             } else {              } else {
                 $r->print('<font color=red>'.                  $r->print("There are no students currently enrolled.\n");
                           '<h3>Could not access classlist</h3></font>');  
             }              }
         }          }
     } # end of unless      } # end of unless
Line 894  sub drop_student_list { Line 944  sub drop_student_list {
 # ================================================================ Main Handler  # ================================================================ Main Handler
 sub handler {  sub handler {
     my $r=shift;      my $r=shift;
     $Apache::lonxml::debug=1;  
     if ($r->header_only) {      if ($r->header_only) {
         $r->content_type('text/html');          $r->content_type('text/html');
         $r->send_http_header;          $r->send_http_header;
Line 906  sub handler { Line 955  sub handler {
         # Start page          # Start page
         $r->content_type('text/html');          $r->content_type('text/html');
         $r->send_http_header;          $r->send_http_header;
         &header($r);          $r->print(&header());
         # Phase one, initial screen          # Phase one, initial screen
         unless ($ENV{'form.phase'}) {          unless ($ENV{'form.phase'}) {
             &menu_phase_one($r);              &menu_phase_one($r);

Removed from v.1.26  
changed lines
  Added in v.1.32


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