--- loncom/interface/Attic/londropadd.pm 2002/05/09 15:56:02 1.42 +++ loncom/interface/Attic/londropadd.pm 2002/09/13 15:33:39 1.49 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to drop and add students in courses # -# $Id: londropadd.pm,v 1.42 2002/05/09 15:56:02 matthew Exp $ +# $Id: londropadd.pm,v 1.49 2002/09/13 15:33:39 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -59,15 +59,13 @@ use Apache::Constants qw(:common :http R # ================================================================ Print header sub header { + my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager'); return(< LON-CAPA Enrollment Manager - - -

$ENV{'course.'.$ENV{'request.course.id'}.'.description'}

-

Enrollment Manager

+$bodytag
ENDHEAD @@ -129,7 +127,7 @@ sub domain_form { $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); + my %servers = &Apache::loncommon::get_library_servers($dom); foreach my $server (keys(%servers)) { $select_menus{$dom}->{'select2'}->{$server} = "$server $servers{$server}"; @@ -144,24 +142,17 @@ sub domain_form { # ============================================================== Menu Phase One sub menu_phase_one { my $r=shift; - my $upfile_select=&Apache::loncommon::upfile_select_html(); - $r->print(< -
-

Upload a courselist

-$upfile_select -

-


-

Enroll a single student

-

-
-

Classlist

-

-

-
-

Drop students

-

-ENDUPFORM + $r->print(< +Upload a course list +

+Enroll a single student +

+View Classlist +

+Drop Students +

+END } sub phase_two_header { @@ -317,19 +308,34 @@ function verify(vf) { verify_message(vf,founduname,foundpwd,foundname,foundid,foundsec); } +// +// vf = this.form +// tf = column number +// +// values of nw +// +// 0 = none +// 1 = username +// 2 = names (lastname, firstnames) +// 3 = fname (firstname) +// 4 = mname (middlename) +// 5 = lname (lastname) +// 6 = gen (generation) +// 7 = id +// 8 = section +// 9 = ipwd (password) +// function flip(vf,tf) { var nw=eval('vf.f'+tf+'.selectedIndex'); var i; + // make sure no other columns are labeled the same as this one for (i=0;i<=vf.nfields.value;i++) { if ((i!=tf) && (eval('vf.f'+i+'.selectedIndex')==nw)) { eval('vf.f'+i+'.selectedIndex=0;') } } - if (tf==1 && nw!=0) { - for (i=2;i<=5;i++) { - eval('vf.f'+i+'.selectedIndex=0;') - } - } + // If we set this to 'lastname, firstnames', clear out all the ones + // set to 'fname','mname','lname','gen' (3,4,5,6) currently. if (nw==2) { for (i=0;i<=vf.nfields.value;i++) { if ((eval('vf.f'+i+'.selectedIndex')>=3) && @@ -338,6 +344,8 @@ function flip(vf,tf) { } } } + // If we set this to one of 'fname','mname','lname','gen' (3,4,5,6), + // clear out any that are set to 'lastname, firstnames' (2) if ((nw>=3) && (nw<=6)) { for (i=0;i<=vf.nfields.value;i++) { if (eval('vf.f'+i+'.selectedIndex')==2) { @@ -345,6 +353,8 @@ function flip(vf,tf) { } } } + // If we set the password, make the password form below correspond to + // the new value. if (nw==9) { changed_radio('int',document.studentform); set_auth_radio_buttons('int',document.studentform); @@ -526,7 +536,7 @@ sub enroll_single_student { if (lc($desiredhost) eq 'default') { $desiredhost = undef; } else { - my %home_servers = &Apache::loncommon::get_home_servers($domain); + my %home_servers =&Apache::loncommon::get_library_servers($domain); if (! exists($home_servers{$desiredhost})) { $r->print('Error:'. 'Invalid home server specified'); @@ -538,7 +548,8 @@ sub enroll_single_student { my $amode=''; my $genpwd=''; if ($ENV{'form.login'} eq 'krb') { - $amode='krb4'; + $amode='krb'; + $amode.=$ENV{'form.krbver'}; $genpwd=$ENV{'form.krbarg'}; } elsif ($ENV{'form.login'} eq 'int') { $amode='internal'; @@ -722,7 +733,10 @@ sub menu_phase_two_drop { # ============================================== view classlist sub menu_phase_two_view { my $r=shift; - $r->print("

Current Classlist

"); + $r->print(<Current Classlist      +CSV format
+END my $cid=$ENV{'request.course.id'}; my ($error,%currentlist)=&get_current_classlist ($ENV{'course.'.$cid.'.domain'},$ENV{'course.'.$cid.'.num'}); @@ -881,6 +895,32 @@ END END } +# +# Print out the initial form to get the courselist file +# +sub print_first_courselist_upload_form { + my $r=shift; + my $upfile_select=&Apache::loncommon::upfile_select_html(); + my $create_classlist_help = + &Apache::loncommon::help_open_topic("Course_Create_Class_List", + "How do I create a class list from a spreadsheet"); + my $create_csv_help = + &Apache::loncommon::help_open_topic("Course_Convert_To_CSV", + "How do I create a CSV file from a spreadsheet"); + $r->print(< +
+

Upload a courselist

+$upfile_select +

+
+$create_classlist_help
+$create_csv_help + +ENDUPFORM + return; +} + # ================================================= Drop/Add from uploaded file sub upfile_drop_add { my $r=shift; @@ -909,7 +949,7 @@ sub upfile_drop_add { if (lc($desiredhost) eq 'default') { $desiredhost = undef; } else { - my %home_servers = &Apache::loncommon::get_home_servers($domain); + my %home_servers = &Apache::loncommon::get_library_servers($domain); if (! exists($home_servers{$desiredhost})) { $r->print('Error:'. 'Invalid home server specified'); @@ -920,7 +960,8 @@ sub upfile_drop_add { my $amode = ''; my $genpwd = ''; if ($ENV{'form.login'} eq 'krb') { - $amode='krb4'; + $amode='krb'; + $amode.=$ENV{'form.krbver'}; $genpwd=$ENV{'form.krbarg'}; } elsif ($ENV{'form.login'} eq 'int') { $amode='internal'; @@ -1088,6 +1129,9 @@ sub handler { $r->send_http_header; return OK; } + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['enroll','drop','view','phase', + 'viewcsv','uplist']); # Needs to be in a course if (($ENV{'request.course.fn'}) && (&Apache::lonnet::allowed('cst',$ENV{'request.course.id'}))) { @@ -1109,7 +1153,9 @@ sub handler { } } if ($ENV{'form.phase'} eq 'two') { - if ($ENV{'form.fileupload'}) { + if ($ENV{'form.uplist'}) { + &print_first_courselist_upload_form($r); + } elsif ($ENV{'form.fileupload'}) { &menu_phase_two_upload($r); } elsif ($ENV{'form.enroll'}) { &menu_phase_two_enroll($r);