--- loncom/interface/Attic/londropadd.pm 2000/12/26 21:40:26 1.2 +++ loncom/interface/Attic/londropadd.pm 2000/12/27 17:58:45 1.3 @@ -14,7 +14,7 @@ # 11/20,11/21,11/22,11/23,11/24,11/25,11/27,11/28, # 12/08,12/12 Gerd Kortemeyer) # -# 12/26 Gerd Kortemeyer +# 12/26, 12/27 Gerd Kortemeyer package Apache::londropadd; @@ -95,6 +95,9 @@ ENDUPFORM } my @lines=split(/\n/,$ENV{'form.upfile'}); my $total=$#lines+1; + $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/; + my $krbdefdom=$1; + $krbdefdom=~tr/a-z/A-Z/; $r->print(<<ENDPICK); <input type=hidden name=phase value=three> <input type=hidden name=datatoken value="$datatoken"> @@ -102,6 +105,125 @@ ENDUPFORM <hr> <h3>Identify fields</h3> Total number of students: $total +<script> +function verify(vf) { + var founduname=0; + var foundpwd=0; + var foundname=0; + var foundid=0; + var foundsec=0; + var foundatype=0; + var tw; + var message=''; + for (i=0;i<=vf.nfields.value;i++) { + tw=eval('vf.f'+i+'.selectedIndex'); + if (tw==1) { founduname=1; } + if ((tw>=2) && (tw<=6)) { foundname=1; } + if (tw==7) { foundid=1; } + if (tw==8) { foundsec=1; } + if (tw==9) { foundpwd=1; } + } + if (founduname==0) { + alert('You need to specify at least the username field'); + return; + } + if (vf.login[0].checked) { + foundatype=1; + if (vf.krbdom.value=='') { + alert('You need to specify the Kerberos domain'); + return; + } + } + if (vf.login[1].checked) { + foundatype=1; + if ((vf.intpwd.value=='') && (foundpwd==0)) { + alert('You need to specify the initial password'); + return; + } + } + if (foundatype==0) { + alert('You need to set the login type'); + return; + } + if (foundname==0) { message='No name fields specified. '; } + if (foundid==0) { message+='No ID or student number field specified. '; } + if (foundsec==0) { message+='No section or group field specified. '; } + message+='Complete enrollment?'; + if (confirm(message)) { + vf.submit(); + } +} + +function flip(vf,tf) { + var nw=eval('vf.f'+tf+'.selectedIndex'); + var i; + for (i=0;i<=vf.nfields.value;i++) { + if ((i!=tf) && (eval('vf.f'+i+'.selectedIndex')==nw)) { + eval('vf.f'+i+'.selectedIndex=0;') + } + } + if (nw==2) { + for (i=0;i<=vf.nfields.value;i++) { + if ((eval('vf.f'+i+'.selectedIndex')>=3) && + (eval('vf.f'+i+'.selectedIndex')<=6)) { + eval('vf.f'+i+'.selectedIndex=0;') + } + } + } + if ((nw>=3) && (nw<=6)) { + for (i=0;i<=vf.nfields.value;i++) { + if (eval('vf.f'+i+'.selectedIndex')==2) { + eval('vf.f'+i+'.selectedIndex=0;') + } + } + } + if (nw==9) { + vf.login[1].checked=true; + vf.intpwd.value=''; + vf.krbdom.value=''; + } + +} + +function clearpwd(vf) { + var i; + for (i=0;i<=vf.nfields.value;i++) { + if (eval('vf.f'+i+'.selectedIndex')==9) { + eval('vf.f'+i+'.selectedIndex=0;') + } + } +} + +function setkrb(vf) { + if (vf.krbdom.value!='') { + clearpwd(vf); + vf.login[0].checked=true; + vf.krbdom.value=vf.krbdom.value.toUpperCase(); + vf.intpwd.value=''; + } +} + +function setint(vf) { + if (vf.intpwd.value!='') { + clearpwd(vf); + vf.login[1].checked=true; + vf.krbdom.value=''; + } +} + +function clickkrb(vf) { + vf.krbdom.value='$krbdefdom'; + clearpwd(vf); + vf.intpwd.value=''; +} + +function clickint(vf) { + vf.krbdom.value=''; +} + + + +</script> <table border=2><tr><th>Field</th><th>Samples</th></tr> ENDPICK my @sone; my @stwo; my @sthree; my $nfields=0; @@ -124,7 +246,8 @@ ENDPICK } my $i; for ($i=0;$i<=$nfields;$i++) { - $r->print('<tr><td><select name=f'.$i.'>'); + $r->print('<tr><td><select name=f'.$i. + ' onChange="flip(this.form,'.$i.');">'); map { my ($value,$display)=split(/\:/,$_); $r->print('<option value='.$value.'>'.$display. @@ -133,7 +256,8 @@ ENDPICK 'names:Last Name, First Names', 'fname:First Name','mname:Middle Names/Initials', 'lname:Last Name','gen:Generation', - 'id:ID/Student Number','sec:Group/Section'); + '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"); @@ -147,8 +271,18 @@ ENDPICK $r->print('</td></tr>'); } } - $r->print( - '</table><p><input type=submit value="Submit Field Selection">'); + $r->print(<<ENDPICK); +</table> +<input type=hidden name=nfields value=$nfields> +<h3>Login Type</h3> +<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);"> +Internally authenticated (with initial password +<input type=text size=10 name=intpwd onChange="setint(this.form);">)<p> +<input type=button onClick="verify(this.form)" value="Submit Selection"> +ENDPICK } elsif ($ENV{'form.enroll'}) { } elsif ($ENV{'form.drop'}) { }