version 1.503, 2012/04/05 09:49:51
|
version 1.514, 2013/07/15 14:32:55
|
Line 379 sub page_start {
|
Line 379 sub page_start {
|
} elsif (!defined($found{'body'}) |
} elsif (!defined($found{'body'}) |
&& $env{'request.state'} eq 'construct') { |
&& $env{'request.state'} eq 'construct') { |
if ($target eq 'web' || $target eq 'edit') { |
if ($target eq 'web' || $target eq 'edit') { |
# Breadcrumbs for Construction Space |
# Breadcrumbs for Authoring Space |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::add_breadcrumb({ |
&Apache::lonhtmlcommon::add_breadcrumb({ |
'text' => 'Construction Space', |
'text' => 'Authoring Space', |
'href' => &Apache::loncommon::authorspace($env{'request.uri'}), |
'href' => &Apache::loncommon::authorspace($env{'request.uri'}), |
}); |
}); |
# breadcrumbs (and tools) will be created |
# breadcrumbs (and tools) will be created |
Line 453 sub page_start {
|
Line 453 sub page_start {
|
} |
} |
$form_tag_start.='>'."\n"; |
$form_tag_start.='>'."\n"; |
|
|
my $symb=&Apache::lonnet::symbread(); |
|
if ($symb =~ /\S/) { |
if ($symb =~ /\S/) { |
$symb= |
$symb= |
&HTML::Entities::encode(&Apache::lonenc::check_encrypt($symb)); |
&HTML::Entities::encode(&Apache::lonenc::check_encrypt($symb)); |
Line 711 sub problem_web_to_edit_header {
|
Line 710 sub problem_web_to_edit_header {
|
".&mt("Problem Type:")." |
".&mt("Problem Type:")." |
<select name='problemtype'> |
<select name='problemtype'> |
<option value=''></option> |
<option value=''></option> |
".&option('exam' ,'problemtype').&mt("Exam Problem")."</option> |
".&option('exam' ,'problemtype').&mt("Bubblesheet Exam Problem")."</option> |
".&option('problem','problemtype').&mt("Homework Problem")."</option> |
".&option('problem','problemtype').&mt("Homework Problem")."</option> |
".&option('survey' ,'problemtype').&mt("Survey Question")."</option> |
".&option('survey' ,'problemtype').&mt("Survey Question")."</option> |
".&option('surveycred' ,'problemtype').&mt("Survey Question (with credit)")."</option> |
".&option('surveycred' ,'problemtype').&mt("Survey Question (with credit)")."</option> |
Line 967 sub checkout_msg {
|
Line 966 sub checkout_msg {
|
'resource'=>'The resource needs to be checked out', |
'resource'=>'The resource needs to be checked out', |
'id_expln'=>'As a resource gets checked out, a unique timestamped ID is given to it, and a permanent record is left in the system.', |
'id_expln'=>'As a resource gets checked out, a unique timestamped ID is given to it, and a permanent record is left in the system.', |
'warning'=>'Checking out resources is subject to course policies, and may exclude future credit even if done erroneously.', |
'warning'=>'Checking out resources is subject to course policies, and may exclude future credit even if done erroneously.', |
'checkout'=>'Check out Exam for Viewing', |
'checkout'=>'Check out Bubblesheet Exam for Viewing', |
'checkout?'=>'Check out Exam?'); |
'checkout?'=>'Check out Bubblesheet Exam?'); |
my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); |
my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); |
return (<<ENDCHECKOUT); |
return (<<ENDCHECKOUT); |
<h2>$lt{'resource'}</h2> |
<h2>$lt{'resource'}</h2> |
Line 976 sub checkout_msg {
|
Line 975 sub checkout_msg {
|
<p class="LC_warning">$lt{'warning'}</p> |
<p class="LC_warning">$lt{'warning'}</p> |
<form name="checkout" method="post" action="$uri"> |
<form name="checkout" method="post" action="$uri"> |
<input type="hidden" name="doescheckout" value="yes" /> |
<input type="hidden" name="doescheckout" value="yes" /> |
<input type="button" name="checkoutbutton" value="$lt{'checkout'}" onClick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" /> |
<input type="button" name="checkoutbutton" value="$lt{'checkout'}" onclick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" /> |
</form> |
</form> |
ENDCHECKOUT |
ENDCHECKOUT |
} |
} |
Line 990 sub firstaccess_msg {
|
Line 989 sub firstaccess_msg {
|
my $foldertitle=&Apache::lonnet::gettitle($map); |
my $foldertitle=&Apache::lonnet::gettitle($map); |
|
|
&Apache::lonxml::debug("map is $map title is $foldertitle"); |
&Apache::lonxml::debug("map is $map title is $foldertitle"); |
$result .= "<h2>".&mt('The resources in "[_1]" are open for a limited time.' |
$result .= "<h2>".&mt('The resources in "[_1]" are open for a limited time.',$foldertitle)."</h2>" |
.' Once you click the "Show Resource" button below you have [_2] to complete all resources "[_1]".' |
.'<p>'.&mt('Once you click the "Show Resource" button below you have [_2] to complete all resources "[_1]".' |
,$foldertitle,$time)."</h2>"; |
,$foldertitle,$time)."</p>"; |
} elsif ($interval[1] eq 'course') { |
} elsif ($interval[1] eq 'course') { |
my $course = $env{'course.'.$env{'request.course.id'}.'.description'}; |
my $course = $env{'course.'.$env{'request.course.id'}.'.description'}; |
$result .= "<h2>".&mt('The resources in "[_1]" are open for a limited time.' |
$result .= "<h2>".&mt('The resources in "[_1]" are open for a limited time.',$course)."</h2>" |
.' Once you click the "Show Resource" button below you have [_2] to complete all resources "[_1]".' |
.'<p>'.&mt('Once you click the "Show Resource" button below you have [_2] to complete all resources "[_1]".' |
,$course,$time)."</h2>"; |
,$course,$time)."</p>"; |
} else { |
} else { |
my $title=&Apache::lonnet::gettitle($symb); |
my $title=&Apache::lonnet::gettitle($symb); |
$result .= "<h2>".&mt('This resource "[_1]" is open for a limited time.' |
$result .= "<h2>".&mt('This resource "[_1]" is open for a limited time.',$title)."</h2>" |
.' Once you click the "Show Resource" button below you have [_2] to complete this resource "[_1]".' |
.'<p>'.&mt('Once you click the "Show Resource" button below you have [_2] to complete this resource "[_1]".' |
,$title,$time)."</h2>"; |
,$title,$time)."</p>"; |
} |
} |
my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); |
my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); |
my $buttontext = &mt('Show Resource'); |
my $buttontext = &mt('Show Resource'); |
Line 1010 sub firstaccess_msg {
|
Line 1009 sub firstaccess_msg {
|
$result .= (<<ENDCHECKOUT); |
$result .= (<<ENDCHECKOUT); |
<form name="markaccess" method="post" action="$uri"> |
<form name="markaccess" method="post" action="$uri"> |
<input type="hidden" name="markaccess" value="yes" /> |
<input type="hidden" name="markaccess" value="yes" /> |
<input type="button" name="accessbutton" value="$buttontext" onClick="javascript:if (confirm('$timertext')) { document.markaccess.submit(); }" /> |
<input type="button" name="accessbutton" value="$buttontext" onclick="javascript:if (confirm('$timertext')) { document.markaccess.submit(); }" /> |
</form> |
</form> |
ENDCHECKOUT |
ENDCHECKOUT |
return $result; |
return $result; |
Line 1160 sub start_problem {
|
Line 1159 sub start_problem {
|
&Apache::run::run($expression,$safeeval); |
&Apache::run::run($expression,$safeeval); |
my $status; |
my $status; |
my $accessmsg; |
my $accessmsg; |
|
my $resource_due; |
|
|
my $name= &get_resource_name($parstack,$safeeval); |
my $name= &get_resource_name($parstack,$safeeval); |
my ($result,$form_tag_start); |
my ($result,$form_tag_start,$slot_name,$slot); |
|
|
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
|
$target eq 'tex') { |
|
if ($env{'form.markaccess'}) { |
|
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
|
&Apache::lonnet::set_first_access($interval[1]); |
|
} |
|
|
|
($status,$accessmsg,$slot_name,$slot) = |
|
&Apache::lonhomework::check_slot_access('0','problem'); |
|
push (@Apache::inputtags::status,$status); |
|
} |
|
|
if ($target eq 'web' || $target eq 'webgrade' || $target eq 'tex' |
if ($target eq 'web' || $target eq 'webgrade' || $target eq 'tex' |
|| $target eq 'edit') { |
|| $target eq 'edit') { |
($result,$form_tag_start) = |
($result,$form_tag_start) = |
Line 1175 sub start_problem {
|
Line 1188 sub start_problem {
|
if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval,$target); } |
if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval,$target); } |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex') { |
$target eq 'tex') { |
if ($env{'form.markaccess'}) { |
|
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
|
&Apache::lonnet::set_first_access($interval[1]); |
|
} |
|
my $resource_due = &Apache::lonhomework::due_date(0, $env{'request.symb'}); |
|
my $time_left = $resource_due - time(); |
|
if ($resource_due && ($time_left > 0) && ($target eq 'web')) { |
|
$result .= &Apache::lonhtmlcommon::set_due_date($resource_due); |
|
} |
|
|
|
|
|
($status,$accessmsg,my $slot_name,my $slot) = |
|
&Apache::lonhomework::check_slot_access('0','problem'); |
|
push (@Apache::inputtags::status,$status); |
|
|
|
#handle rand seed in construction space |
#handle rand seed in construction space |
my $rndseed=&setup_rndseed($safeeval,$target); |
my $rndseed=&setup_rndseed($safeeval,$target); |
Line 1247 sub start_problem {
|
Line 1246 sub start_problem {
|
if ( $target eq "web" ) { |
if ( $target eq "web" ) { |
my $msg; |
my $msg; |
if ($status eq 'UNAVAILABLE') { |
if ($status eq 'UNAVAILABLE') { |
$msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>'; |
$msg.='<p class="LC_error">'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</p>'; |
} elsif ($status eq 'NOT_IN_A_SLOT') { |
} elsif ($status eq 'NOT_IN_A_SLOT') { |
$msg.='<h1>'.&mt('You are not currently signed up to work at this time and/or place.').'</h1>'; |
$msg.='<p class="LC_warning">'.&mt('You are not currently signed up to work at this time and/or place.').'</p>'; |
} elsif (($status eq 'RESERVABLE') || ($status eq 'RESERVABLE_LATER') || |
} elsif (($status eq 'RESERVABLE') || ($status eq 'RESERVABLE_LATER') || |
($status eq 'NOTRESERVABLE')) { |
($status eq 'NOTRESERVABLE')) { |
$msg.='<h1>'.&mt('Access requires reservation to work at specific time/place.').'</h1>'; |
$msg.='<p class="LC_warning">'.&mt('Access requires reservation to work at specific time/place.').'</p>'; |
} elsif ($status ne 'NOT_YET_VIEWED') { |
} elsif ($status ne 'NOT_YET_VIEWED') { |
$msg.='<h1>'.&mt('Not open to be viewed').'</h1>'; |
$msg.='<p class="LC_warning">'.&mt('Not open to be viewed').'</p>'; |
} |
} |
if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') { |
if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') { |
$msg.=&mt('The problem ').$accessmsg; |
$msg.=&mt('The problem ').$accessmsg; |
Line 1298 sub start_problem {
|
Line 1297 sub start_problem {
|
'problem'); |
'problem'); |
} |
} |
} elsif ($target eq 'web') { |
} elsif ($target eq 'web') { |
if ($status eq 'CAN_ANSWER' |
if ($status eq 'CAN_ANSWER') { |
&& $slot_name ne '' |
$resource_due = &Apache::lonhomework::due_date(0, $env{'request.symb'}); |
&& $Apache::lonhomework::history{'resource.0.checkedin'} eq '') { |
if ($slot_name ne '') { |
# unproctored slot access, self checkin |
my $checked_in = |
&Apache::bridgetask::check_in('problem',undef,undef, |
$Apache::lonhomework::history{'resource.0.checkedin'}; |
$slot_name); |
if ($checked_in eq '') { |
} |
# unproctored slot access, self checkin |
|
&Apache::bridgetask::check_in('problem',undef,undef, |
|
$slot_name); |
|
$checked_in = |
|
$Apache::lonhomework::results{"resource.0.checkedin"}; |
|
} |
|
if ((ref($slot) eq 'HASH') && ($checked_in ne '')) { |
|
if ($slot->{'starttime'} < time()) { |
|
if (!$resource_due) { |
|
$resource_due = $slot->{'endtime'}; |
|
} elsif ($slot->{'endtime'} < $resource_due) { |
|
$resource_due = $slot->{'endtime'}; |
|
} |
|
} |
|
} |
|
} |
|
if ($resource_due) { |
|
my $time_left = $resource_due - time(); |
|
if ($resource_due && ($time_left > 0) && ($target eq 'web')) { |
|
$result .= &Apache::lonhtmlcommon::set_due_date($resource_due); |
|
} |
|
} |
|
} |
$result.="\n $form_tag_start \t". |
$result.="\n $form_tag_start \t". |
'<input type="hidden" name="submitted" value="yes" />'; |
'<input type="hidden" name="submitted" value="yes" />'; |
# create a page header and exit |
# create a page header and exit |
Line 1490 sub end_problem {
|
Line 1511 sub end_problem {
|
$result.="</form>"; |
$result.="</form>"; |
} |
} |
if ($target eq 'web') { |
if ($target eq 'web') { |
$result.= &Apache::loncommon::end_page({'discussion' => 1}); |
# |
|
# Closing </body></html> not added by end_page(). |
|
# Added separately at end of this routine, after added |
|
# <script></script> so document will be valid xhtml. |
|
# |
|
$result.= &Apache::loncommon::end_page({'discussion' => 1, |
|
'notbody' => 1}); |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $endminipage = ''; |
my $endminipage = ''; |
if (not $env{'form.problem_split'}=~/yes/) { |
if (not $env{'form.problem_split'}=~/yes/) { |
Line 1548 sub end_problem {
|
Line 1575 sub end_problem {
|
# |
# |
if ($target eq 'web') { |
if ($target eq 'web') { |
$result .= &Apache::lonhtmlcommon::set_compute_end_time(); |
$result .= &Apache::lonhtmlcommon::set_compute_end_time(); |
|
# |
|
# Closing tags delayed so any <script></script> tags |
|
# not in head can appear inside body, for valid xhtml. |
|
# |
|
$result .= "</body>\n</html>"; |
} |
} |
return $result; |
return $result; |
} |
} |
Line 2464 sub start_problemtype {
|
Line 2496 sub start_problemtype {
|
['hide','Hide']] |
['hide','Hide']] |
,$token); |
,$token); |
$result .=&Apache::edit::checked_arg('When used as type(s):','for', |
$result .=&Apache::edit::checked_arg('When used as type(s):','for', |
[ ['exam','Exam/Quiz Problem'], |
[ ['exam','Bubblesheet Exam/Quiz Problem'], |
['survey','Survey'], |
['survey','Survey'], |
['surveycred','Survey (with credit)'], |
['surveycred','Survey (with credit)'], |
['anonsurvey','Anonymous Survey'], |
['anonsurvey','Anonymous Survey'], |
Line 2511 sub end_startouttext {
|
Line 2543 sub end_startouttext {
|
.'<td><span class="LC_nobreak">'.&mt('Delete?').' ' |
.'<td><span class="LC_nobreak">'.&mt('Delete?').' ' |
.&Apache::edit::deletelist($target,$token) |
.&Apache::edit::deletelist($target,$token) |
.'</span></td>' |
.'</span></td>' |
.'<td align="left"><span id="math_'.$areaid.'" />' |
.'<td align="left"><span id="math_'.$areaid.'">' |
.&Apache::lonhtmlcommon::dragmath_button($areaid,1) |
.&Apache::lonhtmlcommon::dragmath_button($areaid,1) |
.'<span></td>' |
.'</span></td>' |
.'<td>' |
.'<td>' |
.&Apache::edit::insertlist($target,$token) |
.&Apache::edit::insertlist($target,$token) |
.'</td>' |
.'</td>' |