--- loncom/interface/lonuserutils.pm 2010/11/15 17:57:35 1.109.2.10
+++ loncom/interface/lonuserutils.pm 2013/02/05 16:22:27 1.148
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Utility functions for managing LON-CAPA user accounts
#
-# $Id: lonuserutils.pm,v 1.109.2.10 2010/11/15 17:57:35 raeburn Exp $
+# $Id: lonuserutils.pm,v 1.148 2013/02/05 16:22:27 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,7 +36,6 @@ use Apache::loncommon();
use Apache::lonhtmlcommon;
use Apache::lonlocal;
use Apache::longroup;
-use Apache::lonnavmaps;
use LONCAPA qw(:DEFAULT :match);
###############################################################
@@ -296,7 +295,7 @@ sub hidden_input {
}
sub print_upload_manager_header {
- my ($r,$datatoken,$distotal,$krbdefdom,$context,$permission,$crstype,$formname,
+ my ($r,$datatoken,$distotal,$krbdefdom,$context,$permission,$crstype,
$can_assign)=@_;
my $javascript;
#
@@ -327,66 +326,55 @@ sub print_upload_manager_header {
$password_choice = 'int';
}
#
- my ($sectionjs,$groupslist);
+ my $groupslist;
if ($context eq 'course') {
$groupslist = &get_groupslist();
- if ($env{'form.context'} eq 'requestcrs') {
- $sectionjs = <<"ENDJS";
-
-function toggleSectionsDefault() {
- var usingsecs;
- if (document.$formname.usesection.length > 1) {
- for (var i=0; iprint('
'
- .&mt('Total number of records found in file: [_1]'
- ,''.$distotal.'')
- ."
\n");
- $r->print('
'.
- &mt('Identify fields in uploaded list')."
\n");
- $r->print(&mt('Enter as many fields as you can.').' '.
- &mt('The system will inform you and bring you back to this page,').
- ' '.&mt('if the data selected are insufficient to add users.')." \n");
+ $r->print(
+ '
'.&mt('Identify fields in uploaded list')."
\n".
+ '
'.
+ &mt('Total number of records found in file: [_1]'
+ ,''.$distotal.'').
+ "
\n"
+ );
+ if ($distotal == 0) {
+ $r->print('
'.&mt('None found').'
');
+ }
+ $r->print(
+ '
'.
+ &mt('Enter as many fields as you can.').' '.
+ &mt('The system will inform you and bring you back to this page,[_1]if the data selected are insufficient to add users.',' ').
+ "
'
+ );
+ $r->print(
+ ''
+ );
}
###############################################################
@@ -415,13 +403,9 @@ sub javascript_validations {
if ($context eq 'course') {
if ($env{'request.course.sec'} eq '') {
$setsection_call = 'setSections(document.'.$param{'formname'}.",'$crstype'".');';
- if ($env{'form.context'} eq 'requestcrs') {
- $setsections_js = &newsections_javascript($param{'formname'});
- } else {
- $setsections_js =
- &setsections_javascript($param{'formname'},$groupslist,
- $mode,'',$crstype);
- }
+ $setsections_js =
+ &setsections_javascript($param{'formname'},$groupslist,
+ $mode,'',$crstype);
} else {
$setsection_call = "'ok'";
}
@@ -549,9 +533,7 @@ END
END
} else {
$section_checks = §ion_check_js();
-
- unless ($env{'form.context'} eq 'requestcrs') {
- $optional_checks = (<{'int'}) {
- my $warning = &mt('You may not specify an initial password for each user, as this is only available when new users use LON-CAPA internal authentication.\n').
+ my $warning = &mt('You may not specify an initial password for each user, as this is only available when new users use LON-CAPA internal authentication.').'\n'
&mt('Your current role does not have rights to create users with that authentication type.');
$auth_update = <<"END";
// Currently the initial password field is only supported for internal auth
// (see bug 6368).
- if (nw==2) {
+ if (nw==9) {
eval('vf.f'+tf+'.selectedIndex=0;')
alert('$warning');
}
@@ -659,7 +632,7 @@ END
$auth_update = <<"END";
// If we set the password, make the password form below correspond to
// the new value.
- if (nw==2) {
+ if (nw==9) {
changed_radio('int',document.studentform);
set_auth_radio_buttons('int',document.studentform);
$argreset
@@ -684,10 +657,10 @@ function verify(vf,sec_caller) {
for (i=0;i<=vf.nfields.value;i++) {
tw=eval('vf.f'+i+'.selectedIndex');
if (tw==1) { founduname=1; }
- if (tw==2) { foundpwd=1; }
- if ((tw>=3) && (tw<=7)) { foundname=1; }
- if (tw==8) { foundid=1; }
- if (tw==9) { foundsec=1; }
+ if ((tw>=2) && (tw<=6)) { foundname=1; }
+ if (tw==7) { foundid=1; }
+ if (tw==8) { foundsec=1; }
+ if (tw==9) { foundpwd=1; }
if (tw==10) { foundemail=1; }
if (tw==11) { foundrole=1; }
if (tw==12) { founddomain=1; }
@@ -704,14 +677,14 @@ function verify(vf,sec_caller) {
//
// 0 = none
// 1 = username
-// 2 = ipwd (password)
-// 3 = names (lastname, firstnames)
-// 4 = fname (firstname)
-// 5 = mname (middlename)
-// 6 = lname (lastname)
-// 7 = gen (generation)
-// 8 = id
-// 9 = section
+// 2 = names (lastname, firstnames)
+// 3 = fname (firstname)
+// 4 = mname (middlename)
+// 5 = lname (lastname)
+// 6 = gen (generation)
+// 7 = id
+// 8 = section
+// 9 = ipwd (password)
// 10 = email address
// 11 = role
// 12 = domain
@@ -727,20 +700,20 @@ function flip(vf,tf) {
}
}
// If we set this to 'lastname, firstnames', clear out all the ones
- // set to 'fname','mname','lname','gen' (4,5,6,7) currently.
- if (nw==3) {
+ // 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')>=4) &&
- (eval('vf.f'+i+'.selectedIndex')<=7)) {
+ if ((eval('vf.f'+i+'.selectedIndex')>=3) &&
+ (eval('vf.f'+i+'.selectedIndex')<=6)) {
eval('vf.f'+i+'.selectedIndex=0;')
}
}
}
- // If we set this to one of 'fname','mname','lname','gen' (4,5,6,7),
- // clear out any that are set to 'lastname, firstnames' (3)
- if ((nw>=4) && (nw<=7)) {
+ // 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')==3) {
+ if (eval('vf.f'+i+'.selectedIndex')==2) {
eval('vf.f'+i+'.selectedIndex=0;')
}
}
@@ -751,7 +724,7 @@ function flip(vf,tf) {
function clearpwd(vf) {
var i;
for (i=0;i<=vf.nfields.value;i++) {
- if (eval('vf.f'+i+'.selectedIndex')==2) {
+ if (eval('vf.f'+i+'.selectedIndex')==9) {
eval('vf.f'+i+'.selectedIndex=0;')
}
}
@@ -784,7 +757,7 @@ sub upload_manager_javascript_reverse_as
$auth_update = <<"END";
// Currently the initial password field is only supported for internal auth
// (see bug 6368).
- if (tf==1 && nw!=0) {
+ if (tf==8 && nw!=0) {
eval('vf.f'+tf+'.selectedIndex=0;')
alert('$warning');
}
@@ -792,7 +765,7 @@ END
} elsif ($numbuttons > 1) {
$auth_update = <<"END";
// initial password specified, pick internal authentication
- if (tf==1 && nw!=0) {
+ if (tf==8 && nw!=0) {
changed_radio('int',document.studentform);
set_auth_radio_buttons('int',document.studentform);
$argreset
@@ -817,10 +790,10 @@ function verify(vf,sec_caller) {
for (i=0;i<=vf.nfields.value;i++) {
tw=eval('vf.f'+i+'.selectedIndex');
if (i==0 && tw!=0) { founduname=1; }
- if (i==1 && tw!=0) { foundpwd=1; }
- if (((i>=2) && (i<=6)) && tw!=0 ) { foundname=1; }
- if (i==7 && tw!=0) { foundid=1; }
- if (i==8 && tw!=0) { foundsec=1; }
+ if (((i>=1) && (i<=5)) && tw!=0 ) { foundname=1; }
+ if (i==6 && tw!=0) { foundid=1; }
+ if (i==7 && tw!=0) { foundsec=1; }
+ if (i==8 && tw!=0) { foundpwd=1; }
if (i==9 && tw!=0) { foundemail=1; }
if (i==10 && tw!=0) { foundrole=1; }
if (i==11 && tw!=0) { founddomain=1; }
@@ -833,23 +806,23 @@ function flip(vf,tf) {
var nw=eval('vf.f'+tf+'.selectedIndex');
var i;
// picked the all one name field, reset the other name ones to blank
- if (tf==2 && nw!=0) {
- for (i=3;i<=6;i++) {
+ if (tf==1 && nw!=0) {
+ for (i=2;i<=5;i++) {
eval('vf.f'+i+'.selectedIndex=0;')
}
}
//picked one of the piecewise name fields, reset the all in
//one field to blank
- if ((tf>=3) && (tf<=6) && (nw!=0)) {
- eval('vf.f2.selectedIndex=0;')
+ if ((tf>=2) && (tf<=5) && (nw!=0)) {
+ eval('vf.f1.selectedIndex=0;')
}
$auth_update
}
function clearpwd(vf) {
var i;
- if (eval('vf.f1.selectedIndex')!=0) {
- eval('vf.f1.selectedIndex=0;')
+ if (eval('vf.f8.selectedIndex')!=0) {
+ eval('vf.f8.selectedIndex=0;')
}
}
ENDPICK
@@ -872,9 +845,6 @@ sub print_upload_manager_footer {
$env{'form.ipwd_choice'} ne '') {
$param{'curr_authtype'} = 'int';
}
- if ($env{'form.context'} eq 'requestcrs') {
- $param{'context'} = $env{'form.context'};
- }
my $krbform = &Apache::loncommon::authform_kerberos(%param);
my $intform = &Apache::loncommon::authform_internal(%param);
my $locform = &Apache::loncommon::authform_local(%param);
@@ -887,11 +857,8 @@ sub print_upload_manager_footer {
$Str .= '
'
.&mt('Change authentication for existing users in domain "[_1]" to these settings?'
@@ -905,17 +872,12 @@ sub print_upload_manager_footer {
.'
';
} else {
$Str .= '
'."\n".
- &mt('This will not take effect if the user already exists.');
- my ($authnum,%can_assign) = &Apache::loncommon::get_assignable_auth($defdom);
- if ($authnum > 1) {
- $Str .= &Apache::loncommon::help_open_topic('Auth_Options');
- }
- $Str .= "
\n";
+ &mt('This will not take effect if the user already exists.').
+ &Apache::loncommon::help_open_topic('Auth_Options').
+ "\n";
}
$Str .= &set_login($defdom,$krbform,$intform,$locform);
- if ($env{'form.context'} eq 'requestcrs') {
- $Str .= '';
- }
+
my ($home_server_pick,$numlib) =
&Apache::loncommon::home_server_form_item($defdom,'lcserver',
'default','hide');
@@ -931,14 +893,14 @@ sub print_upload_manager_footer {
&Apache::lonhtmlcommon::row_closure();
}
- unless ($env{'form.context'} eq 'requestcrs') {
- $Str .= &Apache::lonhtmlcommon::row_title(&mt('Default domain'))
- .&Apache::loncommon::select_dom_form($defdom,'defaultdomain',undef,1)
- .&Apache::lonhtmlcommon::row_closure()
- .&Apache::lonhtmlcommon::row_title(&mt('Starting and Ending Dates'))
- ."
\n"
+ .&Apache::lonhtmlcommon::row_closure();
+
if ($context eq 'domain') {
$Str .= &Apache::lonhtmlcommon::row_title(
&mt('Settings for assigning roles'))
@@ -958,22 +920,9 @@ sub print_upload_manager_footer {
&mt('Default role'))
.&mt('Choose the role to assign to users without a value specified in the uploaded file.')
} elsif ($context eq 'course') {
- if ($env{'form.context'} eq 'requestcrs') {
- $Str .= &Apache::lonhtmlcommon::row_title(&mt('Default section')).
- &mt('Students can be assigned to different sections.').' '.
- &mt('Will you be using sections?').' '.
- ''.
- ' '.&mt('Yes').''.
- ' ';
- } else {
- $Str .= &Apache::lonhtmlcommon::row_title(
+ $Str .= &Apache::lonhtmlcommon::row_title(
&mt('Default role and section'))
- .&mt('Choose the role and/or section(s) to assign to users without values specified in the uploaded file.');
- }
+ .&mt('Choose the role and/or section(s) to assign to users without values specified in the uploaded file.');
} else {
$Str .= &Apache::lonhtmlcommon::row_title(
&mt('Default role and/or section(s)'))
@@ -997,22 +946,11 @@ sub print_upload_manager_footer {
}
} else {
my ($cnum,$cdom) = &get_course_identity();
- my ($rowtitle,$closure);
- if ($env{'form.context'} eq 'requestcrs') {
- $closure = 1;
- $rowtitle = &mt('default section name (letters/numbers only)');
- } else {
- $rowtitle = &mt('section');
- }
+ my $rowtitle = &mt('section');
my $secbox = §ion_picker($cdom,$cnum,'Any',$rowtitle,
- $permission,$context,'upload',$crstype,
- $env{'form.context'}).
- &Apache::lonhtmlcommon::row_closure($closure);
- if ($env{'form.context'} eq 'requestcrs') {
- $Str .= ''.$secbox.'
';
- } else {
- $Str .= $secbox;
- }
+ $permission,$context,'upload',$crstype);
+ $Str .= $secbox
+ .&Apache::lonhtmlcommon::row_closure();
my %lt;
if ($crstype eq 'Community') {
%lt = &Apache::lonlocal::texthash (
@@ -1025,19 +963,15 @@ sub print_upload_manager_footer {
stus => 'Students selected from this list can be dropped.'
);
}
- unless ($env{'form.context'} eq 'requestcrs') {
- $Str .= &Apache::lonhtmlcommon::row_title(&mt('Full Update'))
- .' '
- .$lt{'stus'}
- .&Apache::lonhtmlcommon::row_closure();
- }
+ $Str .= &Apache::lonhtmlcommon::row_title(&mt('Full Update'))
+ .' '
+ .$lt{'stus'}
+ .&Apache::lonhtmlcommon::row_closure();
}
if ($context eq 'course' || $context eq 'domain') {
- unless ($env{'form.context'} eq 'requestcrs') {
- $Str .= &forceid_change($context);
- }
+ $Str .= &forceid_change($context);
}
$Str .= &Apache::lonhtmlcommon::end_pick_box();
@@ -1081,7 +1015,7 @@ sub forceid_change {
###############################################################
###############################################################
sub print_upload_manager_form {
- my ($r,$context,$permission,$crstype,$formname) = @_;
+ my ($r,$context,$permission,$crstype) = @_;
my $firstLine;
my $datatoken;
if (!$env{'form.datatoken'}) {
@@ -1129,13 +1063,12 @@ sub print_upload_manager_form {
#
my ($authnum,%can_assign) = &Apache::loncommon::get_assignable_auth($defdom);
&print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom,$context,
- $permission,$crstype,$formname,\%can_assign);
+ $permission,$crstype,\%can_assign);
my $i;
my $keyfields;
if ($total>=0) {
my @field=
(['username',&mt('Username'), $env{'form.username_choice'}],
- ['ipwd', &mt('Initial Password'),$env{'form.ipwd_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'}],
@@ -1143,6 +1076,7 @@ sub print_upload_manager_form {
['gen', &mt('Generation'), $env{'form.gen_choice'}],
['id', &mt('Student/Employee ID'),$env{'form.id_choice'}],
['sec', &mt('Section'), $env{'form.sec_choice'}],
+ ['ipwd', &mt('Initial Password'),$env{'form.ipwd_choice'}],
['email',&mt('E-mail Address'), $env{'form.email_choice'}],
['role',&mt('Role'), $env{'form.role_choice'}],
['domain',&mt('Domain'), $env{'form.domain_choice'}],
@@ -1163,7 +1097,6 @@ sub print_upload_manager_form {
$keyfields=join(',',sort(keys(%sone)));
}
}
- $r->print('');
&print_upload_manager_footer($r,$i,$keyfields,$defdom,$today,$halfyear,
$context,$permission,$crstype);
}
@@ -1335,10 +1268,8 @@ sub default_role_selector {
'exs' => "Existing sections",
'new' => "New section",
);
- $options = '
\n".
+ $r->print(&list_submit_button(&mt('Display List of Users'))."\n".
'');
return;
}
if (!(($context eq 'domain') &&
(($env{'form.roletype'} eq 'course') || ($env{'form.roletype'} eq 'community')))) {
- $r->print(' '.&list_submit_button(&mt('Update Display')).
- "\n\n");
+ $r->print(&list_submit_button(&mt('Update Display'))."\n");
+ }
+
+ my @cols = &infocolumns($context,$mode);
+ if (!@cols) {
+ $r->print(''.
+ &mt('No user information selected for display.').''.
+ ''."\n");
+ return;
}
my ($indexhash,$keylist) = &make_keylist_array();
my (%userlist,%userinfo,$clearcoursepick);
@@ -1620,15 +1562,15 @@ sub print_userlist {
$title = &mt('Select Communities');
$warning = &mt('Warning: data retrieval for multiple communities can take considerable time, as this operation is not currently optimized.');
}
+ my @standardnames = &Apache::loncommon::get_standard_codeitems();
my $courseform =
&Apache::lonhtmlcommon::course_selection($formname,$numcodes,
- $codetitles,$idlist,$idlist_titles,$crstype);
- $r->print('
');
}
$r->rflush();
if ($context eq 'course') {
@@ -1761,21 +1703,23 @@ sub print_userlist {
}
}
if (keys(%userlist) == 0) {
+ my $msg = '';
if ($context eq 'author') {
- $r->print(&mt('There are no co-authors to display.')."\n");
+ $msg = &mt('There are no co-authors to display.');
} elsif ($context eq 'domain') {
if ($env{'form.roletype'} eq 'domain') {
- $r->print(&mt('There are no users with domain roles to display.')."\n");
+ $msg = &mt('There are no users with domain roles to display.');
} elsif ($env{'form.roletype'} eq 'author') {
- $r->print(&mt('There are no authors or co-authors to display.')."\n");
+ $msg = &mt('There are no authors or co-authors to display.');
} elsif ($env{'form.roletype'} eq 'course') {
- $r->print(&mt('There are no course users to display')."\n");
+ $msg = &mt('There are no course users to display');
} elsif ($env{'form.roletype'} eq 'community') {
- $r->print(&mt('There are no community users to display')."\n");
+ $msg = &mt('There are no community users to display');
}
} elsif ($context eq 'course') {
$r->print(&mt('There are no course users to display.')."\n");
}
+ $r->print('
'.$msg.'
'."\n") if $msg;
} else {
# Print out the available choices
my $usercount;
@@ -1787,7 +1731,7 @@ sub print_userlist {
$permission,$env{'form.Status'},\%userlist,$keylist);
}
if (!$usercount) {
- $r->print(' '
+ $r->print(' '
.&mt('There are no users matching the search criteria.')
.''
);
@@ -1795,6 +1739,7 @@ sub print_userlist {
}
$r->print('');
+ return;
}
sub role_filter {
@@ -1807,11 +1752,11 @@ sub role_filter {
my ($role_select);
if ($context eq 'domain') {
$role_select = &domain_roles_select();
- $output = '';
+ .'';
} else {
- $role_select = ''."\n".
+ $role_select = ''."\n".
'';
my ($roletype,$crstype);
@@ -1838,9 +1783,9 @@ sub role_filter {
$role_select .= '';
}
$role_select .= '';
- $output = '';
+ .'';
}
return $output;
}
@@ -1880,7 +1825,7 @@ sub section_group_filter {
}
if (@options > 0) {
my $currsel;
- $markup = ''."\n";
+ $markup = ''."\n";
foreach my $option ('all','none',@options) {
$currsel = '';
if ($env{'form.'.$name{$item}} eq $option) {
@@ -1895,17 +1840,175 @@ sub section_group_filter {
$markup .= ''."\n";
}
$markup .= ''."\n";
- $output .= (' 'x3).'';
+ $output .= (' 'x3).''
+ .''
+ .' ';
}
}
return $output;
}
+sub infocolumns {
+ my ($context,$mode) = @_;
+ my @cols;
+ if (($mode eq 'pickauthor') || ($mode eq 'autoenroll')) {
+ @cols = &get_cols_array($context,$mode);
+ } else {
+ my @posscols = &get_cols_array($context,$mode);
+ if ($env{'form.phase'} ne '') {
+ my @checkedcols = &Apache::loncommon::get_env_multiple('form.showcol');
+ foreach my $col (@checkedcols) {
+ if (grep(/^$col$/,@posscols)) {
+ push(@cols,$col);
+ }
+ }
+ } else {
+ @cols = @posscols;
+ }
+ }
+ return @cols;
+}
+
+sub get_cols_array {
+ my ($context,$mode) = @_;
+ my @cols;
+ if ($mode eq 'pickauthor') {
+ @cols = ('username','fullname','status','email');
+ } else {
+ @cols = ('username','domain','id','fullname');
+ if ($context eq 'course') {
+ push(@cols,'section');
+ }
+ push(@cols,('start','end','role'));
+ if ($context eq 'domain') {
+ push (@cols,'extent');
+ }
+ unless (($mode eq 'autoenroll') && ($env{'form.Status'} ne 'Any')) {
+ push(@cols,'status');
+ }
+ if ($context eq 'course') {
+ push(@cols,'groups');
+ }
+ push(@cols,'email');
+ if (($context eq 'course') && ($mode ne 'autoenroll')) {
+ push(@cols,'lastlogin','clicker');
+ }
+ if (($context eq 'course') && ($mode ne 'autoenroll') &&
+ ($env{'course.'.$env{'request.course.id'}.'.internal.showphoto'})) {
+ push(@cols,'photos');
+ }
+ }
+ return @cols;
+}
+
+sub column_checkboxes {
+ my ($context,$mode,$formname) = @_;
+ my @cols = &get_cols_array($context,$mode);
+ my @showncols = &Apache::loncommon::get_env_multiple('form.showcol');
+ my (%disabledchk,%unchecked);
+ if ($env{'form.phase'} eq '') {
+ $disabledchk{'status'} = 1;
+ if ($context eq 'course') {
+ $disabledchk{'role'} = 1;
+ $unchecked{'photo'} = 1;
+ }
+ $unchecked{'clicker'} = 1;
+ $unchecked{'start'} = 1;
+ $unchecked{'end'} = 1;
+ } else {
+ if ($env{'form.Status'} ne 'Any') {
+ $disabledchk{'status'} = 1;
+ }
+ if (($env{'form.showrole'} ne 'Any') && ($env{'form.showrole'} ne 'cr')) {
+ $disabledchk{'role'} = 1;
+ }
+ }
+ my $numposs = scalar(@cols);
+ my $numinrow = 8;
+ my %lt = &get_column_names($context);
+ my $output = '';
+ return $output;
+}
+
sub list_submit_button {
my ($text) = @_;
return '';
}
+sub get_column_names {
+ my ($context) = @_;
+ my %lt = &Apache::lonlocal::texthash(
+ 'username' => "username",
+ 'domain' => "domain",
+ 'id' => 'ID',
+ 'fullname' => "name",
+ 'section' => "section",
+ 'groups' => "active groups",
+ 'start' => "start date",
+ 'end' => "end date",
+ 'status' => "status",
+ 'role' => "role",
+ 'type' => "enroll type/action",
+ 'email' => "e-mail address",
+ 'photo' => "photo",
+ 'lastlogin' => "last login",
+ 'extent' => "extent",
+ 'ca' => "check all",
+ 'ua' => "uncheck all",
+ 'clicker' => "clicker-ID",
+ );
+ if ($context eq 'domain' && $env{'form.roletype'} eq 'course') {
+ $lt{'extent'} = &mt('Course(s): description, section(s), status');
+ } elsif ($context eq 'domain' && $env{'form.roletype'} eq 'community') {
+ $lt{'extent'} = &mt('Communities: description, section(s), status');
+ } elsif ($context eq 'author') {
+ $lt{'extent'} = &mt('Author');
+ }
+ return %lt;
+}
+
sub gather_userinfo {
my ($context,$format,$userlist,$indexhash,$userinfo,$rolehash,$permission) = @_;
my $viewablesec;
@@ -2069,7 +2172,7 @@ function setCourseCat(formname) {
if (formname.Year.options[formname.Year.selectedIndex].value == -1) {
return;
}
- courseSet('Year');
+ courseSet('$codetitles[0]');
for (var j=0; jprint('
');
}
- $r->print(<
-
-END
}
} elsif ($context eq 'domain') {
if ($setting eq 'community') {
@@ -2322,14 +2406,12 @@ END
}
}
if ($mode ne 'autoenroll' && $mode ne 'pickauthor') {
- my $check_uncheck_js = &Apache::loncommon::check_uncheck_jscript();
my $date_sec_selector = &date_section_javascript($context,$setting,$statusmode);
my $verify_action_js = &bulkaction_javascript($formname);
$r->print(<
// print(<
END
-
- my %lt=&Apache::lonlocal::texthash(
- 'username' => "username",
- 'domain' => "domain",
- 'id' => 'ID',
- 'fullname' => "name",
- 'section' => "section",
- 'groups' => "active groups",
- 'start' => "start date",
- 'end' => "end date",
- 'status' => "status",
- 'role' => "role",
- 'type' => "enroll type/action",
- 'email' => "e-mail address",
- 'lastlogin' => "last login",
- 'submissions' => "test status",
- 'photo' => "photo",
- 'extent' => "extent",
+ my @cols = &infocolumns($context,$mode);
+ my %coltxt = &get_column_names($context);
+ my %acttxt = &Apache::lonlocal::texthash(
'pr' => "Proceed",
- 'ca' => "check all",
- 'ua' => "uncheck all",
'ac' => "Action to take for selected users",
'link' => "Behavior of clickable username link for each user",
'aboutme' => "Display a user's personal information page",
'owin' => "Open in a new window",
'modify' => "Modify a user's information",
'track' => "View a user's recent activity",
- 'clicker' => "Clicker-ID",
);
- if ($context eq 'domain' && $env{'form.roletype'} eq 'course') {
- $lt{'extent'} = &mt('Course(s): description, section(s), status');
- } elsif ($context eq 'domain' && $env{'form.roletype'} eq 'community') {
- $lt{'extent'} = &mt('Communities: description, section(s), status');
- } elsif ($context eq 'author') {
- $lt{'extent'} = &mt('Author');
- }
- my @cols;
- if ($mode eq 'pickauthor') {
- @cols = ('username','fullname','status','email');
- } else {
- @cols = ('username','domain','id','fullname');
- if ($context eq 'course') {
- push(@cols,'section');
- }
- if (!($context eq 'domain' && ($env{'form.roletype'} eq 'course')
- && ($env{'form.roletype'} eq 'community'))) {
- push(@cols,('start','end'));
- }
- if ($env{'form.showrole'} eq 'Any' || $env{'form.showrole'} eq 'cr') {
- push(@cols,'role');
- }
- if ($context eq 'domain' && ($env{'form.roletype'} eq 'author' ||
- $env{'form.roletype'} eq 'course' ||
- $env{'form.roletype'} eq 'community')) {
- push (@cols,'extent');
- }
- if (($statusmode eq 'Any') &&
- (!($context eq 'domain' && (($env{'form.roletype'} eq 'course')
- || ($env{'form.roletype'} eq 'community'))))) {
- push(@cols,'status');
- }
- if ($context eq 'course') {
- if ($displaygroups) {
- push(@cols,'groups');
- }
- }
- push(@cols,'email');
- if ($context eq 'course') {
- if ($custommenu) {
- push(@cols,'lastlogin');
- if (($env{'form.showrole'} eq 'Any') || ($env{'form.showrole'} eq 'st')) {
- push(@cols,'submissions');
- }
- }
- }
- }
-
+ my %lt = (%coltxt,%acttxt);
my $rolefilter = $env{'form.showrole'};
if ($env{'form.showrole'} eq 'cr') {
$rolefilter = &mt('custom');
@@ -2474,7 +2491,7 @@ END
if ($mode ne 'autoenroll') {
$results_description = &results_header_row($rolefilter,$statusmode,
$context,$permission,$mode,$crstype);
- $r->print(''.$results_description.'