');
} elsif ($env{'form.action'} eq 'singlestudent') {
- $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management',
- 'Course_Add_Student'));
$r->print($jscript."");
if ($crstype eq 'Community') {
$r->print($lt{'memsrch'});
@@ -892,7 +914,7 @@ ENDSCRIPT
}
sub print_user_query_page {
- my ($r,$caller) = @_;
+ my ($r,$caller,$brcrum) = @_;
# FIXME - this is for a network-wide name search (similar to catalog search)
# To use frames with similar behavior to catalog/portfolio search.
# To be implemented.
@@ -900,11 +922,11 @@ sub print_user_query_page {
}
sub print_user_modification_page {
- my ($r,$ccuname,$ccdomain,$srch,$response,$context,$permission,$crstype) = @_;
+ my ($r,$ccuname,$ccdomain,$srch,$response,$context,$permission,$crstype,$brcrum) = @_;
if (($ccuname eq '') || ($ccdomain eq '')) {
my $usermsg = &mt('No username and/or domain provided.');
$env{'form.phase'} = '';
- &print_username_entry_form($r,$context,$usermsg,'','',$crstype);
+ &print_username_entry_form($r,$context,$usermsg,'','',$crstype,$brcrum);
return;
}
my ($form,$formname);
@@ -918,12 +940,21 @@ sub print_user_modification_page {
my %abv_auth = &auth_abbrev();
my (%rulematch,%inst_results,$newuser,%alerts,%curr_rules,%got_rules);
my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain);
+ my $is_custom = &Apache::loncommon::needs_gci_custom();
+ if ($is_custom) {
+ if ($uhome eq 'no_host') {
+ my $lc_ccuname = lc($ccuname);
+ if ($lc_ccuname ne $ccuname) {
+ $uhome = &Apache::lonnet::homeserver($lc_ccuname,$ccdomain);
+ $ccuname = $lc_ccuname;
+ }
+ }
+ }
if ($uhome eq 'no_host') {
- my $usertype;
my ($rules,$ruleorder) =
&Apache::lonnet::inst_userrules($ccdomain,'username');
- $usertype =
- &Apache::lonuserutils::check_usertype($ccdomain,$ccuname,$rules);
+ my $usertype =
+ &Apache::lonuserutils::check_usertype($ccdomain,$ccuname,$rules);
my $cancreate =
&Apache::lonuserutils::can_create_user($ccdomain,$context,
$usertype);
@@ -933,19 +964,28 @@ sub print_user_modification_page {
official => 'institutional',
unofficial => 'non-institutional',
);
+ if ($ccdomain eq 'gci') {
+ $usertypetext{'unofficial'} = 'institutional',
+ }
my $response;
if ($env{'form.origform'} eq 'crtusername') {
- $response = ''.&mt('No match was found for the username ([_1]) in LON-CAPA domain: [_2]',$ccuname,$ccdomain).
- ' ';
+ if ($is_custom) {
+ $response = ''.&mt('Invalid format for username for new user: [_1]',''.$ccuname.'').
+ ' ';
+ } else {
+ $response = ''.&mt('No match was found for the username ([_1]) in LON-CAPA domain: [_2]',$ccuname,$ccdomain).' ';
+ }
}
$response .= '
'
.&mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.")
- .' '
- .&mt('Please contact the [_1]helpdesk[_2] for assistance.'
- ,'','')
- .'
';
+ .' ';
+ if ($ccdomain eq 'gcitest') {
+ $response .= &mt('Enter a valid e-mail address as the username for the new user.').' '.&mt('Please contact the [_1]helpdesk[_2] for assistance.'
+ ,'','')
+ .' ';
+ }
$env{'form.phase'} = '';
- &print_username_entry_form($r,$context,$response,undef,undef,$crstype);
+ &print_username_entry_form($r,$context,$response,undef,undef,$crstype,$brcrum);
return;
}
$newuser = 1;
@@ -969,7 +1009,7 @@ sub print_user_modification_page {
'username');
}
$env{'form.phase'} = '';
- &print_username_entry_form($r,$context,$userchkmsg,undef,undef,$crstype);
+ &print_username_entry_form($r,$context,$userchkmsg,undef,undef,$crstype,$brcrum);
return;
}
}
@@ -990,34 +1030,43 @@ sub print_user_modification_page {
my $js = &validation_javascript($context,$ccdomain,$pjump_def,
$groupslist,$newuser,$formname,\%loaditem);
- my $args = {'add_entries' => \%loaditem};
- if ($env{'form.popup'}) {
- $args->{'no_nav_bar'} = 1;
+ my $title = 'User Management';
+ if ($context eq 'course') {
+ if ($is_custom) {
+ $title = 'Enrollment and Student Activity';
+ }
}
- my $start_page =
- &Apache::loncommon::start_page('User Management',$js,$args);
my %breadcrumb_text = &singleuser_breadcrumb($crstype);
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:backPage($form)",
- text=>$breadcrumb_text{'search'},
- faq=>282,bug=>'Instructor Interface',});
-
- if ($env{'form.phase'} eq 'userpicked') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:backPage($form,'get_user_info','select')",
- text=>$breadcrumb_text{'userpicked'},
- faq=>282,bug=>'Instructor Interface',});
- }
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:backPage($form,'$env{'form.phase'}','modify')",
- text=>$breadcrumb_text{'modify'},
- faq=>282,bug=>'Instructor Interface',});
my $helpitem = 'Course_Change_Privileges';
if ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
}
- my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('User Management',
- $helpitem);
+ push (@{$brcrum},
+ {href => "javascript:backPage($form)",
+ text => $breadcrumb_text{'search'},
+ faq => 282,
+ bug => 'Instructor Interface',});
+ if ($env{'form.phase'} eq 'userpicked') {
+ push(@{$brcrum},
+ {href => "javascript:backPage($form,'get_user_info','select')",
+ text => $breadcrumb_text{'userpicked'},
+ faq => 282,
+ bug => 'Instructor Interface',});
+ }
+ push(@{$brcrum},
+ {href => "javascript:backPage($form,'$env{'form.phase'}','modify')",
+ text => $breadcrumb_text{'modify'},
+ faq => 282,
+ bug => 'Instructor Interface',
+ help => $helpitem});
+ my $args = {'add_entries' => \%loaditem,
+ 'bread_crumbs' => $brcrum,
+ 'bread_crumbs_component' => 'User Management'};
+ if ($env{'form.popup'}) {
+ $args->{'no_nav_bar'} = 1;
+ }
+ my $start_page =
+ &Apache::loncommon::start_page($title,$js,$args);
my $forminfo =<<"ENDFORMINFO";
".&Apache::loncommon::end_page());
+ $r->print('');
return;
}
@@ -2151,7 +2197,8 @@ sub get_inststatuses {
# ================================================================= Phase Three
sub update_user_data {
- my ($r,$context,$crstype) = @_;
+ my ($r,$context,$crstype,$brcrum) = @_;
+ my $is_custom = &Apache::loncommon::needs_gci_custom();
my $uhome=&Apache::lonnet::homeserver($env{'form.ccuname'},
$env{'form.ccdomain'});
# Error messages
@@ -2176,36 +2223,33 @@ sub update_user_data {
'// ]]>'."\n".
''."\n";
my %breadcrumb_text = &singleuser_breadcrumb($crstype);
- my $args;
- if ($env{'form.popup'}) {
- $args->{'no_nav_bar'} = 1;
- } else {
- $args = undef;
- }
- $r->print(&Apache::loncommon::start_page($title,$jscript,$args));
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:backPage(document.userupdate)",
- text=>$breadcrumb_text{'search'},
- faq=>282,bug=>'Instructor Interface',});
- if ($env{'form.prevphase'} eq 'userpicked') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:backPage(document.userupdate,'get_user_info','select')",
- text=>$breadcrumb_text{'userpicked'},
- faq=>282,bug=>'Instructor Interface',});
- }
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:backPage(document.userupdate,'$env{'form.prevphase'}','modify')",
- text=>$breadcrumb_text{'modify'},
- faq=>282,bug=>'Instructor Interface',},
- {href=>"/adm/createuser",
- text=>"Result",
- faq=>282,bug=>'Instructor Interface',});
my $helpitem = 'Course_Change_Privileges';
if ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
}
- $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management',
- $helpitem));
+ my $bread_crumbs_component = 'User Management';
+ if ($context eq 'course') {
+ if ($is_custom) {
+ $bread_crumbs_component = 'Enrollment and Student Activity';
+ }
+ }
+ push(@{$brcrum},
+ {href => "javascript:backPage(document.userupdate,'$env{'form.prevphase'}','modify')",
+ text => $breadcrumb_text{'modify'},
+ faq => 282,
+ bug => 'Instructor Interface',},
+ {href => "/adm/createuser",
+ text => "Result",
+ faq => 282,
+ bug => 'Instructor Interface',
+ help => $helpitem});
+ my $args = {bread_crumbs => $brcrum,
+ bread_crumbs_component => $bread_crumbs_component};
+ if ($env{'form.popup'}) {
+ $args->{'no_nav_bar'} = 1;
+ }
+ $r->print(&Apache::loncommon::start_page($title,$jscript,$args));
+
$r->print(&update_result_form($uhome));
# Check Inputs
if (! $env{'form.ccuname'} ) {
@@ -2695,7 +2739,8 @@ sub update_user_data {
$changeHash{'tools.'.$key};
} else {
$newenvhash{'environment.availabletools.'.$key} =
- &Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'}, $key,'reload','tools');
+ &Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'},
+ $key,'reload','tools');
}
}
}
@@ -2999,7 +3044,6 @@ END
.&mt('Create/Modify Another User').'');
}
}
- $r->print(&Apache::loncommon::end_page());
}
sub tool_changes {
@@ -3609,7 +3653,7 @@ sub build_roles {
# ========================================================== Custom Role Editor
sub custom_role_editor {
- my ($r) = @_;
+ my ($r,$brcrum) = @_;
my $action = $env{'form.customroleaction'};
my $rolename;
if ($action eq 'new') {
@@ -3618,11 +3662,6 @@ sub custom_role_editor {
$rolename=$env{'form.rolename'};
}
- $rolename=~s/[^A-Za-z0-9]//gs;
- if (!$rolename || $env{'form.phase'} eq 'pickrole') {
- &print_username_entry_form($r);
- return;
- }
my ($crstype,$context);
if ($env{'request.course.id'}) {
$crstype = &Apache::loncommon::course_type();
@@ -3631,6 +3670,19 @@ sub custom_role_editor {
$context = 'domain';
$crstype = $env{'form.templatecrstype'};
}
+
+ $rolename=~s/[^A-Za-z0-9]//gs;
+ if (!$rolename || $env{'form.phase'} eq 'pickrole') {
+ &print_username_entry_form($r,undef,undef,undef,undef,$crstype,$brcrum);
+ return;
+ }
+ my $is_custom = &Apache::loncommon::needs_gci_custom();
+ my $title = 'User Management';
+ if ($context eq 'course') {
+ if ($is_custom) {
+ $title = 'Enrollment and Student Activity';
+ }
+ }
# ------------------------------------------------------- What can be assigned?
my %full=();
my %courselevel=();
@@ -3738,25 +3790,28 @@ sub custom_role_editor {
$head_script .= "\n".$jsback."\n"
.'// ]]>'."\n"
.''."\n";
- $r->print(&Apache::loncommon::start_page('Custom Role Editor',$head_script));
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:backPage(document.form1,'pickrole','')",
- text=>"Pick custom role",
- faq=>282,bug=>'Instructor Interface',},
- {href=>"javascript:backPage(document.form1,'','')",
- text=>"Edit custom role",
- faq=>282,bug=>'Instructor Interface',});
- $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management',
- 'Course_Editing_Custom_Roles'));
-
- $r->print($body_top);
+ push (@{$brcrum},
+ {href => "javascript:backPage(document.form1,'pickrole','')",
+ text => "Pick custom role",
+ faq => 282,bug=>'Instructor Interface',},
+ {href => "javascript:backPage(document.form1,'','')",
+ text => "Edit custom role",
+ faq => 282,
+ bug => 'Instructor Interface',
+ help => 'Course_Editing_Custom_Roles'}
+ );
+ my $args = { bread_crumbs => $brcrum,
+ bread_crumbs_component => 'User Management'};
+
+ $r->print(&Apache::loncommon::start_page('Custom Role Editor',
+ $head_script,$args).
+ $body_top);
my %lt=&Apache::lonlocal::texthash(
'prv' => "Privilege",
'crl' => "Course Level",
'dml' => "Domain Level",
'ssl' => "System Level");
-
$r->print('
'."\n");
$r->print(&Apache::loncoursequeueadmin::update_request_queue($context,
$cdom,$cnum,$coursedesc));
}
- $r->print(&Apache::loncommon::end_page());
} elsif ($env{'form.action'} eq 'changelogs') {
- $r->print(&header());
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>'/adm/createuser?action=changelogs',
- text=>"User Management Logs"});
- $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Changes',
- 'Course_User_Logs'));
- &print_userchangelogs_display($r,$context,$permission);
- $r->print(&Apache::loncommon::end_page());
+ push (@{$brcrum},
+ {href => '/adm/createuser?action=changelogs',
+ text => 'User Management Logs',
+ help => 'Course_User_Logs'});
+ $bread_crumbs_component = 'User Changes';
+ $args = { bread_crumbs => $brcrum,
+ bread_crumbs_component => $bread_crumbs_component};
+ $r->print(&header(undef,$args));
+ &print_userchangelogs_display($r,$context,$permission);
} else {
- $r->print(&header());
- $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management'));
+ $args = { bread_crumbs => $brcrum,
+ bread_crumbs_component => $bread_crumbs_component};
+ $r->print(&header(undef,$args));
$r->print(&print_main_menu($permission,$context,$crstype));
- $r->print(&Apache::loncommon::end_page());
}
+ $r->print(&Apache::loncommon::end_page());
return OK;
}
sub header {
- my ($jscript,$loaditems,$args) = @_;
+ my ($jscript,$args) = @_;
+ my $title = 'User Management';
+ my $is_custom = &Apache::loncommon::needs_gci_custom();
+ if ($env{'request.course.id'}) {
+ if ($is_custom) {
+ $title = 'Enrollment and Student Activity';
+ }
+ }
my $start_page;
- if (ref($loaditems) eq 'HASH') {
- $start_page=&Apache::loncommon::start_page('User Management',$jscript,{'add_entries' => $loaditems});
+ if (ref($args) eq 'HASH') {
+ $start_page=&Apache::loncommon::start_page($title,$jscript,$args);
} else {
- $start_page=&Apache::loncommon::start_page('User Management',$jscript,$args);
+ $start_page=&Apache::loncommon::start_page($title,$jscript);
}
return $start_page;
}
@@ -4318,7 +4413,8 @@ END
# Menu Phase One
sub print_main_menu {
my ($permission,$context,$crstype) = @_;
- if (($context eq 'course') && (&Apache::loncommon::needs_gci_custom())) {
+ my $is_custom = &Apache::loncommon::needs_gci_custom();
+ if (($context eq 'course') && ($is_custom)) {
return &print_gci_main_menu($permission,$context,$crstype)
}
my $linkcontext = $context;
@@ -4552,7 +4648,7 @@ sub print_gci_main_menu {
drop => 'Drop Students',
upload => 'Upload a File of Course Users',
singleuser => 'Add/Modify a Course User',
- listusers => 'Manage Course Users',
+ listusers => 'Concept Test Roster and Student Activity',
},
);
my %linktitles = (
@@ -5582,16 +5678,7 @@ sub role_display_filter {
# Update Display button
$output .= '
'
.''
- .'
';
-
- # Server version info
- $output .= '
'
- .&mt('Only changes made from servers running LON-CAPA [_1] or later are displayed.'
- ,'2.6.99.0');
- if ($version) {
- $output .= ' '.&mt('This LON-CAPA server is version [_1]',$version);
- }
- $output .= '
';
+ .'';
return $output;
}
@@ -5641,7 +5728,7 @@ sub user_search_result {
if (($srch->{'srchin'} eq 'dom') || ($srch->{'srchin'} eq 'instd')) {
if (($srch->{'srchdomain'} eq '') ||
! (&Apache::lonnet::domain($srch->{'srchdomain'}))) {
- $response = &mt('You must specify a valid domain when searching in a domain or institutional directory.')
+ $response = '
'.&mt('You must specify a valid domain when searching in a domain or institutional directory.').'
';
}
}
if (($srch->{'srchin'} eq 'dom') || ($srch->{'srchin'} eq 'crs') ||
@@ -5654,7 +5741,7 @@ sub user_search_result {
}
}
if ($unamecheck !~ /^$match_username$/) {
- $response = &mt('You must specify a valid username. Only the following are allowed: letters numbers - . @');
+ $response = '
'.&mt('You must specify a valid username. Only the following are allowed: letters numbers - . @').'
';
}
}
}
@@ -5829,7 +5916,8 @@ sub user_search_result {
($currstate,$response,$forcenewuser) =
&build_search_response($context,$srch,%srch_results);
} else {
- my $showdom = &display_domain_info($srch->{'srchdomain'}); $response = ''.
+ my $showdom = &display_domain_info($srch->{'srchdomain'});
+ $response = ''.
&mt('Institutional directory search is not available in domain: [_1]',$showdom).
' '.
&mt('You may want to search in the LON-CAPA domain instead of the institutional directory.').