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

version 1.26, 2002/04/16 21:02:17 version 1.29, 2002/04/23 21:03:59
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 147  to this page if the data selected is ins Line 146  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 155  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 221  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 249  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 303  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 359  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 378  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);
       # Set up domain selection form
       my $domform = &Apache::loncommon::select_dom_form($defdom,'lcdomain');    
     $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 391  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 474  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.cdomain'}.": ");
     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.cdomain'})&&($ENV{'form.cdomain'}!~/\W/)) {
  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'};
Line 547  sub menu_phase_two_enroll { Line 517  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 = &Apache::loncommon::select_dom_form($defdom,'cdomain');    
       # 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 596  Generation:  <input type="text" name="cg Line 574  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 626  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 636  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 746  sub upfile_drop_add { Line 720  sub upfile_drop_add {
     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 854  sub upfile_drop_add { Line 828  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 847  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 906  sub handler { Line 882  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.29


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