@@ -218,7 +218,7 @@ sub javascript_validations {
my $authheader = &Apache::loncommon::authform_header(%param);
my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
return (<dir_config('lonDefDomain'),'cudomain',0);
+ $r->print(<
+
+
Enroll One Student
+
+
Username:
+
+
Domain:
+
$domform
+
+
+
+
+
+END
+ return;
+}
+
sub print_enroll_single_student_form {
my $r=shift;
$r->print("
Enroll One Student
");
- my $today = time;
- my $halfyear = $today+15552000;
- my $defdom=$r->dir_config('lonDefDomain');
- # Set up authentication forms
- my ($krbdef,$krbdefdom) =
- &Apache::loncommon::get_kerberos_defaults($defdom);
- my $javascript_validations=&javascript_validations($krbdefdom);
- my %param = ( formname => 'document.studentform',
- kerb_def_dom => $krbdefdom,
- kerb_def_auth => $krbdef
- );
- my $krbform = &Apache::loncommon::authform_kerberos(%param);
- my $intform = &Apache::loncommon::authform_internal(%param);
- my $locform = &Apache::loncommon::authform_local(%param);
- # Set up domain selection form
- my $domform = &domain_form($defdom);
+ #
+ my $username = $ENV{'form.cuname'};
+ my $domain = $ENV{'form.cudomain'};
+ my $home = &Apache::lonnet::homeserver($username,$domain);
+ # $new_user flags whether we are creating a new user or using an old one
+ my $new_user = 1;
+ if ($home ne 'no_host') {
+ $new_user = 0;
+ }
+ &Apache::lonnet::logthis('home = '.$home);
+ #
+ my $user_data_html = '';
+ my $javascript_validations = '';
+ if ($new_user) {
+ my $defdom=$r->dir_config('lonDefDomain');
+ # Set up authentication forms
+ my ($krbdef,$krbdefdom) =
+ &Apache::loncommon::get_kerberos_defaults($domain);
+ $javascript_validations=&javascript_validations($krbdefdom);
+ my %param = ( formname => 'document.studentform',
+ kerb_def_dom => $krbdefdom,
+ kerb_def_auth => $krbdef
+ );
+ my $krbform = &Apache::loncommon::authform_kerberos(%param);
+ my $intform = &Apache::loncommon::authform_internal(%param);
+ my $locform = &Apache::loncommon::authform_local(%param);
+ #
+ # Set up domain selection form
+ my $homeserver_form = '';
+ my %servers = &Apache::loncommon::get_library_servers($domain);
+ $homeserver_form = '\n";
+ #
+ #
+ $user_data_html = <User Data for $username\@$domain
+
+
First Name:
+
+
Middle Name:
+
+
Last Name:
+
+
Generation:
+
+
Home Server:
+
$homeserver_form
+
+
Password
+Please select an authentication mechanism
+
+
+$krbform
+
+$intform
+
+$locform
+
+END
+ } else {
+ # User already exists. Do not worry about authentication
+ my %uenv = &Apache::lonnet::dump('environment',$domain,$username);
+ $javascript_validations = &javascript_validations_without_auth();
+ $user_data_html = <User Data for $username\@$domain
+
+
+
First Name:
+
+
+
+
Middle Name:
+
+
+
+
Last Name:
+
+
+
+
Generation:
+
+
+
+
+END
+ }
my $date_table = &date_setting_table();
- # Print it all out
+ # Print it all out
$r->print(<
-
-
+
+
+
+
-
Personal Data
-
-
First Name:
-
Middle Name:
-
Last Name:
-
Generation:
-
-
Login Data
-
Username:
-
Domain: $domform
-
Note: login settings below will not take effect if the user already exists
-
-$krbform
-
-$intform
-
-$locform
-
+$user_data_html
Course Data
@@ -805,7 +923,7 @@ sub print_html_classlist {
-Current Classlist
+Current Class List
END
if ($ENV{'form.action'} ne 'modifystudent') {
@@ -910,7 +1028,7 @@ END
$excel_workbook->set_tempdir('/home/httpd/perl/tmp');
$excel_sheet = $excel_workbook->addworksheet('classlist');
#
- my $description = 'Classlist for '.
+ my $description = 'Class List for '.
$ENV{'course.'.$ENV{'request.course.id'}.'.description'};
$excel_sheet->write($row++,0,$description);
#
@@ -1515,6 +1633,14 @@ sub upfile_drop_add {
}
$id=~tr/A-Z/a-z/;
}
+ # determine email address
+ my $email='';
+ if (defined($fields{'email'})) {
+ if (defined($entries{$fields{'email'}})) {
+ $email=$entries{$fields{'email'}};
+ unless ($email=~/^[^\@]+\@[^\@]+$/) { $email=''; }
+ }
+ }
# determine student password
my $password='';
if ($genpwd) {
@@ -1537,7 +1663,8 @@ sub upfile_drop_add {
my $reply=&Apache::lonnet::modifystudent
($domain,$username,$id,$amode,$password,
$fname,$mname,$lname,$gen,$sec,$enddate,
- $startdate,$ENV{'form.forceid'},$desiredhost);
+ $startdate,$ENV{'form.forceid'},$desiredhost,
+ $email);
if ($reply ne 'ok') {
$reply =~ s/^error://;
$r->print(' '.$username.':'.
@@ -1634,7 +1761,8 @@ The response to the request is governed
upload enrolling enroll students based on upload
drop undefined print the classlist ready to drop
drop done drop the selected students
- enrollstudent undefined print single student enroll menu
+ enrollstudent undefined print student username domain form
+ enrollstudent gotusername print single student enroll menu
enrollstudent enrolling enroll student
classlist undefined print html classlist
classlist csv print csv classlist
@@ -1702,11 +1830,13 @@ sub handler {
}
} elsif ($ENV{'form.action'} eq 'enrollstudent') {
if (! exists($ENV{'form.state'})) {
+ &get_student_username_domain_form($r);
+ } elsif ($ENV{'form.state'} eq 'gotusername') {
&print_enroll_single_student_form($r);
} elsif ($ENV{'form.state'} eq 'enrolling') {
&enroll_single_student($r);
} else {
- &print_enroll_single_student_form($r);
+ &get_student_username_domain_form($r);
}
} elsif ($ENV{'form.action'} eq 'classlist') {
if (! exists($ENV{'form.state'})) {