+END
}
sub phase_two_header {
@@ -316,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) &&
@@ -337,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) {
@@ -344,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);
@@ -525,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');
@@ -537,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';
@@ -721,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'});
@@ -735,20 +750,46 @@ sub menu_phase_two_view {
$r->print("There are no students currently enrolled.\n");
} else {
# Print out the available choices
- &show_class_list($r,%currentlist);
+ &show_class_list($r,'view',%currentlist);
+ }
+}
+
+# ============================================== view classlist
+sub menu_phase_two_viewcsv {
+ my $r=shift;
+ my $cid=$ENV{'request.course.id'};
+ my ($error,%currentlist)=&get_current_classlist
+ ($ENV{'course.'.$cid.'.domain'},$ENV{'course.'.$cid.'.num'});
+ if (defined($error)) {
+ if ($error =~ /^No such file or directory/) {
+ $r->print("There are no students currently enrolled.\n");
+ } else {
+ $r->print("
ERROR:$error
");
+ }
+ } elsif (!defined(%currentlist)) {
+ $r->print("There are no students currently enrolled.\n");
+ } else {
+ &show_class_list($r,'csv',%currentlist);
}
}
# =================================================== Show student list to drop
sub show_class_list {
- my ($r,%currentlist)=@_;
+ my ($r,$mode,%currentlist)=@_;
my $cid=$ENV{'request.course.id'};
- $r->print(<print(<
username
domain
ID
student name
generation
section
END
+ } elsif ($mode eq 'csv') {
+ $r->print(<print('
'.
- 'Internal error: unable to get environment '.
- 'for '.$sname.' in domain '.$sdom.'
');
+ $r->print( ($mode eq 'view' ?
+ '
' :'').
+ 'Internal error: unable to get environment '.
+ 'for '.$sname.' in domain '.$sdom.
+ ( $mode eq 'view' ?'
');
+ $r->print(' ') if ($mode eq 'view');
}
# =================================================== Show student list to drop
@@ -839,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(<
+
+