$lt{'ac'}
+
$lt{'ac'}
$actionselect
@@ -2168,7 +2198,7 @@ END
}
}
}
- $output .= '';
}
$output .= "\n".''."\n".
&Apache::loncommon::start_data_table().
@@ -2303,6 +2333,11 @@ END
$grpfilter = 'all';
}
}
+ my %ltstatus = &Apache::lonlocal::texthash(
+ Active => 'Active',
+ Future => 'Future',
+ Expired => 'Expired',
+ );
# Get groups, role, permanent e-mail so we can sort on them if
# necessary.
foreach my $user (keys(%{$userlist})) {
@@ -2457,7 +2492,7 @@ END
$cellentry = ''.&mt('auto').' Change ';
$autocount ++;
} else {
- $cellentry = '';
}
$r->print("$cellentry \n");
} else {
@@ -2502,7 +2537,7 @@ END
}
}
$r->print(' ');
+ 'actionlist" value="'.$checkval.'" />');
} else {
$r->print(' ');
}
@@ -2515,6 +2550,12 @@ END
$r->print(''.&print_username_link($mode,\%in).' ');
} elsif (($item eq 'start' || $item eq 'end') && ($actionselect)) {
$r->print(''.$in{$item}.' '."\n");
+ } elsif ($item eq 'status') {
+ my $showitem = $in{$item};
+ if (defined($ltstatus{$in{$item}})) {
+ $showitem = $ltstatus{$in{$item}};
+ }
+ $r->print(''.$showitem.' '."\n");
} else {
$r->print(''.$in{$item}.' '."\n");
}
@@ -2531,7 +2572,7 @@ END
}
if ($env{'course.'.$env{'request.course.id'}.'.internal.showphoto'}) {
if ($displayphotos eq 'on' && $role eq 'st' && $in{'photo'} ne '') {
- $r->print(' ');
+ $r->print(' ');
} else {
$r->print(' ');
}
@@ -2818,8 +2859,8 @@ sub select_actions {
}
}
if ($choices{'sections'}) {
- $output .= ' '."\n".
- ' '."\n";
+ $output .= ' '."\n".
+ ' '."\n";
}
}
return $output;
@@ -2997,7 +3038,7 @@ ENDJS
$output .= $info.$secbox;
}
$output .= ''.
-'
'."\n".
+' '."\n".
'';
return $output;
}
@@ -3218,7 +3259,7 @@ sub show_drop_list {
$check_uncheck_js
-
+
END
my ($indexhash,$keylist) = &make_keylist_array();
my $studentcount = 0;
@@ -3336,7 +3377,7 @@ END
#
$r->print(&Apache::loncommon::start_data_table_row());
$r->print(<<"END");
-
+
$username
$domain
$id
@@ -3355,10 +3396,14 @@ END
'ua' => "uncheck all",
);
$r->print(<<"END");
-
-
-
-
+
+
+
+
+
+
+
+
END
return;
}
@@ -3369,10 +3414,13 @@ END
sub print_first_users_upload_form {
my ($r,$context) = @_;
my $str;
- $str = ' ';
+ $str = ' ';
$str .= ' ';
$str .= ' ';
- $str .= "".&mt('Upload a file containing information about users')." \n";
+ $str .= ''.&mt('Upload a file containing information about users').' '."\n";
+ $str .= ''
+ .&mt('Please upload an UTF8 encoded file to ensure a correct character encoding in your classlist.')
+ .'
'."\n";
$str .= &Apache::loncommon::upfile_select_html();
$str .= '';
$str .= &Apache::loncommon::help_open_topic("Course_Create_Class_List",
@@ -3385,7 +3433,7 @@ sub print_first_users_upload_form {
$str .= ' '.
&mt('Ignore First Line')."
\n";
$str .= ' '." \n";
+ &mt('Next').'" />'." \n";
$str .= &Apache::loncommon::end_page();
$r->print($str);
return;
@@ -3430,7 +3478,8 @@ sub upfile_drop_add {
'ipwd_choice' => 'scalar',
'email_choice' => 'scalar',
'role_choice' => 'scalar',
- 'domain_choice' => 'scalar'});
+ 'domain_choice' => 'scalar',
+ 'inststatus_choice' => 'scalar'});
#
my ($startdate,$enddate) = &get_dates_from_form();
if ($env{'form.makedatesdefault'}) {
@@ -3513,6 +3562,7 @@ sub upfile_drop_add {
'permanentemail','id');
my %canmodify;
if (&Apache::lonnet::allowed('mau',$domain)) {
+ push(@userinfo,'inststatus');
foreach my $field (@userinfo) {
$canmodify{$field} = 1;
}
@@ -3561,6 +3611,8 @@ sub upfile_drop_add {
} else {
$r->print(''.&mt('Adding/Modifying Users')." \n\n");
}
+ $r->rflush;
+
my %counts = (
user => 0,
auth => 0,
@@ -3636,8 +3688,8 @@ sub upfile_drop_add {
if ($entries{$fields{'username'}}
ne &LONCAPA::clean_username($entries{$fields{'username'}})) {
$r->print(' '.
- &mt('[_1] : Unacceptable username for user [_2] [_3] [_4] [_5]',
- $entries{$fields{'username'}},$fname,$mname,$lname,$gen));
+ &mt('[_1]: Unacceptable username for user [_2] [_3] [_4] [_5]',
+ ''.$entries{$fields{'username'}}.' ',$fname,$mname,$lname,$gen));
next;
} else {
if ($entries{$fields{'domain'}}
@@ -3656,10 +3708,10 @@ sub upfile_drop_add {
$entries{$fields{'sec'}} =~ s/\W//g;
my $item = $entries{$fields{'sec'}};
if ($item eq "none" || $item eq 'all') {
- $r->print(' '.&mt('[_1] : Unable to enroll user [_2] [_3] [_4] [_5] in a section named "[_6]" - this is a reserved word.',$username,$fname,$mname,$lname,$gen,$item));
+ $r->print(' '.&mt('[_1]: Unable to enroll user [_2] [_3] [_4] [_5] in a section named "[_6]" - this is a reserved word.',''.$username.' ',$fname,$mname,$lname,$gen,$item));
next;
} elsif (exists($curr_groups{$item})) {
- $r->print(' '.&mt('[_1] : Unable to enroll user [_2] [_3] [_4] [_5] in a section named "[_6]" - this is a course group.',$username,$fname,$mname,$lname,$gen,$item).' '.&mt('Section names and group names must be distinct.'));
+ $r->print(' '.&mt('[_1]: Unable to enroll user [_2] [_3] [_4] [_5] in a section named "[_6]" - this is a course group.',''.$username.' ',$fname,$mname,$lname,$gen,$item).' '.&mt('Section names and group names must be distinct.'));
next;
} else {
push(@secs,$item);
@@ -3671,7 +3723,7 @@ sub upfile_drop_add {
if (ref($userlist{$username.':'.$userdomain}) eq 'ARRAY') {
my $currsec = $userlist{$username.':'.$userdomain}[$secidx];
if ($currsec ne $env{'request.course.sec'}) {
- $r->print(' '.&mt('[_1] : Unable to enroll user [_2] [_3] [_4] [_5] in a section named "[_6]".',$username,$fname,$mname,$lname,$gen,$secs[0]).' ');
+ $r->print(' '.&mt('[_1]: Unable to enroll user [_2] [_3] [_4] [_5] in a section named "[_6]".',''.$username.' ',$fname,$mname,$lname,$gen,$secs[0]).' ');
if ($currsec eq '') {
$r->print(&mt('This user already has an active/future student role in the course, unaffiliated to any section.'));
@@ -3700,7 +3752,15 @@ sub upfile_drop_add {
if (defined($fields{'email'})) {
if (defined($entries{$fields{'email'}})) {
$email=$entries{$fields{'email'}};
- unless ($email=~/^[^\@]+\@[^\@]+$/) { $email=''; } }
+ unless ($email=~/^[^\@]+\@[^\@]+$/) { $email=''; }
+ }
+ }
+ # determine affiliation
+ my $inststatus='';
+ if (defined($fields{'inststatus'})) {
+ if (defined($entries{$fields{'inststatus'}})) {
+ $inststatus=$entries{$fields{'inststatus'}};
+ }
}
# determine user password
my $password = $genpwd;
@@ -3721,8 +3781,13 @@ sub upfile_drop_add {
}
if ($role eq '') {
my $rolestr = join(', ',@permitted_roles);
- $r->print(' '.
- &mt('[_1] : You do not have permission to add the requested role [_2] for the user.',$entries{$fields{'username'}},$entries{$fields{'role'}}).' '.&mt('Allowable role(s) is/are: [_1].',$rolestr)."\n");
+ $r->print(' '
+ .&mt('[_1]: You do not have permission to add the requested role [_2] for the user.'
+ ,''.$entries{$fields{'username'}}.' '
+ ,$entries{$fields{'role'}})
+ .' '
+ .&mt('Allowable role(s) is/are: [_1].',$rolestr)."\n"
+ );
next;
}
}
@@ -3778,7 +3843,7 @@ sub upfile_drop_add {
}
}
my @newinfo = (\$fname,\$mname,\$lname,\$gen,\$email,\$id);
- for (my $i=0; $i<@userinfo; $i++) {
+ for (my $i=0; $i<@newinfo; $i++) {
if (${$newinfo[$i]} ne '') {
if (!$canmodify{$userinfo[$i]}) {
${$newinfo[$i]} = '';
@@ -3827,7 +3892,7 @@ sub upfile_drop_add {
$fname,$mname,$lname,$gen,$sec,$enddate,
$startdate,$env{'form.forceid'},
$desiredhost,$email,'manual','',$cid,
- '',$context);
+ '',$context,$inststatus);
$userresult = $roleresult;
} else {
if ($role ne '') {
@@ -3847,7 +3912,7 @@ sub upfile_drop_add {
$mname,$lname,$gen,$sec,
$env{'form.forceid'},$desiredhost,
$email,$role,$enddate,
- $startdate,$checkid);
+ $startdate,$checkid,$inststatus);
}
} elsif (@secs > 0) {
$singlesec = $secs[0];
@@ -3862,7 +3927,8 @@ sub upfile_drop_add {
$id,$amode,$password,$fname,
$mname,$lname,$gen,$singlesec,
$env{'form.forceid'},$desiredhost,
- $email,$role,$enddate,$startdate,$checkid);
+ $email,$role,$enddate,$startdate,
+ $checkid,$inststatus);
}
}
if ($multiple) {
@@ -3882,15 +3948,15 @@ sub upfile_drop_add {
} else {
if ($context eq 'course') {
$r->print(' '.
- &mt('[_1] : Unable to enroll. No password specified.',$username)
+ &mt('[_1]: Unable to enroll. No password specified.',''.$username.' ')
);
} elsif ($context eq 'author') {
$r->print(' '.
- &mt('[_1] : Unable to add co-author. No password specified.',$username)
+ &mt('[_1]: Unable to add co-author. No password specified.',''.$username.' ')
);
} else {
$r->print(' '.
- &mt('[_1] : Unable to add user. No password specified.',$username)
+ &mt('[_1]: Unable to add user. No password specified.',''.$username.' ')
);
}
}
@@ -3993,7 +4059,7 @@ sub user_change_result {
if ($userresult =~ /^error:(.+)$/) {
my $error = $1;
$r->print(' '.
- &mt('[_1] : Unable to add/modify: [_2]',$username.':'.$userdomain,$error));
+ &mt('[_1]: Unable to add/modify: [_2]',''.$username.':'.$userdomain.' ',$error));
}
} else {
$counts->{'user'} ++;
@@ -4003,7 +4069,7 @@ sub user_change_result {
if ($authresult =~ /^error:(.+)$/) {
my $error = $1;
$r->print(' '.
- &mt('[_1] : Unable to modify authentication: [_2]',$username.':'.$userdomain,$error));
+ &mt('[_1]: Unable to modify authentication: [_2]',''.$username.':'.$userdomain.' ',$error));
}
} else {
$counts->{'auth'} ++;
@@ -4013,7 +4079,7 @@ sub user_change_result {
if ($roleresult =~ /^error:(.+)$/) {
my $error = $1;
$r->print(' '.
- &mt('[_1] : Unable to add role: [_2]',$username.':'.$userdomain,$error));
+ &mt('[_1]: Unable to add role: [_2]',''.$username.':'.$userdomain.' ',$error));
}
} else {
$counts->{'role'} ++;
@@ -4283,7 +4349,7 @@ sub update_user_list {
$r->print('
'.&mt("$result_text{'ok'}{$choice} role(s) for [quant,_1,user,users,no users].",$count).'
');
if ($count > 0) {
if ($choice eq 'revoke' || $choice eq 'drop') {
- $r->print(''.&mt('Re-enabling will re-activate data for the role.
'));
+ $r->print(''.&mt('Re-enabling will re-activate data for the role.').'
');
}
# Flush the course logs so reverse user roles immediately updated
&Apache::lonnet::flushcourselogs();
@@ -4377,7 +4443,7 @@ sub course_sections {
my $output = '';
my @sections = (sort {$a <=> $b} keys %{$sections_count});
my $numsec = scalar(@sections);
- my $is_selected = ' selected="selected" ';
+ my $is_selected = ' selected="selected"';
if ($numsec <= 1) {
$output = ''."\n".
' '.&mt('Select').' '."\n";