END
@@ -166,6 +175,11 @@ END
###############################################################
###############################################################
+sub hidden_input {
+ my ($name,$value) = @_;
+ return ''."\n";
+}
+
sub print_upload_manager_header {
my ($r,$datatoken,$distotal,$krbdefdom)=@_;
my $javascript;
@@ -184,51 +198,72 @@ sub print_upload_manager_header {
} else {
$javascript=&upload_manager_javascript_forward_associate();
}
- my $javascript_validations=&javascript_validations($krbdefdom);
- $r->print(<Uploading Class List
-
-
Identify fields
-Total number of records found in file: $distotal
-Enter as many fields as you can. The system will inform you and bring you back
-to this page if the data selected is insufficient to run your class.
-
-
-
-
-
-
-
-
-
-
-ENDPICK
+ my $javascript_validations=&javascript_validations('auth',$krbdefdom);
+ my $checked=(($ENV{'form.noFirstLine'})?' checked="1"':'');
+ $r->print('
'.&mt('Uploading Class List')."
\n".
+ "\n".
+ '
'.&mt('Identify fields')."
\n");
+ $r->print("
\n".
+ &mt('Total number of records found in file: [_1].',$distotal).
+ "\n".
+ "
\n");
+ $r->print(&mt('Enter as many fields as you can. '.
+ 'The system will inform you and bring you back to '.
+ 'this page if the data selected is insufficient to '.
+ 'enroll students in your class.')."\n");
+ $r->print(&hidden_input('action','upload').
+ &hidden_input('state','got_file').
+ &hidden_input('associate','').
+ &hidden_input('datatoken',$datatoken).
+ &hidden_input('fileupload',$ENV{'form.fileupload'}).
+ &hidden_input('upfiletype',$ENV{'form.upfiletype'}).
+ &hidden_input('upfile_associate',$ENV{'form.upfile_associate'}));
+ $r->print('');
+ $r->print(''.
+ &mt('Ignore First Line'));
+ $r->print("\n".
+ '');
}
###############################################################
###############################################################
sub javascript_validations {
- my ($krbdefdom)=@_;
- my %param = ( formname => 'studentform',
- kerb_def_dom => $krbdefdom );
- my $authheader = &Apache::loncommon::authform_header(%param);
- my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
- return (< 'studentform',
+ kerb_def_dom => $krbdefdom );
+ $authheader = &Apache::loncommon::authform_header(%param);
+ }
+ my %alert = &Apache::lonlocal::texthash
+ (username => 'You need to specify the username field.',
+ authen => 'You must choose an authentication type.',
+ krb => 'You need to specify the Kerberos domain.',
+ ipass => 'You need to specify the initial password.',
+ name => 'The optional name field was not specified.',
+ snum => 'The optional student number field was not specified.',
+ section => 'The optional section or group field was not specified.',
+ email => 'The optional email address field was not specified.',
+ continue => 'Continue enrollment?',
+ );
+
+# my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
+ my $function_name =(<print(<
-
-
+
+
Login Type
Note: this will not take effect if the user already exists
@@ -505,7 +536,7 @@ ENDPICK
# ======================================================= Menu Phase Two Upload
sub print_upload_manager_form {
my $r=shift;
-
+ my $firstLine;
my $datatoken;
if (!$ENV{'form.datatoken'}) {
$datatoken=&Apache::loncommon::upfile_store($r);
@@ -514,11 +545,12 @@ sub print_upload_manager_form {
&Apache::loncommon::load_tmp_file($r);
}
my @records=&Apache::loncommon::upfile_record_sep();
+ if($ENV{'form.noFirstLine'}){$firstLine=shift(@records);}
my $total=$#records;
my $distotal=$total+1;
my $today=time;
my $halfyear=$today+15552000;
- my $defdom=$r->dir_config('lonDefDomain');
+ my $defdom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
my ($krbdef,$krbdefdom) =
&Apache::loncommon::get_kerberos_defaults($defdom);
&print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom);
@@ -553,6 +585,8 @@ sub print_upload_manager_form {
# ======================================================= Enroll single student
sub enroll_single_student {
my $r=shift;
+ # Remove non alphanumeric values from section
+ $ENV{'form.csec'}=~s/\W//g;
#
# We do the dates first because the action of making them the defaul
# in the course is entirely seperate from the action of enrolling the
@@ -620,10 +654,14 @@ sub enroll_single_student {
$r->print("unable to enroll: ".$login_result);
}
} else {
- $r->print('
ERROR '.
- 'Invalid login mode or password. '.
- 'Unable to enroll '.$ENV{'form.cuname'}.'.
');
+ }
} else {
$r->print('Invalid username or domain');
}
@@ -714,7 +752,7 @@ sub make_dates_default {
sub get_student_username_domain_form {
my $r = shift;
my $domform = &Apache::loncommon::select_dom_form
- ($r->dir_config('lonDefDomain'),'cudomain',0);
+ ($ENV{'course.'.$ENV{'request.course.id'}.'.domain'},'cudomain',0);
$r->print(<
@@ -745,16 +783,15 @@ sub print_enroll_single_student_form {
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');
+ my $defdom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
# Set up authentication forms
my ($krbdef,$krbdefdom) =
- &Apache::loncommon::get_kerberos_defaults($defdom);
- $javascript_validations=&javascript_validations($krbdefdom);
+ &Apache::loncommon::get_kerberos_defaults($domain);
+ $javascript_validations=&javascript_validations('auth',$krbdefdom);
my %param = ( formname => 'document.studentform',
kerb_def_dom => $krbdefdom,
kerb_def_auth => $krbdef
@@ -794,16 +831,16 @@ Please select an authentication mechanis
$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();
+ $javascript_validations = &javascript_validations('noauth');
$user_data_html = <User Data for $username\@$domain
@@ -923,7 +960,7 @@ sub print_html_classlist {
-Current Classlist
+Current Class List
END
if ($ENV{'form.action'} ne 'modifystudent') {
@@ -1028,7 +1065,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);
#
@@ -1140,6 +1177,11 @@ sub print_modify_student_form {
}
# determine the students starting and ending times and section
my ($starttime,$endtime,$section) = &get_enrollment_data($sname,$sdom);
+ if ($starttime =~ /^error/) {
+ $r->print('
Error
');
+ $r->print('
'.$starttime.'
');
+ return;
+ }
# Deal with date forms
my $date_table = &date_setting_table($starttime,$endtime);
#
@@ -1195,6 +1237,9 @@ END
sub modify_single_student {
my $r = shift;
#
+ # Remove non alphanumeric values from the section
+ $ENV{'form.section'} =~ s/\W//g;
+ #
# Do the date defaults first
my ($starttime,$endtime) = &get_dates_from_form();
if ($ENV{'form.makedatesdefault'}) {
@@ -1336,7 +1381,7 @@ sub get_enrollment_data {
my %roles = &Apache::lonnet::dump('roles',$sdomain,$sname);
my ($tmp) = keys(%roles);
# Bail out if we were unable to get the students roles
- return "666" if ($tmp =~ /^(con_lost|error|no_such_host)/i);
+ return ('error'.$tmp) if ($tmp =~ /^(con_lost|error|no_such_host)/i);
# Go through the roles looking for enrollment in this course
my ($end,$start) = (undef,undef);
my $section = '';
@@ -1504,26 +1549,25 @@ END
#
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(<
-