'.&mt('Continue').''.
- &Apache::loncommon::end_page());
+ ' '.&mt('Continue').''
+ );
+ $r->print(&Apache::loncommon::end_page());
}
sub handler {
@@ -243,12 +255,12 @@ sub handler {
# Check if user is a DC trying to enter a course or author space and needs privs to be created
if ($numdc > 0) {
foreach my $envkey (keys %env) {
-# Is this an ad-hoc Coordinator role?
- if (my ($ccrole,$domain,$coursenum) =
- ($envkey =~ m-^form\.(cc|co)\./($match_domain)/($match_courseid)$-)) {
+# Is this an ad-hoc CC-role?
+ if (my ($domain,$coursenum) =
+ ($envkey =~ m-^form\.cc\./($match_domain)/($match_courseid)$-)) {
if ($dcroles{$domain}) {
&Apache::lonnet::check_adhoc_privs($domain,$coursenum,
- $then,$refresh,$now,$ccrole);
+ $then,$refresh,$now,'cc');
}
last;
}
@@ -261,7 +273,7 @@ sub handler {
my ($server_status,$home) = &check_author_homeserver($user,$domain);
if ($server_status eq 'switchserver') {
my $trolecode = 'au./'.$domain.'/';
- my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
+ my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
$r->internal_redirect($switchserver);
}
last;
@@ -272,7 +284,7 @@ sub handler {
my ($server_status,$home) = &check_author_homeserver($user,$domain);
if ($server_status eq 'switchserver') {
my $trolecode = 'ca./'.$domain.'/'.$user;
- my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
+ my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
$r->internal_redirect($switchserver);
}
last;
@@ -293,7 +305,7 @@ sub handler {
if ($server_status eq 'switchserver') {
my $trolecode = 'ca./'.$domain.'/'.$user;
my $switchserver = '/adm/switchserver?'
- .'otherserver='.$home.'&role='.$trolecode;
+ .'otherserver='.$home.'&role='.$trolecode;
$r->internal_redirect($switchserver);
}
} else {
@@ -479,8 +491,8 @@ ENDENTERKEY
$courseid = substr($courseid, 1);
}
$courseid =~ s/\//_/;
- if ((($role eq 'cc') || ($role eq 'co'))
- && ($env{'course.' . $courseid .'.course.helper.not.run'})) {
+ if ($role eq 'cc' && $env{'course.' . $courseid .
+ '.course.helper.not.run'}) {
$furl = "/adm/helper/course.initialization.helper";
# Send the user to the course they selected
} elsif ($env{'request.course.id'}) {
@@ -663,8 +675,7 @@ ENDHEADER
} else {
$r->print(
'
'.
- &mt('You need to choose another user role or enter a specific course or community for this function.').
- '
');
+ &mt('You need to choose another user role or enter a specific course or community for this function').'');
}
}
}
@@ -692,17 +703,15 @@ ENDHEADER
$refresh = $now;
&Apache::lonnet::appenv({'user.refresh.time' => $refresh});
if ($env{'user.adv'}) {
- $r->print('');
} else {
if ($countactive > 0) {
- $r->print(&Apache::loncoursequeueadmin::queued_selfenrollment());
+ &queued_selfenrollment($r);
my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');
my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&');
-
$r->print(
'
'
.&mt('[_1]Visit the [_2]Course/Community Catalog[_3]'
@@ -711,7 +720,7 @@ ENDHEADER
,''
,'',$domdesc)
.' '
- .&mt('If a course or community is [_1]not[_2] in your list of current courses and communities below,'
+ .&mt('If a course or community is [_1]not[_2] in your list of current courses below,'
.' you may be able to enroll if self-enrollment is permitted.'
,'','')
.'
'
@@ -727,7 +736,7 @@ ENDHEADER
$r->print('
'.&mt('Currently no active roles, courses or communities').'
');
}
&findcourse_advice($r);
- &requestcourse_advice($r);
+ &requestcourse_advice($r);
$r->print('');
if ($countfuture) {
$r->print(&mt('The following [quant,_1,role,roles] will become active in the future:',$countfuture));
@@ -758,12 +767,6 @@ ENDHEADER
return OK;
}
# ----------------------------------------------------------------------- Table
- if ($numdc > 0) {
- $r->print(&coursepick_jscript());
- $r->print(&Apache::loncommon::coursebrowser_javascript().
- &Apache::loncommon::authorbrowser_javascript());
- }
-
unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) {
$r->print("
".&mt('Select a Course to Enter')."
\n");
}
@@ -780,31 +783,23 @@ ENDHEADER
my %recent_roles =
&Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'});
my $output='';
- foreach my $role (sort(keys(%recent_roles))) {
- if (ref($roletext{'user.role.'.$role}) eq 'ARRAY') {
+ foreach (sort(keys(%recent_roles))) {
+ if (ref($roletext{'user.role.'.$_}) eq 'ARRAY') {
$output.= &Apache::loncommon::start_data_table_row().
- $roletext{'user.role.'.$role}->[0].
+ $roletext{'user.role.'.$_}->[0].
+ &Apache::loncommon::end_data_table_row().
+ &Apache::loncommon::continue_data_table_row().
+ $roletext{'user.role.'.$_}->[1].
&Apache::loncommon::end_data_table_row();
- if ($roletext{'user.role.'.$role}->[1] ne '') {
- $output .= &Apache::loncommon::continue_data_table_row().
- $roletext{'user.role.'.$role}->[1].
- &Apache::loncommon::end_data_table_row();
- }
- if ($role =~ m{dc\./($match_domain)/}
+ if ($_ =~ m-dc\./($match_domain)/-
&& $dcroles{$1}) {
$output .= &adhoc_roles_row($1,'recent');
}
} elsif ($numdc > 0) {
- unless ($role =~/^error\:/) {
- my ($roletext,$role_text_end) = &display_cc_role('user.role.'.$role);
- $output.= &Apache::loncommon::start_data_table_row().
- $roletext.
- &Apache::loncommon::end_data_table_row().
- &Apache::loncommon::continue_data_table_row().
- $role_text_end.
- &Apache::loncommon::end_data_table_row();
+ unless ($_ =~/^error\:/) {
+ $output.=&display_cc_role('user.role.'.$_);
}
- }
+ }
}
if ($output) {
$r->print(&Apache::loncommon::start_data_table_empty_row()
@@ -817,6 +812,12 @@ ENDHEADER
$doheaders ++;
}
}
+
+ if ($numdc > 0) {
+ $r->print(&coursepick_jscript());
+ $r->print(&Apache::loncommon::coursebrowser_javascript().
+ &Apache::loncommon::authorbrowser_javascript());
+ }
&print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles,\%roletext);
if ($countactive > 1) {
my $tremark='';
@@ -939,7 +940,7 @@ sub gather_roles {
foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
if (!$allowed) {
$button=0;
- $switchserver='otherserver='.$home.'&role='.$trolecode;
+ $switchserver='otherserver='.$home.'&role='.$trolecode;
}
#next if ($home eq 'no_host');
$home = &Apache::lonnet::hostname($home);
@@ -959,7 +960,7 @@ sub gather_roles {
foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
if (!$allowed) {
$button=0;
- $switchserver='otherserver='.$home.'&role='.$trolecode;
+ $switchserver='otherserver='.$home.'&role='.$trolecode;
}
#next if ($home eq 'no_host');
$home = &Apache::lonnet::hostname($home);
@@ -972,11 +973,10 @@ sub gather_roles {
} elsif ($trest) {
my $tcourseid=$tdom.'_'.$trest;
$ttype = &Apache::loncommon::course_type($tcourseid);
- $trole = &Apache::lonnet::plaintext($role,$ttype,$tcourseid);
+ $trole = &Apache::lonnet::plaintext($role,$ttype);
if ($env{'course.'.$tcourseid.'.description'}) {
$twhere=$env{'course.'.$tcourseid.'.description'};
$sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey;
- $twhere = &HTML::Entities::encode($twhere,'"<>&');
unless ($twhere eq &mt('Currently not available')) {
$twhere.=' '.
&Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
@@ -987,12 +987,12 @@ sub gather_roles {
if (%newhash) {
$sortkey=$role."\0".$tdom."\0".$newhash{'description'}.
"\0".$envkey;
- $twhere=&HTML::Entities::encode($newhash{'description'},'"<>&').
+ $twhere=$newhash{'description'}.
' '.
&Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
'';
$ttype = $newhash{'type'};
- $trole = &Apache::lonnet::plaintext($role,$ttype,$tcourseid);
+ $trole = &Apache::lonnet::plaintext($role,$ttype);
} else {
$twhere=&mt('Currently not available');
$env{'course.'.$tcourseid.'.description'}=$twhere;
@@ -1108,7 +1108,7 @@ sub roletable_headers {
}
sub roletypes {
- my @types = ('Domain','Construction Space','Course','Community','Unavailable','System');
+ my @types = ('Domain','Construction Space','Course','Unavailable','System');
return @types;
}
@@ -1170,10 +1170,10 @@ sub findcourse_advice {
} else {
$r->print(&mt('If you were expecting to see an active role listed for a particular course, that course may not have been created yet.').' ');
}
- $r->print('
'.&mt('Self-Enrollment').'
'.
+ $r->print('
'.&mt('Self Enrollment').'
'.
'
'.&mt('The [_1]Course/Community Catalog[_2] provides information about all [_3] classes for which LON-CAPA courses have been created, as well as any communities in the domain.','','',$domdesc).' ');
- $r->print(&mt('You can search for courses and communities which permit self-enrollment, if you would like to enroll in one.').'
'.
- &Apache::loncoursequeueadmin::queued_selfenrollment());
+ $r->print(&mt('You can search the course catalog for courses and communities which permit self-enrollment, if you would like to enroll in one.').'');
+ &queued_selfenrollment($r);
return;
}
@@ -1185,22 +1185,16 @@ sub requestcourse_advice {
&Apache::lonnet::check_can_request($env{'user.domain'},\%can_request,\%request_doms);
if (keys(%request_doms) > 0) {
my ($types,$typename) = &Apache::loncommon::course_types();
- if ((ref($types) eq 'ARRAY') && (ref($typename) eq 'HASH')) {
+ if ((ref($types) eq 'ARRAY') && (ref($typename) eq 'HASH')) {
$r->print('
'.&mt('Request creation of a course or community').'
'.
- '
'.&mt('You have rights to request the creation of courses and/or communities in the following domain(s):').'
');
+ '
'.&mt('You have rights to create courses and/or communities in the following domain(s):').'
');
my (@reqdoms,@reqtypes);
foreach my $type (sort(keys(%request_doms))) {
- push(@reqtypes,$type);
+ push(@reqtypes,$type);
if (ref($request_doms{$type}) eq 'ARRAY') {
my $domstr = join(', ',map { &Apache::lonnet::domain($_) } sort(@{$request_doms{$type}}));
- $r->print(
- '
'.&mt('Use the [_1]request form[_2] to submit a request for creation of a new course or community.','','').'');
}
}
return;
}
+sub queued_selfenrollment {
+ my ($r) = @_;
+ my %selfenrollrequests = &Apache::lonnet::dump('selfenrollrequests');
+ my %reqs_by_date;
+ foreach my $item (keys(%selfenrollrequests)) {
+ if (ref($selfenrollrequests{$item}) eq 'HASH') {
+ if ($selfenrollrequests{$item}{'status'} eq 'request') {
+ if ($selfenrollrequests{$item}{'timestamp'}) {
+ push(@{$reqs_by_date{$selfenrollrequests{$item}{'timestamp'}}},$item);
+ }
+ }
+ }
+ }
+ if (keys(%reqs_by_date)) {
+ my $rolename = &Apache::lonnet::plaintext('st');
+ $r->print(''.&mt('Enrollment requests pending Course Coordinator approval').' '.
+ &Apache::loncommon::start_data_table().
+ &Apache::loncommon::start_data_table_header_row().
+ '
'.&mt('Date requested').'
'.&mt('Course title').'
'.
+ '
'.&mt('User role').'
'.&mt('Section').'
'.
+ &Apache::loncommon::end_data_table_header_row());
+ my @sorted = sort { $a <=> $b } (keys(%reqs_by_date));
+ foreach my $item (@sorted) {
+ if (ref($reqs_by_date{$item}) eq 'ARRAY') {
+ foreach my $crs (@{$reqs_by_date{$item}}) {
+ my %courseinfo = &Apache::lonnet::coursedescription($crs);
+ my $usec = $selfenrollrequests{$crs}{'section'};
+ if ($usec eq '') {
+ $usec = &mt('No section');
+ }
+ $r->print(&Apache::loncommon::start_data_table_row().
+ '
'.&Apache::lonlocal::locallocaltime($item).'
'.
+ '
'.$courseinfo{'description'}.'
'.
+ '
'.$rolename.'
'.$usec.'
'.
+ &Apache::loncommon::end_data_table_row());
+ }
+ }
+ }
+ $r->print(&Apache::loncommon::end_data_table());
+ }
+ return;
+}
+
sub privileges_info {
my ($which) = @_;
my $output;
@@ -1409,11 +1446,10 @@ sub check_fordc {
sub adhoc_course_role {
my ($refresh,$then) = @_;
- my ($cdom,$cnum,$crstype);
+ my ($cdom,$cnum);
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
- $crstype = &Apache::loncommon::course_type();
- if (&check_forcc($cdom,$cnum,$refresh,$then,$crstype)) {
+ if (&check_forcc($cdom,$cnum,$refresh,$then)) {
my $setprivs;
if (!defined($env{'user.role.'.$env{'form.switchrole'}})) {
$setprivs = 1;
@@ -1463,16 +1499,11 @@ sub adhoc_course_role {
}
sub check_forcc {
- my ($cdom,$cnum,$refresh,$then,$crstype) = @_;
- my ($is_cc,$ccrole);
- if ($crstype eq 'Community') {
- $ccrole = 'co';
- } else {
- $ccrole = 'cc';
- }
+ my ($cdom,$cnum,$refresh,$then) = @_;
+ my $is_cc;
if ($cdom ne '' && $cnum ne '') {
if (&Apache::lonnet::is_course($cdom,$cnum)) {
- my $envkey = 'user.role.'.$ccrole.'./'.$cdom.'/'.$cnum;
+ my $envkey = 'user.role.cc./'.$cdom.'/'.$cnum;
if (defined($env{$envkey})) {
$is_cc = 1;
my ($tstart,$tend)=split(/\./,$env{$envkey});
@@ -1489,7 +1520,7 @@ sub courselink {
my $courseform=&Apache::loncommon::selectcourse_link
('rolechoice','dccourse'.$rowtype.'_'.$dcdom,
'dcdomain'.$rowtype.'_'.$dcdom,'coursedesc'.$rowtype.'_'.
- $dcdom,$dcdom,undef,'Course/Community');
+ $dcdom,$dcdom,undef);
my $hiddenitems = ''.
''.
''.
@@ -1499,7 +1530,7 @@ sub courselink {
sub coursepick_jscript {
my %lt = &Apache::lonlocal::texthash(
- plsu => "Please use the 'Select Course/Community' link to open a separate pick course window where you may select the course or community you wish to enter.",
+ plsu => "Please use the 'Select Course' link to open a separate pick course window where you may select the course or community you wish to enter.",
youc => 'You can only use this screen to select courses and communities in the current domain.',
);
my $verify_script = <<"END";
@@ -1552,12 +1583,9 @@ sub display_cc_role {
my $advanced = $env{'user.adv'};
my $tryagain = $env{'form.tryagain'};
unless ($rolekey =~/^error\:/) {
- if ($rolekey =~ m{^user\.role\.(cc|co)\./($match_domain)/($match_courseid)$}) {
- my $ccrole = $1;
- my $tdom = $2;
- my $trest = $3;
- my $tcourseid = $tdom.'_'.$trest;
- my $trolecode = $ccrole.'./'.$tdom.'/'.$trest;
+ if ($rolekey =~ m-^user\.role.cc\./($match_domain)/($match_courseid)$-) {
+ my $tcourseid = $1.'_'.$2;
+ my $trolecode = 'cc./'.$1.'/'.$2;
my $twhere;
my $ttype;
my $tbg='LC_roles_is';
@@ -1565,16 +1593,16 @@ sub display_cc_role {
if (%newhash) {
$twhere=$newhash{'description'}.
' '.
- &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
+ &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$2,$1).
'';
$ttype = $newhash{'type'};
} else {
$twhere=&mt('Currently not available');
$env{'course.'.$tcourseid.'.description'}=$twhere;
}
- my $trole = &Apache::lonnet::plaintext($ccrole,$ttype,$tcourseid);
+ my $trole = &Apache::lonnet::plaintext('cc',$ttype);
$twhere.=" ".&mt('Domain').":".$1;
- ($roletext,$roletext_end) = &build_roletext($trolecode,$tdom,$trest,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,'');
+ ($roletext,$roletext_end) = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,'');
}
}
return ($roletext,$roletext_end);
@@ -1588,11 +1616,11 @@ sub adhoc_roles_row {
,'','',$dcdom)
.' ';
my $selectcclink = &courselink($dcdom,$rowtype);
- my $ccrole = &Apache::lonnet::plaintext('co',undef,undef,1);
+ my $ccrole = &Apache::lonnet::plaintext('cc');
my $carole = &Apache::lonnet::plaintext('ca');
my $selectcalink = &coauthorlink($dcdom,$rowtype);
$output.=$ccrole.': '.$selectcclink
- .' | '.$carole.': '.$selectcalink.''
+ .' | '.$carole.': '.$selectcalink
.&Apache::loncommon::end_data_table_row();
return $output;
}