version 1.239, 2009/10/31 05:44:35
|
version 1.240.2.16, 2010/09/03 19:20:51
|
Line 138 use Apache::lonannounce;
|
Line 138 use Apache::lonannounce;
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonpageflip(); |
use Apache::lonpageflip(); |
use Apache::lonnavdisplay(); |
use Apache::lonnavdisplay(); |
|
use Apache::lonmainmenu(); |
|
use Apache::loncoursequeueadmin; |
use GDBM_File; |
use GDBM_File; |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
use HTML::Entities; |
use HTML::Entities; |
Line 164 sub redirect_user {
|
Line 166 sub redirect_user {
|
my $start_page = &Apache::loncommon::start_page('Switching Role',undef, |
my $start_page = &Apache::loncommon::start_page('Switching Role',undef, |
{'redirect' => [1,$url], |
{'redirect' => [1,$url], |
'bread_crumbs' => $brcrum,}); |
'bread_crumbs' => $brcrum,}); |
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
my $end_page = &Apache::loncommon::end_page(); |
my $end_page = &Apache::loncommon::end_page(); |
|
|
# Note to style police: |
# Note to style police: |
Line 224 sub handler {
|
Line 227 sub handler {
|
my %dcroles = (); |
my %dcroles = (); |
my $numdc = &check_fordc(\%dcroles,$then); |
my $numdc = &check_fordc(\%dcroles,$then); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}); |
|
my $custommenu = &Apache::loncommon::needs_gci_custom(); |
|
|
# ================================================================== Roles Init |
# ================================================================== Roles Init |
if ($env{'form.selectrole'}) { |
if ($env{'form.selectrole'}) { |
Line 255 sub handler {
|
Line 259 sub handler {
|
# Check if user is a DC trying to enter a course or author space and needs privs to be created |
# Check if user is a DC trying to enter a course or author space and needs privs to be created |
if ($numdc > 0) { |
if ($numdc > 0) { |
foreach my $envkey (keys %env) { |
foreach my $envkey (keys %env) { |
# Is this an ad-hoc CC-role? |
# Is this an ad-hoc Coordinator role? |
if (my ($domain,$coursenum) = |
if (my ($ccrole,$domain,$coursenum) = |
($envkey =~ m-^form\.cc\./($match_domain)/($match_courseid)$-)) { |
($envkey =~ m-^form\.(cc|co)\./($match_domain)/($match_courseid)$-)) { |
if ($dcroles{$domain}) { |
if ($dcroles{$domain}) { |
&Apache::lonnet::check_adhoc_privs($domain,$coursenum, |
&Apache::lonnet::check_adhoc_privs($domain,$coursenum, |
$then,$refresh,$now,'cc'); |
$then,$refresh,$now,$ccrole); |
} |
} |
last; |
last; |
} |
} |
Line 318 sub handler {
|
Line 322 sub handler {
|
} |
} |
} |
} |
} |
} |
|
if (($env{'form.cm'}) && ($env{'form.orgurl'})) { |
|
$r->internal_redirect($env{'form.orgurl'}); |
|
} |
foreach $envkey (keys %env) { |
foreach $envkey (keys %env) { |
next if ($envkey!~/^user\.role\./); |
next if ($envkey!~/^user\.role\./); |
my ($where,$trolecode,$role,$tstatus,$tend,$tstart); |
my ($where,$trolecode,$role,$tstatus,$tend,$tstart); |
Line 445 ENDENTERKEY
|
Line 451 ENDENTERKEY
|
|
|
if (($cnum) && ($role ne 'ca') && ($role ne 'aa')) { |
if (($cnum) && ($role ne 'ca') && ($role ne 'aa')) { |
my $msg; |
my $msg; |
|
if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } |
|
&Apache::lonnet::appenv({'request.role.adv'=>$tadv}); |
my ($furl,$ferr)= |
my ($furl,$ferr)= |
&Apache::lonuserstate::readmap($cdom.'/'.$cnum); |
&Apache::lonuserstate::readmap($cdom.'/'.$cnum); |
|
if ($custommenu) { |
|
unless (($ferr) || ($env{'form.switchrole'})) { |
|
&Apache::lonnet::put('nohist_crslastlogin',{$env{'user.name'}.':'.$env{'user.domain'}.':'.$csec.':'.$role => $now}, |
|
$cdom,$cnum); |
|
} |
|
} |
if (($env{'form.orgurl'}) && |
if (($env{'form.orgurl'}) && |
($env{'form.orgurl'}!~/^\/adm\/flip/)) { |
($env{'form.orgurl'}!~/^\/adm\/flip/)) { |
my $dest=$env{'form.orgurl'}; |
my $dest=$env{'form.orgurl'}; |
Line 458 ENDENTERKEY
|
Line 472 ENDENTERKEY
|
} |
} |
$dest .= 'symb='.$env{'form.symb'}; |
$dest .= 'symb='.$env{'form.symb'}; |
} |
} |
if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } |
|
&Apache::lonnet::appenv({'request.role.adv'=>$tadv}); |
|
if (($ferr) && ($tadv)) { |
if (($ferr) && ($tadv)) { |
&error_page($r,$ferr,$dest); |
&error_page($r,$ferr,$dest); |
} else { |
} else { |
Line 478 ENDENTERKEY
|
Line 490 ENDENTERKEY
|
.'<p>'.&mt('Please try again.').'</p>' |
.'<p>'.&mt('Please try again.').'</p>' |
.'<p>'.$ferr.'</p>'; |
.'<p>'.$ferr.'</p>'; |
} |
} |
if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } |
|
&Apache::lonnet::appenv({'request.role.adv'=>$tadv}); |
|
|
|
if (($ferr) && ($tadv)) { |
if (($ferr) && ($tadv)) { |
&error_page($r,$ferr,$furl); |
&error_page($r,$ferr,$furl); |
Line 491 ENDENTERKEY
|
Line 501 ENDENTERKEY
|
$courseid = substr($courseid, 1); |
$courseid = substr($courseid, 1); |
} |
} |
$courseid =~ s/\//_/; |
$courseid =~ s/\//_/; |
if ($role eq 'cc' && $env{'course.' . $courseid . |
if (($cdom ne 'gcitest') && (($role eq 'cc') || ($role eq 'co')) |
'.course.helper.not.run'}) { |
&& ($env{'course.' . $courseid .'.course.helper.not.run'})) { |
$furl = "/adm/helper/course.initialization.helper"; |
$furl = "/adm/helper/course.initialization.helper"; |
# Send the user to the course they selected |
# Send the user to the course they selected |
} elsif ($env{'request.course.id'}) { |
} elsif ($env{'request.course.id'}) { |
Line 515 ENDENTERKEY
|
Line 525 ENDENTERKEY
|
.$env{'request.course.sec'}) |
.$env{'request.course.sec'}) |
) { |
) { |
my $startpage = &courseloadpage($courseid); |
my $startpage = &courseloadpage($courseid); |
unless ($startpage eq 'firstres') { |
unless (($startpage eq 'firstres') || ($cdom eq 'gcitest')) { |
$msg = &mt('Entering [_1] ...', |
$msg = &mt('Entering [_1] ...', |
$env{'course.'.$courseid.'.description'}); |
$env{'course.'.$courseid.'.description'}); |
&redirect_user($r,&mt('New in course'), |
&redirect_user($r,&mt('New in course'), |
Line 530 ENDENTERKEY
|
Line 540 ENDENTERKEY
|
# Guess not ... |
# Guess not ... |
$furl=&Apache::lonpageflip::first_accessible_resource(); |
$furl=&Apache::lonpageflip::first_accessible_resource(); |
} |
} |
|
if (($cdom eq 'gcitest') && ($custommenu)) { |
|
$furl = '/adm/navmaps'; |
|
} |
$msg = &mt('Entering [_1] ...', |
$msg = &mt('Entering [_1] ...', |
$env{'course.'.$courseid.'.description'}); |
$env{'course.'.$courseid.'.description'}); |
&redirect_user($r,&mt('Entering [_1]', |
&redirect_user($r,&mt('Entering [_1]', |
Line 572 ENDENTERKEY
|
Line 585 ENDENTERKEY
|
} |
} |
} |
} |
|
|
|
|
# =============================================================== No Roles Init |
# =============================================================== No Roles Init |
|
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
Line 580 ENDENTERKEY
|
Line 592 ENDENTERKEY
|
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
my $crumbtext = 'User Roles'; |
my ($crumbtext,$pagetitle,$recent,$show_course); |
my $pagetitle = 'My Roles'; |
|
my $recent = &mt('Recent Roles'); |
|
my $show_course=&Apache::loncommon::show_course(); |
|
if ($show_course) { |
|
$crumbtext = 'Courses'; |
|
$pagetitle = 'My Courses'; |
|
$recent = &mt('Recent Courses'); |
|
} |
|
my $brcrum =[{href=>"/adm/roles",text=>$crumbtext}]; |
|
my $swinfo=&Apache::lonmenu::rawconfig(); |
|
my $start_page=&Apache::loncommon::start_page($pagetitle,undef,{bread_crumbs=>$brcrum}); |
|
my $standby=&mt('Role selected. Please stand by.'); |
|
$standby=~s/\n/\\n/g; |
|
my $noscript='<span class="LC_error">'.&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.').'<br />'.&mt('As this is not the case, most functionality in the system will be unavailable.').'</span><br />'; |
my $noscript='<span class="LC_error">'.&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.').'<br />'.&mt('As this is not the case, most functionality in the system will be unavailable.').'</span><br />'; |
|
if ($custommenu) { |
$r->print(<<ENDHEADER); |
my $start_page = &Apache::loncommon::start_page('Main Menu',undef, |
|
{'bread_crumbs' => 1}); |
|
$r->print(<<"ENDCUSTOM"); |
|
$start_page |
|
<br /> |
|
<noscript> |
|
$noscript |
|
</noscript> |
|
ENDCUSTOM |
|
} else { |
|
$crumbtext = 'User Roles'; |
|
$pagetitle = 'My Roles'; |
|
$recent = &mt('Recent Roles'); |
|
$show_course=&Apache::loncommon::show_course(); |
|
if ($show_course) { |
|
$crumbtext = 'Courses'; |
|
$pagetitle = 'My Courses'; |
|
$recent = &mt('Recent Courses'); |
|
} |
|
my $brcrum =[{href=>"/adm/roles",text=>$crumbtext}]; |
|
my $swinfo=&Apache::lonmenu::rawconfig(); |
|
my $start_page=&Apache::loncommon::start_page($pagetitle,undef,{bread_crumbs=>$brcrum}); |
|
my $standby=&mt('Role selected. Please stand by.'); |
|
$standby=~s/\n/\\n/g; |
|
$r->print(<<ENDHEADER); |
$start_page |
$start_page |
<br /> |
<br /> |
<noscript> |
<noscript> |
Line 623 function enterrole (thisform,rolecode,bu
|
Line 646 function enterrole (thisform,rolecode,bu
|
// ]]> |
// ]]> |
</script> |
</script> |
ENDHEADER |
ENDHEADER |
|
} |
|
|
# ------------------------------------------ Get Error Message from Environment |
# ------------------------------------------ Get Error Message from Environment |
|
|
Line 690 ENDHEADER
|
Line 714 ENDHEADER
|
if (($ENV{'REDIRECT_QUERY_STRING'}) && ($fn)) { |
if (($ENV{'REDIRECT_QUERY_STRING'}) && ($fn)) { |
$fn.='?'.$ENV{'REDIRECT_QUERY_STRING'}; |
$fn.='?'.$ENV{'REDIRECT_QUERY_STRING'}; |
} |
} |
$r->print('<form method="post" name="rolechoice" action="'.(($fn)?$fn:$r->uri).'">'); |
unless ($custommenu) { |
$r->print('<input type="hidden" name="orgurl" value="'.$fn.'" />'); |
$r->print('<form method="post" name="rolechoice" action="'.(($fn)?$fn:$r->uri).'">'); |
$r->print('<input type="hidden" name="selectrole" value="1" />'); |
$r->print('<input type="hidden" name="orgurl" value="'.$fn.'" />'); |
$r->print('<input type="hidden" name="newrole" value="" />'); |
$r->print('<input type="hidden" name="selectrole" value="1" />'); |
|
$r->print('<input type="hidden" name="newrole" value="" />'); |
|
} |
} |
} |
|
|
my (%roletext,%sortrole,%roleclass,%futureroles,%timezones); |
my (%roletext,%sortrole,%roleclass,%futureroles,%timezones); |
Line 703 ENDHEADER
|
Line 729 ENDHEADER
|
|
|
$refresh = $now; |
$refresh = $now; |
&Apache::lonnet::appenv({'user.refresh.time' => $refresh}); |
&Apache::lonnet::appenv({'user.refresh.time' => $refresh}); |
|
if (!$countactive && !$countfuture) { |
|
if (&Apache::loncommon::new_roles_update()) { |
|
($countactive,$countfuture,$inrole,$possiblerole) = |
|
&gather_roles($then,$refresh,$now,$reinit,$nochoose,\%roletext,\%sortrole, |
|
\%roleclass,\%futureroles,\%timezones); |
|
} |
|
} |
|
if ($custommenu) { |
|
if ($env{'form.destinationurl'} eq '/adm/gci_info') { |
|
$r->print(&gci_info_page()). |
|
&Apache::loncommon::end_page(); |
|
return OK; |
|
} |
|
my %courses = &Apache::loncommon::existing_gcitest_courses('cc'); |
|
$env{'browser.interface'}='faketextual'; |
|
$env{'environment.remote'}='off'; |
|
my $numcourses = keys(%courses); |
|
my $switcher; |
|
if ($numcourses > 0) { |
|
$switcher = &Apache::lonmainmenu::gcitest_switcher('cc',%courses); |
|
my $current; |
|
if ($env{'request.course.id'}) { |
|
$current = 'cc./'.$env{'course.'.$env{'request.course.id'}.'.domain'}. |
|
'/'.$env{'course.'.$env{'request.course.id'}.'.num'}; |
|
} |
|
my $switcher_js = &Apache::lonmainmenu::gcitest_switcher_js($current,$numcourses); |
|
$r->print(<<"ENDSCRIPT"); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
$switcher_js |
|
// ]]> |
|
</script> |
|
ENDSCRIPT |
|
} |
|
$r->print(&Apache::lonmenu::inlinemenu('gcicustom',$switcher). |
|
&Apache::loncommon::end_page()); |
|
return OK; |
|
} else { |
|
if ($env{'form.destinationurl'} eq '/adm/gci_info') { |
|
delete($env{'form.destinationurl'}); |
|
} |
|
} |
if ($env{'user.adv'}) { |
if ($env{'user.adv'}) { |
$r->print('<p><label><input type="checkbox" name="showall"'); |
$r->print('<p><label><input type="checkbox" name="showall"'); |
if ($env{'form.showall'}) { $r->print(' checked="checked" '); } |
if ($env{'form.showall'}) { $r->print(' checked="checked" '); } |
Line 711 ENDHEADER
|
Line 779 ENDHEADER
|
.'</p>'); |
.'</p>'); |
} else { |
} else { |
if ($countactive > 0) { |
if ($countactive > 0) { |
&queued_selfenrollment($r); |
$r->print(&Apache::loncoursequeueadmin::queued_selfenrollment()); |
my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description'); |
my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description'); |
my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); |
my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); |
$r->print( |
unless ($env{'user.domain'} eq 'gcitest') { |
'<p>' |
$r->print( |
.&mt('[_1]Visit the [_2]Course/Community Catalog[_3]' |
'<p>' |
.' to view all [_4] LON-CAPA courses and communities.' |
.&mt('[_1]Visit the [_2]Course/Community Catalog[_3]' |
,'<b>' |
.' to view all [_4] LON-CAPA courses and communities.' |
,'<a href="/adm/coursecatalog?showdom='.$esc_dom.'">' |
,'<b>' |
,'</a></b>',$domdesc) |
,'<a href="/adm/coursecatalog?showdom='.$esc_dom.'">' |
.'<br />' |
,'</a></b>',$domdesc) |
.&mt('If a course or community is [_1]not[_2] in your list of current courses and communities below,' |
.'<br />' |
|
.&mt('If a course or community is [_1]not[_2] in your list of current courses and communities below,' |
.' you may be able to enroll if self-enrollment is permitted.' |
.' you may be able to enroll if self-enrollment is permitted.' |
,'<b>','</b>') |
,'<b>','</b>') |
.'</p>' |
.'</p>' |
); |
); |
|
} |
} |
} |
} |
} |
|
|
Line 737 ENDHEADER
|
Line 807 ENDHEADER
|
} else { |
} else { |
$r->print('<h2>'.&mt('Currently no active roles, courses or communities').'</h2>'); |
$r->print('<h2>'.&mt('Currently no active roles, courses or communities').'</h2>'); |
} |
} |
&findcourse_advice($r); |
unless ($env{'user.domain'} eq 'gcitest') { |
&requestcourse_advice($r); |
&findcourse_advice($r); |
|
&requestcourse_advice($r); |
|
} |
$r->print('</form>'); |
$r->print('</form>'); |
if ($countfuture) { |
if ($countfuture) { |
$r->print(&mt('The following [quant,_1,role,roles] will become active in the future:',$countfuture)); |
$r->print(&mt('The following [quant,_1,role,roles] will become active in the future:',$countfuture)); |
Line 767 ENDHEADER
|
Line 839 ENDHEADER
|
} |
} |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
|
} elsif ($countactive==1) { # Is there only one choice? |
|
my $needs_switchserver; |
|
if ($env{'user.author'}) { |
|
$needs_switchserver = &check_needs_switchserver($possiblerole); |
|
} |
|
if ((!$needs_switchserver) && ($env{'request.role'} eq 'cm')) { |
|
$r->print('<h3>'.&mt('Please stand by.').'</h3>'. |
|
'<input type="hidden" name="'.$possiblerole.'" value="1" />'. |
|
'<noscript><br /><input type="submit" name="submit" value="'.&mt('Continue').'" /></noscript>'); |
|
$r->print("</form>\n"); |
|
$r->rflush(); |
|
$r->print('<script type="text/javascript">document.forms.rolechoice.submit();</script>'); |
|
$r->print(&Apache::loncommon::end_page()); |
|
return OK; |
|
} |
|
if ($needs_switchserver) { |
|
$r->print("<h2>".&mt('Server Switch Required')."</h2>\n". |
|
&mt('Construction Space access is only available from '. |
|
'the home server of the corresponding Author.').'<br />'. |
|
&mt("Click the 'Switch Server' link to go there.").'<br />'); |
|
} |
} |
} |
# ----------------------------------------------------------------------- Table |
# ----------------------------------------------------------------------- Table |
unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) { |
unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) { |
Line 870 ENDHEADER
|
Line 963 ENDHEADER
|
return OK; |
return OK; |
} |
} |
|
|
|
sub gci_info_page { |
|
return <<"END"; |
|
<h2>Welcome to the Geoscience Concept Inventory WebCenter</h2> |
|
<p> |
|
Use the tabs to navigate the WebCenter and... |
|
<ul> |
|
<li>Review and comment on existing GCI questions</li> |
|
<li>Submit a GCI question of your own</li> |
|
<li>Create an online test for your students</li> |
|
<li>View tutorials on creating online tests</li> |
|
</ul> |
|
</p> |
|
<p>For more information about writing and reviewing Concept Inventory questions |
|
please refer to the <a href="/res/gci/gci/internal/pdfs/GCIWorkbook.pdf">GCI Workbook</a>. |
|
|
|
END |
|
} |
|
|
sub gather_roles { |
sub gather_roles { |
my ($then,$refresh,$now,$reinit,$nochoose,$roletext,$sortrole,$roleclass,$futureroles,$timezones) = @_; |
my ($then,$refresh,$now,$reinit,$nochoose,$roletext,$sortrole,$roleclass,$futureroles,$timezones) = @_; |
my ($countactive,$countfuture,$inrole,$possiblerole) = (0,0,0,''); |
my ($countactive,$countfuture,$inrole,$possiblerole) = (0,0,0,''); |
Line 975 sub gather_roles {
|
Line 1086 sub gather_roles {
|
} elsif ($trest) { |
} elsif ($trest) { |
my $tcourseid=$tdom.'_'.$trest; |
my $tcourseid=$tdom.'_'.$trest; |
$ttype = &Apache::loncommon::course_type($tcourseid); |
$ttype = &Apache::loncommon::course_type($tcourseid); |
$trole = &Apache::lonnet::plaintext($role,$ttype); |
$trole = &Apache::lonnet::plaintext($role,$ttype,$tcourseid); |
if ($env{'course.'.$tcourseid.'.description'}) { |
if ($env{'course.'.$tcourseid.'.description'}) { |
$twhere=$env{'course.'.$tcourseid.'.description'}; |
$twhere=$env{'course.'.$tcourseid.'.description'}; |
$sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey; |
$sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey; |
Line 994 sub gather_roles {
|
Line 1105 sub gather_roles {
|
&Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom). |
&Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom). |
'</span>'; |
'</span>'; |
$ttype = $newhash{'type'}; |
$ttype = $newhash{'type'}; |
$trole = &Apache::lonnet::plaintext($role,$ttype); |
$trole = &Apache::lonnet::plaintext($role,$ttype,$tcourseid); |
} else { |
} else { |
$twhere=&mt('Currently not available'); |
$twhere=&mt('Currently not available'); |
$env{'course.'.$tcourseid.'.description'}=$twhere; |
$env{'course.'.$tcourseid.'.description'}=$twhere; |
Line 1174 sub findcourse_advice {
|
Line 1285 sub findcourse_advice {
|
} |
} |
$r->print('<h3>'.&mt('Self-Enrollment').'</h3>'. |
$r->print('<h3>'.&mt('Self-Enrollment').'</h3>'. |
'<p>'.&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.','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a>',$domdesc).'<br />'); |
'<p>'.&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.','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a>',$domdesc).'<br />'); |
$r->print(&mt('You can search for courses and communities which permit self-enrollment, if you would like to enroll in one.').'</p>'); |
$r->print(&mt('You can search for courses and communities which permit self-enrollment, if you would like to enroll in one.').'</p>'. |
&queued_selfenrollment($r); |
&Apache::loncoursequeueadmin::queued_selfenrollment()); |
return; |
return; |
} |
} |
|
|
Line 1232 sub requestcourse_advice {
|
Line 1343 sub requestcourse_advice {
|
return; |
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('<b>'.&mt('Enrollment requests pending Course Coordinator approval').'</b><br />'. |
|
&Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_header_row(). |
|
'<th>'.&mt('Date requested').'</th><th>'.&mt('Course title').'</th>'. |
|
'<th>'.&mt('User role').'</th><th>'.&mt('Section').'</th>'. |
|
&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(). |
|
'<td>'.&Apache::lonlocal::locallocaltime($item).'</td>'. |
|
'<td>'.$courseinfo{'description'}.'</td>'. |
|
'<td>'.$rolename.'</td><td>'.$usec.'</td>'. |
|
&Apache::loncommon::end_data_table_row()); |
|
} |
|
} |
|
} |
|
$r->print(&Apache::loncommon::end_data_table()); |
|
} |
|
return; |
|
} |
|
|
|
sub privileges_info { |
sub privileges_info { |
my ($which) = @_; |
my ($which) = @_; |
my $output; |
my $output; |
Line 1597 sub display_cc_role {
|
Line 1665 sub display_cc_role {
|
my $advanced = $env{'user.adv'}; |
my $advanced = $env{'user.adv'}; |
my $tryagain = $env{'form.tryagain'}; |
my $tryagain = $env{'form.tryagain'}; |
unless ($rolekey =~/^error\:/) { |
unless ($rolekey =~/^error\:/) { |
if ($rolekey =~ m-^user\.role.cc\./($match_domain)/($match_courseid)$-) { |
if ($rolekey =~ m{^user\.role\.(cc|co)\./($match_domain)/($match_courseid)$}) { |
my $tcourseid = $1.'_'.$2; |
my $ccrole = $1; |
my $trolecode = 'cc./'.$1.'/'.$2; |
my $tcourseid = $2.'_'.$3; |
|
my $trolecode = $1.'./'.$2.'/'.$3; |
my $twhere; |
my $twhere; |
my $ttype; |
my $ttype; |
my $tbg='LC_roles_is'; |
my $tbg='LC_roles_is'; |
Line 1614 sub display_cc_role {
|
Line 1683 sub display_cc_role {
|
$twhere=&mt('Currently not available'); |
$twhere=&mt('Currently not available'); |
$env{'course.'.$tcourseid.'.description'}=$twhere; |
$env{'course.'.$tcourseid.'.description'}=$twhere; |
} |
} |
my $trole = &Apache::lonnet::plaintext('cc',$ttype); |
my $trole = &Apache::lonnet::plaintext($ccrole,$ttype,$tcourseid); |
$twhere.="<br />".&mt('Domain').":".$1; |
$twhere.="<br />".&mt('Domain').":".$1; |
($roletext,$roletext_end) = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,''); |
($roletext,$roletext_end) = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,''); |
} |
} |