--- loncom/interface/Attic/londropadd.pm	2001/02/14 22:51:48	1.12
+++ loncom/interface/Attic/londropadd.pm	2001/09/25 18:12:43	1.16
@@ -7,6 +7,7 @@
 #
 # (TeX Content Handler
 #
+# YEAR=2000
 # 05/29/00,05/30,10/11 Gerd Kortemeyer)
 #
 # 10/11,10/12,10/16 Gerd Kortemeyer)
@@ -15,7 +16,11 @@
 # 12/08,12/12 Gerd Kortemeyer)
 #
 # 12/26,12/27,12/28,
-# 01/01/01,01/15,02/10,02/13,02/14 Gerd Kortemeyer
+# YEAR=2001
+# 01/01/01,01/15,02/10,02/13,02/14,02/22 Gerd Kortemeyer
+# 8/6 Scott Harrison
+# Guy Albertelli
+# 9/25 Gerd Kortemeyer
 
 package Apache::londropadd;
 
@@ -147,7 +152,7 @@ sub dropstudent {
         if ($key=~/^$courseid(?:\/)*(\w+)*\_st$/) {
           my $section=$1;
           if ($key eq $courseid.'_st') { $section=''; }
-          if ($section ne $csec) {
+          if (((!$section) && (!$csec)) || ($section ne $csec)) {
 	    my ($dummy,$end,$start)=split(/\_/,
                                     &Apache::lonnet::unescape($value));
             my $now=time;
@@ -257,6 +262,10 @@ function verify(vf) {
             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;
@@ -315,6 +324,7 @@ function flip(vf,tf) {
        vf.login[1].checked=true;
        vf.intpwd.value='';
        vf.krbdom.value='';
+       vf.locarg.value='';
    }
 
 }
@@ -411,14 +421,14 @@ ENDPICK
                       'id:ID/Student Number','sec:Group/Section',
                       'ipwd:Initial Password');
                    $r->print('</select></td><td>');
-                   if (defined($sone{$i})) { 
-                      $r->print($sone{$i}."</br>\n"); 
+                   if (defined($sone{$_})) { 
+                      $r->print($sone{$_}."</br>\n"); 
                    }
-	           if (defined($stwo{$i})) { 
-                      $r->print($stwo{$i}."</br>\n"); 
+	           if (defined($stwo{$_})) { 
+                      $r->print($stwo{$_}."</br>\n"); 
                    }
-	           if (defined($sthree{$i})) { 
-                      $r->print($sthree{$i}."</br>\n"); 
+	           if (defined($sthree{$_})) { 
+                      $r->print($sthree{$_}."</br>\n"); 
                    }
                    $r->print('</td></tr>');
                    $i++;
@@ -431,13 +441,22 @@ ENDPICK
 <input type=hidden name=nfields value=$i>
 <input type=hidden name=keyfields value="$keyfields">
 <h3>Login Type</h3>
-Note: this will not take effect if the user already exists<p>
-<input type=radio name=login value=krb onClick="clickkrb(this.form);">
+<p>Note: this will not take effect if the user already exists</p>
+<p>
+<input type=radio name=login value=krb onClick="clickkrb(this.form);" />
 Kerberos authenticated with domain
-<input type=text size=10 name=krbdom onChange="setkrb(this.form);"><p>
-<input type=radio name=login value=int onClick="clickint(this.form);"> 
+<input type=text size=10 name=krbdom onChange="setkrb(this.form);" />
+</p>
+<p>
+<input type=radio name=login value=int onClick="clickint(this.form);" />
 Internally authenticated (with initial password 
-<input type=text size=10 name=intpwd onChange="setint(this.form);">)
+<input type=text size=10 name=intpwd onChange="setint(this.form);" />)
+</p>
+<p>
+<input type=radio name=login value=loc onClick="clickloc(this.form);" />
+Local Authentication with argument
+<input type=text size=10 name=locarg onChange="setloc(this.form);" />
+</p>
 <h3>LON-CAPA Domain for Students</h3>
 LON-CAPA domain: <input type=text size=10 value=$defdom name=lcdomain><p>
 <h3>Starting and Ending Dates</h3>
@@ -476,7 +495,11 @@ sub enroll_single_student {
         } elsif ($ENV{'form.login'} eq 'int') {
            $amode='internal';
            $genpwd=$ENV{'form.intpwd'};
-        }
+        }  elsif ($ENV{'form.login'} eq 'loc') {
+	    $amode='localauth';
+	    $genpwd=$ENV{'form.locarg'};
+	    if (!$genpwd) { $genpwd=" "; }
+	}
         if (($amode) && ($genpwd)) {
  	  &dropstudent($ENV{'form.cdomain'},$ENV{'form.cuname'},
 		       $ENV{'request.course.id'},$ENV{'form.csec'});
@@ -520,18 +543,18 @@ function verify(vf) {
     var foundatype=0;
     var tw;
     var message='';
-    if ((vf.cuname.value!=undefined) && (vf.cuname.value!='') && 
-	(vf.cdomain.value!=undefined) && (vf.cdomain.value!='')) {
+    if ((typeof(vf.cuname.value)!="undefined") && (vf.cuname.value!='') && 
+	(typeof(vf.cdomain.value)!="undefined") && (vf.cdomain.value!='')) {
         founduname=1;
     }
-    if ((vf.cfirst.value!=undefined) && (vf.cfirst.value!='') &&
-	(vf.clast.value!=undefined) && (vf.clast.value!='')) {
+    if ((typeof(vf.cfirst.value)!="undefined") && (vf.cfirst.value!='') &&
+	(typeof(vf.clast.value)!="undefined") && (vf.clast.value!='')) {
         foundname=1;
     }
-    if ((vf.csec.value!=undefined) && (vf.csec.value!='')) {
+    if ((typeof(vf.csec.value)!="undefined") && (vf.csec.value!='')) {
         foundsec=1;
     }
-    if ((vf.cstid.value!=undefined) && (vf.cstid.value!='')) {
+    if ((typeof(vf.cstid.value)!="undefined") && (vf.cstid.value!='')) {
 	foundid=1;
     }
     if (founduname==0) {
@@ -552,6 +575,10 @@ function verify(vf) {
             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;
@@ -588,6 +615,7 @@ function setkrb(vf) {
        vf.login[0].checked=true;
        vf.krbdom.value=vf.krbdom.value.toUpperCase();
        vf.intpwd.value='';
+       vf.locarg.value='';
    }
 }
 
@@ -595,16 +623,32 @@ function setint(vf) {
     if (vf.intpwd.value!='') {
        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';
     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() {
@@ -656,7 +700,11 @@ Kerberos authenticated with domain
 <input type=radio name=login value=int onClick="clickint(this.form);"> 
 Internally authenticated (with initial password 
 <input type=text size=10 name=intpwd onChange="setint(this.form);">)
-
+<p>
+<input type=radio name=login value=loc onClick="clickloc(this.form);" />
+Local Authentication with argument
+<input type=text size=10 name=locarg onChange="setloc(this.form);" />
+</p>
 <h3>Starting and Ending Dates</h3>
 <input type="hidden" value='' name="pres_value">
 <input type="hidden" value='' name="pres_type">
@@ -767,7 +815,12 @@ sub upfile_drop_add {
                  if ((defined($ENV{'form.intpwd'})) && ($ENV{'form.intpwd'})) {
 		     $genpwd=$ENV{'form.intpwd'};
                  }
-             }
+             } elsif ($ENV{'form.login'} eq 'loc') {
+		 $amode='localauth';
+		 if ((defined($ENV{'form.locarg'})) && ($ENV{'form.locarg'})) {
+		     $genpwd=$ENV{'form.locarg'};
+                 }
+	     }
              unless (($domain=~/\W/) || ($amode eq '')) {
               $r->print('<h3>Enrolling Students</h3>');
               my $count=0;