--- loncom/interface/Attic/londropadd.pm 2000/12/26 16:39:28 1.1 +++ loncom/interface/Attic/londropadd.pm 2000/12/26 21:40:26 1.2 @@ -54,7 +54,133 @@ sub handler { action="/adm/dropadd" name="studentform"> <h2>Course: $ENV{'course.'.$ENV{'request.course.id'}.'.description'}</h2> ENDHEAD - +# --------------------------------------------------- Phase one, initial screen + unless ($ENV{'form.phase'}) { + $r->print(<<ENDUPFORM); +<input type=hidden name=phase value=two> +<hr> +<h3>Upload a courselist</h3> +<input type=file name=upfile size=50> +<br>Type: <select name=upfiletype> +<option value=csv>CSV (comma separated values, spreadsheet)</option> +<option value=space>Space separated</option> +<option value=tab>Tabulator separated</option> +<option value=xml>HTML/XML</option> +</select> +<p><input type=submit name=fileupload value="Upload Courselist"> +<hr> +<h3>Enroll a single student</h3> +<p><input type=submit name=enroll value="Enroll Student"> +<hr> +<h3>Drop a student</h3> +<p><input type=submit name=drop value="Drop Student"> +ENDUPFORM + } +# ------------------------------------------------------------------- Phase two + if ($ENV{'form.phase'} eq 'two') { + if ($ENV{'form.fileupload'}) { + my $datatoken=Apache::lonnet::reply( + 'tmpput:'.Apache::lonnet::escape($ENV{'form.upfile'}), + $r->dir_config('lonHostID')); + my $separator=''; + my $remove=''; + if ($ENV{'form.upfiletype'} eq 'csv') { + $separator='\"\,\s*\"'; + $remove='"'; + } elsif ($ENV{'form.upfiletype'} eq 'space') { + $separator='\s+'; + } elsif ($ENV{'form.upfiletype'} eq 'tab') { + $separator='\t+'; + } elsif ($ENV{'form.upfiletype'} eq 'xml') { + } + my @lines=split(/\n/,$ENV{'form.upfile'}); + my $total=$#lines+1; + $r->print(<<ENDPICK); +<input type=hidden name=phase value=three> +<input type=hidden name=datatoken value="$datatoken"> +<input type=hidden name=upfiletype value=$ENV{'form.upfiletype'}> +<hr> +<h3>Identify fields</h3> +Total number of students: $total +<table border=2><tr><th>Field</th><th>Samples</th></tr> +ENDPICK + my @sone; my @stwo; my @sthree; my $nfields=0; + if ($#lines>=0) { + $lines[0]=~s/^$remove//; + $lines[0]=~s/$remove$//; + @sone=split(/$separator/,$lines[0]); + $nfields=$#sone; + if ($#lines>=1) { + $lines[1]=~s/^$remove//; + $lines[1]=~s/$remove$//; + @stwo=split(/$separator/,$lines[1]); + $nfields=$#stwo; + } + if ($#lines>=2) { + $lines[2]=~s/^$remove//; + $lines[2]=~s/$remove$//; + @sthree=split(/$separator/,$lines[2]); + $nfields=$#sthree; + } + my $i; + for ($i=0;$i<=$nfields;$i++) { + $r->print('<tr><td><select name=f'.$i.'>'); + map { + my ($value,$display)=split(/\:/,$_); + $r->print('<option value='.$value.'>'.$display. + '</option>'); + } ('none: ','username:Username', + 'names:Last Name, First Names', + 'fname:First Name','mname:Middle Names/Initials', + 'lname:Last Name','gen:Generation', + 'id:ID/Student Number','sec:Group/Section'); + $r->print('</select></td><td>'); + if (defined($sone[$i])) { + $r->print($sone[$i]."</br>\n"); + } + if (defined($stwo[$i])) { + $r->print($stwo[$i]."</br>\n"); + } + if (defined($sthree[$i])) { + $r->print($sthree[$i]."</br>\n"); + } + $r->print('</td></tr>'); + } + } + $r->print( + '</table><p><input type=submit value="Submit Field Selection">'); + } elsif ($ENV{'form.enroll'}) { + } elsif ($ENV{'form.drop'}) { + } + } +# ----------------------------------------------------------------- Phase three + if ($ENV{'form.phase'} eq 'three') { + if ($ENV{'form.datatoken'}) { + my $separator=''; + my $remove=''; + if ($ENV{'form.upfiletype'} eq 'csv') { + $separator='\"\,\s*\"'; + $remove='"'; + } elsif ($ENV{'form.upfiletype'} eq 'space') { + $separator='\s+'; + } elsif ($ENV{'form.upfiletype'} eq 'tab') { + $separator='\t+'; + } elsif ($ENV{'form.upfiletype'} eq 'xml') { + } + map { + my $line=$_; + $line=~s/^$remove//; + $line=~s/$remove$//; + my @entries=split(/$separator/,$line); + $r->print($entries[8].'<br>'); + } split(/\n/, + &Apache::lonnet::unescape(Apache::lonnet::reply( + 'tmpget:'.$ENV{'form.datatoken'},$r->dir_config('lonHostID'))) + ); + + } + } +# ------------------------------------------------------------------------- End $r->print('</form></body></html>'); } else { # ----------------------------- Not in a course, or not allowed to modify parms