version 1.231.4.10, 2010/01/02 19:20:28
|
version 1.240.2.3, 2009/12/15 05:04:17
|
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 GDBM_File; |
use GDBM_File; |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
use HTML::Entities; |
use HTML::Entities; |
Line 158 sub redirect_user {
|
Line 159 sub redirect_user {
|
$navwindow.=&Apache::lonnavmaps::close(); |
$navwindow.=&Apache::lonnavmaps::close(); |
} |
} |
|
|
|
# Breadcrumbs |
|
my $brcrum = [{'href' => $url, |
|
'text' => 'Switching Role'},]; |
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,}); |
my $end_page = &Apache::loncommon::end_page(); |
my $end_page = &Apache::loncommon::end_page(); |
|
|
# Note to style police: |
# Note to style police: |
Line 185 sub error_page {
|
Line 190 sub error_page {
|
&Apache::loncommon::no_cache($r); |
&Apache::loncommon::no_cache($r); |
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
$r->print(&Apache::loncommon::start_page('Problems during Course Initialization'). |
# Breadcrumbs |
|
my $brcrum = [{'href' => $dest, |
|
'text' => 'Problems during Course Initialization'},]; |
|
$r->print(&Apache::loncommon::start_page('Problems during Course Initialization', |
|
undef, |
|
{'bread_crumbs' => $brcrum,}) |
|
); |
|
$r->print( |
'<script type="text/javascript">'. |
'<script type="text/javascript">'. |
'// <![CDATA['. |
'// <![CDATA['. |
&Apache::lonmenu::rawconfig(). |
&Apache::lonmenu::rawconfig(). |
'// ]]>'. |
'// ]]>'. |
'</script>'. |
'</script>'. |
'<p class="LC_error">'.&mt('The following problems occurred:'). |
'<p class="LC_error">'.&mt('The following problems occurred:'). |
'<br />'. |
'<br />'. |
$error. |
$error. |
'</p><br /><a href="'.$dest.'">'.&mt('Continue').'</a>'. |
'</p><br /><a href="'.$dest.'">'.&mt('Continue').'</a>' |
&Apache::loncommon::end_page()); |
); |
|
$r->print(&Apache::loncommon::end_page()); |
} |
} |
|
|
sub handler { |
sub handler { |
Line 212 sub handler {
|
Line 225 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 306 sub handler {
|
Line 320 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 479 ENDENTERKEY
|
Line 495 ENDENTERKEY
|
$courseid = substr($courseid, 1); |
$courseid = substr($courseid, 1); |
} |
} |
$courseid =~ s/\//_/; |
$courseid =~ s/\//_/; |
if ((($role eq 'cc') || ($role eq 'co')) |
if (($cdom ne 'gcitest') && (($role eq 'cc') || ($role eq 'co')) |
&& ($env{'course.' . $courseid .'.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 503 ENDENTERKEY
|
Line 519 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 518 ENDENTERKEY
|
Line 534 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 560 ENDENTERKEY
|
Line 579 ENDENTERKEY
|
} |
} |
} |
} |
|
|
|
|
# =============================================================== No Roles Init |
# =============================================================== No Roles Init |
|
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
Line 568 ENDENTERKEY
|
Line 586 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 611 function enterrole (thisform,rolecode,bu
|
Line 640 function enterrole (thisform,rolecode,bu
|
// ]]> |
// ]]> |
</script> |
</script> |
ENDHEADER |
ENDHEADER |
|
} |
|
|
# ------------------------------------------ Get Error Message from Environment |
# ------------------------------------------ Get Error Message from Environment |
|
|
Line 659 ENDHEADER
|
Line 689 ENDHEADER
|
if ($reinit) { |
if ($reinit) { |
$r->print( |
$r->print( |
'<h3><span class="LC_error">'. |
'<h3><span class="LC_error">'. |
&mt('As your session file for the course or community has expired, you will need to re-select the course.').'</span></h3>'); |
&mt('As your session file for the course or community has expired, you will need to re-select it.').'</span></h3>'); |
} else { |
} else { |
$r->print( |
$r->print( |
'<h3><span class="LC_error">'. |
'<h3><span class="LC_error">'. |
Line 678 ENDHEADER
|
Line 708 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 691 ENDHEADER
|
Line 723 ENDHEADER
|
|
|
$refresh = $now; |
$refresh = $now; |
&Apache::lonnet::appenv({'user.refresh.time' => $refresh}); |
&Apache::lonnet::appenv({'user.refresh.time' => $refresh}); |
|
if ($custommenu) { |
|
my %courses = &Apache::loncommon::existing_gcitest_courses(); |
|
$env{'browser.interface'}='faketextual'; |
|
$env{'environment.remote'}='off'; |
|
my $numcourses = keys(%courses); |
|
my $switcher; |
|
if ($numcourses > 0) { |
|
$switcher = &Apache::lonmainmenu::gcitest_switcher(%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; |
|
} |
if ($env{'user.adv'}) { |
if ($env{'user.adv'}) { |
|
$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" '); } |
$r->print(' />'.&mt('Show all roles').'</label>' |
$r->print(' />'.&mt('Show all roles').'</label>' |
.' <input type="submit" value="'.&mt('Update display').'" />' |
.' <input type="submit" value="'.&mt('Update display').'" />' |
Line 701 ENDHEADER
|
Line 760 ENDHEADER
|
&queued_selfenrollment($r); |
&queued_selfenrollment($r); |
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( |
$r->print( |
'<p>' |
'<p>' |
.&mt('[_1]Visit the [_2]Course/Community Catalog[_3]' |
.&mt('[_1]Visit the [_2]Course/Community Catalog[_3]' |
Line 726 ENDHEADER
|
Line 784 ENDHEADER
|
$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); |
&findcourse_advice($r); |
&requestcourse_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 755 ENDHEADER
|
Line 813 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 1175 sub requestcourse_advice {
|
Line 1254 sub requestcourse_advice {
|
&Apache::lonnet::check_can_request($env{'user.domain'},\%can_request,\%request_doms); |
&Apache::lonnet::check_can_request($env{'user.domain'},\%can_request,\%request_doms); |
if (keys(%request_doms) > 0) { |
if (keys(%request_doms) > 0) { |
my ($types,$typename) = &Apache::loncommon::course_types(); |
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('<h3>'.&mt('Request creation of a course or community').'</h3>'. |
$r->print('<h3>'.&mt('Request creation of a course or community').'</h3>'. |
'<p>'.&mt('You have rights to request the creation of courses and/or communities in the following domain(s):').'<ul>'); |
'<p>'.&mt('You have rights to request the creation of courses and/or communities in the following domain(s):').'<ul>'); |
my (@reqdoms,@reqtypes); |
my (@reqdoms,@reqtypes); |
foreach my $type (sort(keys(%request_doms))) { |
foreach my $type (sort(keys(%request_doms))) { |
push(@reqtypes,$type); |
push(@reqtypes,$type); |
if (ref($request_doms{$type}) eq 'ARRAY') { |
if (ref($request_doms{$type}) eq 'ARRAY') { |
my $domstr = join(', ',map { &Apache::lonnet::domain($_) } sort(@{$request_doms{$type}})); |
my $domstr = join(', ',map { &Apache::lonnet::domain($_) } sort(@{$request_doms{$type}})); |
$r->print( |
$r->print( |
Line 1213 sub requestcourse_advice {
|
Line 1292 sub requestcourse_advice {
|
} |
} |
if (@reqdoms == 1 || @showtypes > 0) { |
if (@reqdoms == 1 || @showtypes > 0) { |
$requrl .= '&state=crstype&action=new'; |
$requrl .= '&state=crstype&action=new'; |
} |
} |
$r->print('</ul>'.&mt('Use the [_1]request form[_2] to submit a request for creation of a new course or community.','<a href="'.$requrl.'">','</a>').'</p>'); |
$r->print('</ul>'.&mt('Use the [_1]request form[_2] to submit a request for creation of a new course or community.','<a href="'.$requrl.'">','</a>').'</p>'); |
} |
} |
} |
} |
Line 1585 sub display_cc_role {
|
Line 1664 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|co)\./($match_domain)/($match_courseid)$-) { |
if ($rolekey =~ m{^user\.role\.(cc|co)\./($match_domain)/($match_courseid)$}) { |
my $ccrole = $1; |
my $ccrole = $1; |
my $tcourseid = $2.'_'.$3; |
my $tcourseid = $2.'_'.$3; |
my $trolecode = $1.'./'.$2.'/'.$3; |
my $trolecode = $1.'./'.$2.'/'.$3; |