version 1.240.2.5, 2009/12/24 18:28:54
|
version 1.240.2.18, 2010/10/06 18:46:53
|
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 165 sub redirect_user {
|
Line 165 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 453 ENDENTERKEY
|
Line 454 ENDENTERKEY
|
&Apache::lonnet::appenv({'request.role.adv'=>$tadv}); |
&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 585 ENDENTERKEY
|
Line 592 ENDENTERKEY
|
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
my ($crumbtext,$pagetitle,$recent,$show_course); |
my ($crumbtext,$pagetitle,$recent,$show_course); |
|
$show_course=&Apache::loncommon::show_course(); |
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) { |
if ($custommenu) { |
my $start_page = &Apache::loncommon::start_page('Main Menu',undef, |
my $brcrum = {'bread_crumbs' => 1}; |
{'bread_crumbs' => 1}); |
if ($env{'form.destinationurl'} eq '/adm/gci_info') { |
|
undef($brcrum); |
|
} |
|
my $start_page = &Apache::loncommon::start_page('Main Menu',undef,$brcrum); |
$r->print(<<"ENDCUSTOM"); |
$r->print(<<"ENDCUSTOM"); |
$start_page |
$start_page |
<br /> |
<br /> |
Line 600 ENDCUSTOM
|
Line 611 ENDCUSTOM
|
$crumbtext = 'User Roles'; |
$crumbtext = 'User Roles'; |
$pagetitle = 'My Roles'; |
$pagetitle = 'My Roles'; |
$recent = &mt('Recent Roles'); |
$recent = &mt('Recent Roles'); |
$show_course=&Apache::loncommon::show_course(); |
my $standby=&mt('Role selected. Please stand by.'); |
if ($show_course) { |
if ($show_course) { |
$crumbtext = 'Courses'; |
$crumbtext = 'Courses'; |
$pagetitle = 'My Courses'; |
$pagetitle = 'My Courses'; |
$recent = &mt('Recent Courses'); |
$recent = &mt('Recent Courses'); |
|
$standby = &mt('Course selected. Please stand by.'); |
} |
} |
my $brcrum =[{href=>"/adm/roles",text=>$crumbtext}]; |
my $brcrum = [{ href => '/adm/roles', |
|
text => $crumbtext,}, |
|
]; |
|
my $args; |
|
if (($env{'user.domain'} eq 'gcitest') && (!$numdc)) { |
|
$args = {bread_crumbs => $brcrum, |
|
bread_crumbs_nomenu => 1}; |
|
} else { |
|
$args = {bread_crumbs => $brcrum}; |
|
} |
|
my $start_page=&Apache::loncommon::start_page($pagetitle,undef,$args); |
my $swinfo=&Apache::lonmenu::rawconfig(); |
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; |
$standby=~s/\n/\\n/g; |
$r->print(<<ENDHEADER); |
$r->print(<<ENDHEADER); |
$start_page |
$start_page |
Line 721 ENDHEADER
|
Line 741 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 ($custommenu) { |
if ($env{'form.destinationurl'} eq '/adm/gci_info') { |
if ($env{'form.destinationurl'} eq '/adm/gci_info') { |
$r->print(&gci_info_page()). |
$r->print(&gci_info_page()). |
&Apache::loncommon::end_page(); |
&Apache::loncommon::end_page(); |
return OK; |
return OK; |
} |
} |
my %courses = &Apache::loncommon::existing_gcitest_courses(); |
my %courses = &Apache::loncommon::existing_gcitest_courses('cc'); |
$env{'browser.interface'}='faketextual'; |
$env{'browser.interface'}='faketextual'; |
$env{'environment.remote'}='off'; |
$env{'environment.remote'}='off'; |
my $numcourses = keys(%courses); |
my $numcourses = keys(%courses); |
my $switcher; |
my $switcher; |
if ($numcourses > 0) { |
if ($numcourses > 0) { |
$switcher = &Apache::lonmainmenu::gcitest_switcher(%courses); |
$switcher = &Apache::loncommon::gcitest_switcher('cc',%courses); |
my $current; |
my $current; |
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
$current = 'cc./'.$env{'course.'.$env{'request.course.id'}.'.domain'}. |
$current = 'cc./'.$env{'course.'.$env{'request.course.id'}.'.domain'}. |
'/'.$env{'course.'.$env{'request.course.id'}.'.num'}; |
'/'.$env{'course.'.$env{'request.course.id'}.'.num'}; |
} |
} |
my $switcher_js = &Apache::lonmainmenu::gcitest_switcher_js($current,$numcourses); |
my $switcher_js = &Apache::loncommon::gcitest_switcher_js($current,$numcourses); |
$r->print(<<"ENDSCRIPT"); |
$r->print(<<"ENDSCRIPT"); |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
Line 751 ENDSCRIPT
|
Line 778 ENDSCRIPT
|
$r->print(&Apache::lonmenu::inlinemenu('gcicustom',$switcher). |
$r->print(&Apache::lonmenu::inlinemenu('gcicustom',$switcher). |
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
return OK; |
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"'); |
Line 760 ENDSCRIPT
|
Line 791 ENDSCRIPT
|
.'</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 784 ENDSCRIPT
|
Line 817 ENDSCRIPT
|
if ($inrole) { |
if ($inrole) { |
$r->print('<h2>'.&mt('Currently no additional roles, courses or communities').'</h2>'); |
$r->print('<h2>'.&mt('Currently no additional roles, courses or communities').'</h2>'); |
} else { |
} else { |
$r->print('<h2>'.&mt('Currently no active roles, courses or communities').'</h2>'); |
if ($show_course) { |
|
if ($env{'user.domain'} eq 'gcitest') { |
|
$r->print('<h2>'.&mt('Currently no active Concept Tests').'</h2>'); |
|
} else { |
|
$r->print('<h2>'.&mt('Currently no active courses or communities').'</h2>'); |
|
} |
|
} else { |
|
$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)); |
if ($show_course) { |
|
if ($env{'user.domain'} eq 'gcitest') { |
|
$r->print(&mt('The following [quant,_1,Concept Test] will be available in the future:',$countfuture)); |
|
} else { |
|
$r->print(&mt('The following [quant,_1,course] will become active in the future:',$countfuture)); |
|
} |
|
} else { |
|
$r->print(&mt('The following [quant,_1,role,roles] will become active in the future:',$countfuture)); |
|
} |
my $doheaders = &roletable_headers($r,\%roleclass,\%sortrole, |
my $doheaders = &roletable_headers($r,\%roleclass,\%sortrole, |
$nochoose); |
$nochoose); |
&print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles, |
&print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles, |
Line 839 ENDSCRIPT
|
Line 890 ENDSCRIPT
|
} |
} |
} |
} |
# ----------------------------------------------------------------------- Table |
# ----------------------------------------------------------------------- Table |
unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) { |
unless ((!$show_course) || ($nochoose) || ($countactive==1)) { |
$r->print("<h2>".&mt('Select a Course to Enter')."</h2>\n"); |
$r->print("<h2>".&mt('Select a Course to Enter')."</h2>\n"); |
} |
} |
if ($env{'form.destinationurl'}) { |
if ($env{'form.destinationurl'}) { |
Line 947 sub gci_info_page {
|
Line 998 sub gci_info_page {
|
Use the tabs to navigate the WebCenter and... |
Use the tabs to navigate the WebCenter and... |
<ul> |
<ul> |
<li>Review and comment on existing GCI questions</li> |
<li>Review and comment on existing GCI questions</li> |
<li>Submit a GCI question of your own</li> |
<li>Submit GCI questions of your own</li> |
<li>Create an online test for your students</li> |
<li>Create an online test for your students</li> |
|
<li>View tutorials on creating online tests</li> |
</ul> |
</ul> |
</p> |
</p> |
<p>For more information about writing and reviewing Concept Inventory questions |
<p>For more information about writing and reviewing Concept Inventory questions |
Line 1062 sub gather_roles {
|
Line 1114 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 1081 sub gather_roles {
|
Line 1133 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 1261 sub findcourse_advice {
|
Line 1313 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 1319 sub requestcourse_advice {
|
Line 1371 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 1702 sub display_cc_role {
|
Line 1711 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($ccrole,$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,''); |
} |
} |