'."\n".
&Apache::loncommon::end_data_table_row()."\n".
&Apache::loncommon::start_data_table_row()."\n".
@@ -282,6 +285,94 @@ sub build_tools_display {
return $output;
}
+sub coursereq_externaluser {
+ my ($ccuname,$ccdomain,$cdom) = @_;
+ my (@usertools,@options,%validations,%userenv,$output);
+ my %lt = &Apache::lonlocal::texthash (
+ 'official' => 'Can request creation of official courses',
+ 'unofficial' => 'Can request creation of unofficial courses',
+ 'community' => 'Can request creation of communities',
+ );
+
+ %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,
+ 'reqcrsotherdom.official','reqcrsotherdom.unofficial',
+ 'reqcrsotherdom.community');
+ @usertools = ('official','unofficial','community');
+ @options = ('approve','validate','autolimit');
+ %validations = &Apache::lonnet::auto_courserequest_checks($cdom);
+ my $optregex = join('|',@options);
+ my %reqtitles = &courserequest_titles();
+ foreach my $item (@usertools) {
+ my ($curroption,$currlimit,$tooloff);
+ if ($userenv{'reqcrsotherdom.'.$item} ne '') {
+ my @curr = split(',',$userenv{'reqcrsotherdom.'.$item});
+ if (grep(/^\Q$cdom\E:($optregex)=?(\d*)$/,@curr)) {
+ $curroption = $1;
+ $currlimit = $2;
+ if (!$curroption) {
+ $curroption = 'norequest';
+ }
+ }
+ } else {
+ $curroption = 'norequest';
+ $tooloff = ' checked="checked"';
+ }
+ $output.= &Apache::loncommon::start_data_table_row()."\n".
+ '
'.$lt{$item}.': '.
+ ' ';
+ foreach my $option (@options) {
+ if ($option eq 'validate') {
+ my $canvalidate = 0;
+ if (ref($validations{$item}) eq 'HASH') {
+ if ($validations{$item}{'_external_'}) {
+ $canvalidate = 1;
+ }
+ }
+ next if (!$canvalidate);
+ }
+ my $checked = '';
+ if ($option eq $curroption) {
+ $checked = ' checked="checked"';
+ }
+ $output .= ' ';
+ if ($option eq 'autolimit') {
+ $output .= '';
+ }
+ $output .= ' '
+ }
+ $output .= '
'."\n".
+ &Apache::loncommon::end_data_table_row()."\n";
+ }
+ return $output;
+}
+
+sub courserequest_titles {
+ my %titles = &Apache::lonlocal::texthash (
+ official => 'Official', unofficial => 'Unofficial',
+ community => 'Communities', norequest => 'Not allowed',
+ approve => 'Approval by Dom. Coord.',
+ validate => 'With validation',
+ autolimit => 'Numerical limit',
+ );
+ return %titles;
+}
+
+sub courserequest_display {
+ my %titles = &Apache::lonlocal::texthash (
+ approve => 'Yes, need approval',
+ validate => 'Yes, with validation',
+ norequest => 'No',
+ );
+ return %titles;
+}
+
# =================================================================== Phase one
sub print_username_entry_form {
@@ -299,7 +390,9 @@ sub print_username_entry_form {
my $jscript = &Apache::loncommon::studentbrowser_javascript()."\n".
''."\n";
my %loaditems = (
@@ -466,6 +559,7 @@ sub user_modification_js {
return <
+//
END
}
@@ -502,6 +596,7 @@ sub print_user_selection_page {
my $jscript = (<
+//
ENDSCRIPT
@@ -631,7 +727,7 @@ sub print_user_modification_page {
&Apache::lonuserutils::can_create_user($ccdomain,$context,
$usertype);
if (!$cancreate) {
- my $helplink = ' href="javascript:helpMenu('."'display'".')"';
+ my $helplink = 'javascript:helpMenu('."'display'".')';
my %usertypetext = (
official => 'institutional',
unofficial => 'non-institutional',
@@ -641,7 +737,12 @@ sub print_user_modification_page {
$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('Contact the helpdesk for assistance.',$helplink).'
';
+ $response .= '
'
+ .&mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.")
+ .' '
+ .&mt('Please contact the [_1]helpdesk[_2] for assistance.'
+ ,'','')
+ .'
'.
&Apache::loncommon::start_data_table().
@@ -1747,7 +1879,10 @@ sub update_user_data {
my $newuser = 0;
my ($jsback,$elements) = &crumb_utilities();
my $jscript = ''."\n";
+ '// '."\n".
+ ''."\n";
my %breadcrumb_text = &singleuser_breadcrumb();
my $args;
if ($env{'form.popup'}) {
@@ -1984,7 +2119,9 @@ sub update_user_data {
('environment',['firstname','middlename','lastname','generation',
'id','permanentemail','portfolioquota','inststatus','tools.aboutme',
'tools.blog','tools.portfolio','requestcourses.official',
- 'requestcourses.unofficial'],
+ 'requestcourses.unofficial','requestcourses.community',
+ 'reqcrsotherdom.official','reqcrsotherdom.unofficial',
+ 'reqcrsotherdom.community'],
$env{'form.ccdomain'},$env{'form.ccuname'});
my ($tmp) = keys(%userenv);
if ($tmp =~ /^(con_lost|error)/i) {
@@ -2086,7 +2223,7 @@ sub update_user_data {
(!$forceid)) {
if ($env{'form.cid'} ne $uidhash{$env{'form.ccuname'}}) {
$env{'form.cid'} = $userenv{'id'};
- $no_forceid_alert = &mt('New Student/Employee ID does not match existing ID for this user.')
+ $no_forceid_alert = &mt('New student/employee ID does not match existing ID for this user.')
.' '
.&mt("Change is not permitted without checking the 'Force ID change' checkbox on the previous page.")
.' '."\n";
@@ -2113,7 +2250,7 @@ sub update_user_data {
$oldinststatuses,$newinststatuses);
my ($defquota,$settingstatus) =
&Apache::loncommon::default_quota($env{'form.ccdomain'},$inststatus);
- my ($showquota,$showtools,$showrequestcourses,$showinststatus);
+ my ($showquota,$showtools,$showrequestcourses,$showinststatus,$showreqotherdom);
if (&Apache::lonnet::allowed('mpq',$env{'form.ccdomain'})) {
$showquota = 1;
}
@@ -2122,6 +2259,8 @@ sub update_user_data {
}
if (&Apache::lonnet::allowed('ccc',$env{'form.ccdomain'})) {
$showrequestcourses = 1;
+ } elsif (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) {
+ $showreqotherdom = 1;
}
if (&Apache::lonnet::allowed('mau',$env{'form.ccdomain'})) {
$showinststatus = 1;
@@ -2205,8 +2344,14 @@ sub update_user_data {
}
&tool_changes('tools',\@usertools,\%oldaccess,\%oldaccesstext,\%userenv,
\%changeHash,\%changed,\%newaccess,\%newaccesstext);
- &tool_changes('requestcourses',\@requestcourses,\%oldaccess,\%oldaccesstext,
- \%userenv, \%changeHash,\%changed,\%newaccess,\%newaccesstext);
+
+ if ($env{'form.ccdomain'} eq $env{'request.role.domain'}) {
+ &tool_changes('requestcourses',\@requestcourses,\%oldaccess,\%oldaccesstext,
+ \%userenv,\%changeHash,\%changed,\%newaccess,\%newaccesstext);
+ } else {
+ &tool_changes('reqcrsotherdom',\@requestcourses,\%oldaccess,\%oldaccesstext,
+ \%userenv,\%changeHash,\%changed,\%newaccess,\%newaccesstext);
+ }
if ($env{'form.cfirstname'} ne $userenv{'firstname'} ||
$env{'form.cmiddlename'} ne $userenv{'middlename'} ||
$env{'form.clastname'} ne $userenv{'lastname'} ||
@@ -2319,6 +2464,11 @@ END
$r->print("
';
+ }
+ return $menu_html;
}
sub restore_prev_selections {
@@ -3973,7 +4210,9 @@ ENDSCRIPT
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
my $output = ''."\n".
'
'.$lt->{'selfenroll'}.'
'."\n";
my ($visible,$cansetvis,$vismsgs,$visactions) = &visible_in_cat($cdom,$cnum);
@@ -4865,6 +5104,7 @@ sub print_userchangelogs_display {
$r->print('');
$r->print(<<"ENDSCRIPT");
ENDSCRIPT
}
} else {
- $r->print(&mt('There are no records to display'));
+ $r->print('
'.
+ &mt('There are no records to display').
+ '
');
}
$r->print(''.
'');
@@ -4891,7 +5134,7 @@ sub role_display_filter {
my $context = 'course';
my $nolink = 1;
my $output = '
';
@@ -4932,7 +5175,7 @@ sub role_display_filter {
foreach my $chgtype ('any','auto','updatenow','createcourse','course','domain','selfenroll') {
my $selstr = '';
if ($curr->{'chgcontext'} eq $chgtype) {
- $output .= $selstr = ' selected="selected"';
+ $selstr = ' selected="selected"';
}
if (($chgtype eq 'auto') || ($chgtype eq 'updatenow')) {
next if (!&Apache::lonnet::auto_run($cnum,$cdom));
@@ -4945,7 +5188,7 @@ sub role_display_filter {
&mt('[_1]Note:[_2] Only changes made from servers running LON-CAPA 2.6.99.0 or later are displayed.');
if ($version) {
$output .= ' '.&mt('This server is version [_3].','','',$version); }
- $output .= ' ';
+ $output .= ' ';
return $output;
}
@@ -5358,7 +5601,7 @@ sub build_search_response {
.&mt("You are not authorized to create new users in your current role's domain - [_1]."
,''.$env{'request.role.domain'}.'')
.' '
- .&mt('Contact the [_1]helpdesk[_2] if you need to create a new user.'
+ .&mt('Please contact the [_1]helpdesk[_2] if you need to create a new user.'
,' '
,'')
.'
';
@@ -5574,7 +5817,7 @@ sub course_level_dc {
'
'.$courseform.'
'.$lt{'rol'}.'
'.$lt{'grs'}.'
'.$lt{'sta'}.'
'.$lt{'end'}.'
'.
&Apache::loncommon::end_data_table_header_row();
my $otheritems = &Apache::loncommon::start_data_table_row()."\n".
- '