$Text{'populate'}
@@ -182,6 +189,7 @@ sub hidden_input {
sub print_upload_manager_header {
my ($r,$datatoken,$distotal,$krbdefdom)=@_;
my $javascript;
+ #
if (! exists($ENV{'form.upfile_associate'})) {
$ENV{'form.upfile_associate'} = 'forward';
}
@@ -197,7 +205,20 @@ sub print_upload_manager_header {
} else {
$javascript=&upload_manager_javascript_forward_associate();
}
- my $javascript_validations=&javascript_validations('auth',$krbdefdom);
+ #
+ # Deal with restored settings
+ my $password_choice = '';
+ if (exists($ENV{'form.ipwd_choice'}) &&
+ $ENV{'form.ipwd_choice'} ne '') {
+ # If a column was specified for password, assume it is for an
+ # internal password. This is a bug waiting to be filed (could be
+ # local or krb auth instead of internal) but I do not have the
+ # time to mess around with this now.
+ $password_choice = 'int';
+ }
+ #
+ my $javascript_validations=&javascript_validations('auth',$krbdefdom,
+ $password_choice);
my $checked=(($ENV{'form.noFirstLine'})?' checked="1"':'');
$r->print('
'.&mt('Uploading Class List')."
\n".
"\n".
@@ -231,11 +252,13 @@ sub javascript_validations {
my $authheader;
if ($mode eq 'auth') {
my %param = ( formname => 'studentform',
- kerb_def_dom => $krbdefdom );
+ kerb_def_dom => $krbdefdom,
+ curr_authtype => $curr_authtype);
$authheader = &Apache::loncommon::authform_header(%param);
} elsif ($mode eq 'createcourse') {
my %param = ( formname => 'ccrs',
- kerb_def_dom => $krbdefdom );
+ kerb_def_dom => $krbdefdom,
+ curr_authtype => $curr_authtype );
$authheader = &Apache::loncommon::authform_header(%param);
} elsif ($mode eq 'modifycourse') {
my %param = ( formname => 'cmod',
@@ -263,12 +286,10 @@ sub javascript_validations {
my $function_name =(< $krbdefdom,
kerb_def_auth => $krbdef
);
+ if (exists($ENV{'form.ipwd_choice'}) &&
+ defined($ENV{'form.ipwd_choice'}) &&
+ $ENV{'form.ipwd_choice'} ne '') {
+ $param{'curr_authtype'} = 'int';
+ }
my $krbform = &Apache::loncommon::authform_kerberos(%param);
my $intform = &Apache::loncommon::authform_internal(%param);
my $locform = &Apache::loncommon::authform_local(%param);
@@ -595,6 +621,7 @@ sub print_upload_manager_footer {
###############################################################
sub print_upload_manager_form {
my $r=shift;
+
my $firstLine;
my $datatoken;
if (!$ENV{'form.datatoken'}) {
@@ -611,23 +638,41 @@ sub print_upload_manager_form {
my $distotal=$total+1;
my $today=time;
my $halfyear=$today+15552000;
+ #
+ # Restore memorized settings
+ &Apache::loncommon::restore_course_settings
+ ('enrollment_upload',{ 'username_choice' => 'scalar', # column settings
+ 'names_choice' => 'scalar',
+ 'fname_choice' => 'scalar',
+ 'mname_choice' => 'scalar',
+ 'lname_choice' => 'scalar',
+ 'gen_choice' => 'scalar',
+ 'id_choice' => 'scalar',
+ 'sec_choice' => 'scalar',
+ 'ipwd_choice' => 'scalar',
+ 'email_choice' => 'scalar',
+ });
+ #
+ # Determine kerberos parameters as appropriate
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);
my $i;
my $keyfields;
if ($total>=0) {
- my @field=(['username',&mt('Username')],
- ['names',&mt('Last Name, First Names')],
- ['fname',&mt('First Name')],
- ['mname',&mt('Middle Names/Initials')],
- ['lname',&mt('Last Name')],
- ['gen',&mt('Generation')],
- ['id',&mt('ID/Student Number')],
- ['sec',&mt('Group/Section')],
- ['ipwd',&mt('Initial Password')],
- ['email',&mt('EMail Address')]);
+ my @field=
+ (['username',&mt('Username'), $ENV{'form.username_choice'}],
+ ['names',&mt('Last Name, First Names'),$ENV{'form.names_choice'}],
+ ['fname',&mt('First Name'), $ENV{'form.fname_choice'}],
+ ['mname',&mt('Middle Names/Initials'),$ENV{'form.mname_choice'}],
+ ['lname',&mt('Last Name'), $ENV{'form.lname_choice'}],
+ ['gen', &mt('Generation'), $ENV{'form.gen_choice'}],
+ ['id', &mt('ID/Student Number'),$ENV{'form.id_choice'}],
+ ['sec', &mt('Group/Section'), $ENV{'form.sec_choice'}],
+ ['ipwd', &mt('Initial Password'),$ENV{'form.ipwd_choice'}],
+ ['email',&mt('EMail Address'), $ENV{'form.email_choice'}]);
if ($ENV{'form.upfile_associate'} eq 'reverse') {
&Apache::loncommon::csv_print_samples($r,\@records);
$i=&Apache::loncommon::csv_print_select_table($r,\@records,
@@ -655,7 +700,7 @@ sub enroll_single_student {
$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
+ # in the course is entirely separate from the action of enrolling the
# student. Also, a failure in setting the dates as default is not fatal
# to the process of enrolling / modifying a student.
my ($startdate,$enddate) = &get_dates_from_form();
@@ -1056,7 +1101,7 @@ sub print_drop_menu {
# ============================================== view classlist
sub print_html_classlist {
- my $r=shift;
+ my ($r,$mode) = @_;
if (! exists($ENV{'form.sortby'})) {
$ENV{'form.sortby'} = 'username';
}
@@ -1064,94 +1109,119 @@ sub print_html_classlist {
$ENV{'form.Status'} = 'Active';
}
my $status_select = &Apache::lonhtmlcommon::StatusOptions
- ($ENV{'form.Status'},'studentform');
- my $CCL=&mt('Current Class List');
- $r->print(<
-
-
-$CCL
-
-END
+ ($ENV{'form.Status'});
+ my $cid=$ENV{'request.course.id'};
+ my $cdom=$ENV{'course.'.$cid.'.domain'};
+ my $cnum=$ENV{'course.'.$cid.'.num'};
+ #
+ # List course personnel
+ my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum);
+ #
+ if (! defined($ENV{'form.output'}) ||
+ $ENV{'form.output'} !~ /^(csv|excel|html)$/ ) {
+ $ENV{'form.output'} = 'html';
+ }
+ #
+ $r->print('
');
+ foreach my $role (sort keys %coursepersonnel) {
+ next if ($role =~ /^\s*$/);
+ $r->print('
');
my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist();
if (! defined($classlist)) {
$r->print(&mt('There are no students currently enrolled.')."\n");
} else {
# Print out the available choices
if ($ENV{'form.action'} eq 'modifystudent') {
- &show_class_list($r,'view','modify','modifystudent',
+ &show_class_list($r,'view','modify',
$ENV{'form.Status'},$classlist,$keylist);
} else {
- &show_class_list($r,'view','aboutme','classlist',
+ &Apache::lonnet::logthis('showing class list '.$ENV{'form.output'});
+
+ &show_class_list($r,$ENV{'form.output'},'aboutme',
$ENV{'form.Status'},$classlist,$keylist);
}
}
}
-# ============================================== view classlist
-sub print_formatted_classlist {
- my $r=shift;
- my $mode = shift;
- my $cid=$ENV{'request.course.id'};
- my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist();
- if (! defined($classlist)) {
- $r->print(&mt('There are no students currently enrolled.')."\n");
- } else {
- &show_class_list($r,$mode,'nolink','csv',
- $ENV{'form.Status'},$classlist,$keylist);
- }
-}
-
# =================================================== Show student list to drop
sub show_class_list {
- my ($r,$mode,$linkto,$action,$statusmode,$classlist,$keylist)=@_;
+ my ($r,$mode,$linkto,$statusmode,$classlist,$keylist)=@_;
my $cid=$ENV{'request.course.id'};
#
# Variables for excel output
- my ($excel_workbook, $excel_sheet, $excel_filename,$row);
+ my ($excel_workbook, $excel_sheet, $excel_filename,$row,$format);
+ #
+ # Variables for csv output
+ my ($CSVfile,$CSVfilename);
#
my $sortby = $ENV{'form.sortby'};
- if ($sortby !~ /^(username|domain|section|fullname|id)$/) {
+ if ($sortby !~ /^(username|domain|section|fullname|id|start|end)$/) {
$sortby = 'username';
}
# Print out header
- if ($mode eq 'view') {
+ $r->print(<
+
+END
+ if ($mode eq 'html' || $mode eq 'view') {
if ($linkto eq 'aboutme') {
$r->print(&mt('Select a user name to view the users personal page.'));
} elsif ($linkto eq 'modify') {
$r->print(&mt('Select a user name to modify the students information'));
}
my %lt=&Apache::lonlocal::texthash(
- 'usrn' => "username",
- 'dom' => "domain",
- 'sn' => "student name",
- 'sec' => "section",
+ 'usrn' => "username",
+ 'dom' => "domain",
+ 'sn' => "student name",
+ 'sec' => "section",
+ 'start' => "start date",
+ 'end' => "end date",
);
$r->print(<