version 1.414, 2007/11/20 17:53:22
|
version 1.433, 2008/10/24 16:22:54
|
Line 74 sub start_tex {
|
Line 74 sub start_tex {
|
if ($target ne 'edit' && $target ne 'modified') { |
if ($target ne 'edit' && $target ne 'modified') { |
my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser,$style); |
my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser,$style); |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
return $bodytext.' '; |
return $bodytext.'{}'; |
} |
} |
} elsif ($target eq "edit" ) { |
} elsif ($target eq "edit" ) { |
my $bodytext = |
my $bodytext = |
Line 94 sub end_tex {
|
Line 94 sub end_tex {
|
|
|
sub homework_js { |
sub homework_js { |
return &Apache::loncommon::resize_textarea_js(). |
return &Apache::loncommon::resize_textarea_js(). |
|
&setmode_javascript(). |
<<'JS'; |
<<'JS'; |
<script type="text/javascript"> |
<script type="text/javascript"> |
function setSubmittedPart (part) { |
function setSubmittedPart (part) { |
Line 113 function image_response_click (which, e)
|
Line 114 function image_response_click (which, e)
|
input_element.value = click; |
input_element.value = click; |
img_element.src = '/adm/randomlabel.png?token='+token+'&clickdata='+click; |
img_element.src = '/adm/randomlabel.png?token='+token+'&clickdata='+click; |
} |
} |
|
|
</script> |
</script> |
JS |
JS |
} |
} |
|
|
|
sub setmode_javascript { |
|
return <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
function setmode(form,probmode) { |
|
form.problemmode.value = probmode; |
|
form.submit(); |
|
} |
|
</script> |
|
ENDSCRIPT |
|
} |
|
|
sub page_start { |
sub page_start { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name, |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name, |
$extra_head)=@_; |
$extra_head)=@_; |
Line 135 sub page_start {
|
Line 148 sub page_start {
|
|
|
$extra_head .= &homework_js(); |
$extra_head .= &homework_js(); |
|
|
|
unless ($env{'environment.wysiwygeditor'} eq 'on') { |
|
$extra_head .= &Apache::lonhtmlcommon::dragmath_js(); |
|
} |
|
|
my %body_args; |
my %body_args; |
if (defined($found{'html'})) { |
if (defined($found{'html'})) { |
$body_args{'skip_phases'}{'head'}=1; |
$body_args{'skip_phases'}{'head'}=1; |
Line 299 sub remember_problem_state {
|
Line 316 sub remember_problem_state {
|
<input type="hidden" name="problemstatus" value="'.$env{'form.problemstatus'}.'" />'; |
<input type="hidden" name="problemstatus" value="'.$env{'form.problemstatus'}.'" />'; |
} |
} |
|
|
|
sub problem_edit_buttons { |
|
return ' |
|
<div class="LC_edit_problem_discards"> |
|
<input type="button" name="submitmode" accesskey="d" value="'.&mt('Discard Edits and View').'" '. |
|
' onclick="javscript:setmode(this.form,'."'discard'".')" /> |
|
<input '.&Apache::edit::submit_ask_anyway('setmode(this.form,'."'editxml'".')').' type="button" name="submitmode" accesskey="x" value="'.&mt('EditXML').'" /> |
|
<input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" /> |
|
</div> |
|
<div class="LC_edit_problem_saves"> |
|
<input type="submit" name="submitbutton" accesskey="s" value="'.&mt('Save and Edit').'" /> |
|
<input type="submit" name="submitbutton" accesskey="v" value="'.&mt('Save and View').'" /> |
|
</div>'; |
|
} |
|
|
sub problem_edit_header { |
sub problem_edit_header { |
return '<input type="hidden" name="submitted" value="edit" />'. |
return '<input type="hidden" name="submitted" value="edit" /><input type="hidden" name="problemmode" value="edit" />'. |
&Apache::structuretags::remember_problem_state().' |
&Apache::structuretags::remember_problem_state().' |
<div class="LC_edit_problem_header"> |
<div class="LC_edit_problem_header"> |
<div class="LC_edit_problem_header_title"> |
<div class="LC_edit_problem_header_title"> |
'.&mt('Problem Editing').&Apache::loncommon::help_open_menu('Problem Editing','Problem_Editor_XML_Index',5,'Authoring').' |
'.&mt('Problem Editing').&Apache::loncommon::help_open_menu('Problem Editing','Problem_Editor_XML_Index',5,'Authoring').' |
</div> |
</div>'. |
<div class="LC_edit_problem_discards"> |
&problem_edit_buttons().' |
<input type="hidden" name="problemmode" value="'.&mt('Edit').'" /> |
|
<input type="submit" name="problemmode" accesskey="d" value="'.&mt('Discard Edits and View').'" /> |
|
<input '.&Apache::edit::submit_ask_anyway().' type="submit" name="problemmode" accesskey="x" value="'.&mt('EditXML').'" /> |
|
<input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" /> |
|
</div> |
|
<div class="LC_edit_problem_saves"> |
|
<input type="submit" name="submit" accesskey="s" value="'.&mt('Save and Edit').'" /> |
|
<input type="submit" name="submit" accesskey="v" value="'.&mt('Save and View').'" /> |
|
</div> |
|
<hr class="LC_edit_problem_divide" /> |
<hr class="LC_edit_problem_divide" /> |
'.&Apache::lonxml::message_location().' |
'.&Apache::lonxml::message_location().' |
</div> |
</div> |
Line 326 sub problem_edit_header {
|
Line 348 sub problem_edit_header {
|
sub problem_edit_footer { |
sub problem_edit_footer { |
return '</td></tr></table><br /> |
return '</td></tr></table><br /> |
<div class="LC_edit_problem_footer"> |
<div class="LC_edit_problem_footer"> |
<hr class="LC_edit_problem_divide" /> |
<hr class="LC_edit_problem_divide" />'. |
<div class="LC_edit_problem_discards"> |
&problem_edit_buttons().' |
<input type="submit" name="problemmode" accesskey="d" value="'.&mt('Discard Edits and View').'" /> |
|
<input '.&Apache::edit::submit_ask_anyway().' type="submit" name="problemmode" accesskey="x" value="'.&mt('EditXML').'" /> |
|
<input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" /> |
|
</div> |
|
<div class="LC_edit_problem_saves"> |
|
<input type="submit" name="submit" value="'.&mt('Save and Edit').'" /> |
|
<input type="submit" name="submit" value="'.&mt('Save and View').'" /> |
|
</div> |
|
<hr class="LC_edit_problem_divide" /> |
<hr class="LC_edit_problem_divide" /> |
</div> |
</div> |
'. |
'. |
Line 402 sub problem_web_to_edit_header {
|
Line 416 sub problem_web_to_edit_header {
|
<select name='problemtype'> |
<select name='problemtype'> |
<option value=''></option> |
<option value=''></option> |
".&option('exam' ,'problemtype').&mt("Exam Problem")."</option> |
".&option('exam' ,'problemtype').&mt("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('practice' ,'problemtype').&mt("Practice Problem")."</option> |
</select> |
</select> |
</span> |
</span> |
$show_all |
$show_all |
Line 436 $show_all
|
Line 451 $show_all
|
$show_all |
$show_all |
"; |
"; |
} |
} |
|
|
$result.=' |
$result.=' |
<span class="LC_nobreak"> |
<span class="LC_nobreak"> |
'.&mt('Apply style file: ').' |
'.&mt('Apply style file: ').' |
Line 444 $show_all
|
Line 458 $show_all
|
<a href="javascript:openbrowser(\'lonhomework\',\'style_file\',\'sty\')">'.&mt('Select').'</a> |
<a href="javascript:openbrowser(\'lonhomework\',\'style_file\',\'sty\')">'.&mt('Select').'</a> |
</span> |
</span> |
</div> |
</div> |
|
<div class="LC_edit_problem_header_row1">'. |
|
&Apache::lonxml::renderingoptions().' |
|
</div> |
<input type="submit" name="changeproblemmode" value="'.&mt("Change View").'" /> |
<input type="submit" name="changeproblemmode" value="'.&mt("Change View").'" /> |
<input type="submit" name="clear_style_file" accesskey="d" value="'.&mt('Show Default View').'" /> |
<input type="submit" name="clear_style_file" accesskey="d" value="'.&mt('Show Default View').'" /> |
<input type="submit" name="resetdata" accesskey="r" value="'.&mt('Reset Submissions').'" /> |
<input type="submit" name="resetdata" accesskey="r" value="'.&mt('Reset Submissions').'" /> |
Line 461 $show_all
|
Line 478 $show_all
|
if (!$numtoanalyze) { $numtoanalyze=20; } |
if (!$numtoanalyze) { $numtoanalyze=20; } |
$result .= '<span class="LC_nobreak">'. |
$result .= '<span class="LC_nobreak">'. |
&mt('[_1] for [_2] versions.', |
&mt('[_1] for [_2] versions.', |
'<input type="submit" name="problemmode" value='.&mt('"Calculate answers').'" />', |
'<input type="button" name="submitmode" value="'.&mt('Calculate answers').'" '. |
'<input type="text" name="numtoanalyze" value="'. |
'onclick="javascript:setmode(this.form,'."'calcanswers'".')" />' |
|
,'<input type="text" name="numtoanalyze" value="'. |
$numtoanalyze.'" size="5" />'). |
$numtoanalyze.'" size="5" />'). |
&Apache::loncommon::help_open_topic("Analyze_Problem",'',undef,undef,300). |
&Apache::loncommon::help_open_topic("Analyze_Problem",'',undef,undef,300). |
'</span>'; |
'</span>'; |
Line 472 $show_all
|
Line 490 $show_all
|
$result.=' |
$result.=' |
</div> |
</div> |
<div class="LC_edit_problem_header_edit_row">'; |
<div class="LC_edit_problem_header_edit_row">'; |
$result.='<input type="hidden" name="problemmode" value="'.&mt('View').'" />'; |
$result.='<input type="hidden" name="problemmode" value="view" />'; |
$result .= '<input type="submit" name="problemmode" accesskey="e" value="'.&mt('Edit').'" />'; |
$result .= '<input type="button" name="submitmode" accesskey="e" value="'.&mt('Edit').'" '. |
$result .= '<input type="submit" name="problemmode" accesskey="x" value="'.&mt('EditXML').'" />'; |
'onclick="javascript:setmode(this.form,'."'edit'".')" />'; |
|
$result .= '<input type="button" name="submitmode" accesskey="x" value="'.&mt('EditXML').'" '. |
|
'onclick="javascript:setmode(this.form,'."'editxml'".')" />'; |
$result.=' |
$result.=' |
</div> |
</div> |
'.&Apache::lonxml::message_location().' |
'.&Apache::lonxml::message_location().' |
Line 627 sub firstaccess_msg {
|
Line 647 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 .= (<<ENDCHECKOUT); |
$result .= "<h2>".&mt('The resources in "[_1]" are open for a limited time.' |
<h2>The resources in "$foldertitle" are open for a limited time. Once you click the 'Show Resource' button below you have $time to complete all resources "$foldertitle".</h2> |
.' Once you click the "Show Resource" button below you have [_2] to complete all resources "[_1]".' |
ENDCHECKOUT |
,$foldertitle,$time)."</h2>"; |
} 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 .= (<<ENDCHECKOUT); |
$result .= "<h2>".&mt('The resources in "[_1]" are open for a limited time.' |
<h2>The resources in "$course" are open for a limited time. Once you click the 'Show Resource' button below you have $time to complete all resources in "$course".</h2> |
.' Once you click the "Show Resource" button below you have [_2] to complete all resources "[_1]".' |
ENDCHECKOUT |
,$course,$time)."</h2>"; |
} else { |
} else { |
my $title=&Apache::lonnet::gettitle($symb); |
my $title=&Apache::lonnet::gettitle($symb); |
$result .= (<<ENDCHECKOUT); |
$result .= "<h2>".&mt('This resource "[_1]" is open for a limited time.' |
<h2>This resource "$title" is open for a limited time. Once you click the 'Show Resource' button below you have $time to complete this resource "$title".</h2> |
.' Once you click the "Show Resource" button below you have [_2] to complete this resource "[_1]".' |
ENDCHECKOUT |
,$title,$time)."</h2>"; |
|
|
} |
} |
my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); |
my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); |
|
my $buttontext = &mt('Show Resource'); |
|
my $timertext = &mt('Start Timer?'); |
$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="Show Resource" onClick="javascript:if (confirm('Start Timer?')) { 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 754 sub start_problem {
|
Line 775 sub start_problem {
|
} |
} |
|
|
if ($target ne 'analyze') { |
if ($target ne 'analyze') { |
$Apache::lonhomework::type=&Apache::lonnet::EXT('resource.0.type'); |
my $type = &Apache::lonnet::EXT('resource.0.type'); |
|
$Apache::lonhomework::type=$type; |
if (($env{'request.state'} eq 'construct') && |
if (($env{'request.state'} eq 'construct') && |
$env{'form.problemtype'} =~ /\S/) { |
$env{'form.problemtype'} =~ /\S/) { |
$Apache::lonhomework::type=$env{'form.problemtype'}; |
$Apache::lonhomework::type=$env{'form.problemtype'}; |
Line 843 sub start_problem {
|
Line 865 sub start_problem {
|
$form_tag_start.= ' />'.&mt(' Show All Foils'). |
$form_tag_start.= ' />'.&mt(' Show All Foils'). |
'</label>'; |
'</label>'; |
} |
} |
|
if ($Apache::lonhomework::type eq 'practice') { |
|
$form_tag_start.=&practice_problem_header(); |
|
} |
$form_tag_start.='<hr />'; |
$form_tag_start.='<hr />'; |
} |
} |
|
|
Line 915 sub start_problem {
|
Line 940 sub start_problem {
|
# create a page header and exit |
# create a page header and exit |
if ($env{'request.state'} eq "construct") { |
if ($env{'request.state'} eq "construct") { |
$result.= &problem_web_to_edit_header($env{'form.rndseed'}); |
$result.= &problem_web_to_edit_header($env{'form.rndseed'}); |
|
if ($Apache::lonhomework::type eq 'practice') { |
|
$result.= '<input type="submit" name="resetdata" '. |
|
'value="'.&mt('New Problem Variation').'" />'. |
|
&practice_problem_header().'<hr />'; |
|
} |
} |
} |
# if we are viewing someone else preserve that info |
# if we are viewing someone else preserve that info |
if (defined $env{'form.grade_symb'}) { |
if (defined $env{'form.grade_symb'}) { |
Line 1150 sub start_library {
|
Line 1180 sub start_library {
|
$result.=" \n $form_tag_start". |
$result.=" \n $form_tag_start". |
'<input type="hidden" name="submitted" value="yes" />'; |
'<input type="hidden" name="submitted" value="yes" />'; |
$result.=&problem_web_to_edit_header($rndseed); |
$result.=&problem_web_to_edit_header($rndseed); |
|
if ($Apache::lonhomework::type eq 'practice') { |
|
$result.= '<input type="submit" name="resetdata" '. |
|
'value="'.&mt('New Problem Variation').'" />'. |
|
&practice_problem_header().'<hr />'; |
|
} |
} |
} |
return $result; |
return $result; |
} |
} |
Line 1357 sub end_languageblock {
|
Line 1392 sub end_languageblock {
|
my $result = &Apache::lonxml::endredirection(); |
my $result = &Apache::lonxml::endredirection(); |
my $which = &Apache::lonxml::get_param('which',$parstack, |
my $which = &Apache::lonxml::get_param('which',$parstack, |
$safeeval); |
$safeeval); |
$available_texts{$which} = $result; |
if ($which=~/\w/) { |
|
$available_texts{$which} = $result; |
|
} |
|
my $otherlangs = &Apache::lonxml::get_param('other',$parstack, |
|
$safeeval); |
|
foreach my $language (split(/\s*\,\s*/,$otherlangs)) { |
|
if ($language=~/\w/) { |
|
$available_texts{$language} = $result; |
|
} |
|
} |
|
|
} |
} |
return ''; |
return ''; |
} |
} |
Line 1454 sub end_while {
|
Line 1499 sub end_while {
|
$return = &Apache::run::run($code,$safeeval); |
$return = &Apache::run::run($code,$safeeval); |
} |
} |
if ($error) { |
if ($error) { |
&Apache::lonxml::error('<pre>'.&mt('Code ran too long. It ran for more than').' '.$Apache::lonnet::perlvar{'lonScriptTimeout'}.' '.&mt('seconds occured while running <while> on line').' '.$line.'</pre>'); |
&Apache::lonxml::error('<pre>'.&mt('Code ran too long. It ran for more than').' '.$Apache::lonnet::perlvar{'lonScriptTimeout'}.' '.&mt('seconds occurred while running <while> on line').' '.$line.'</pre>'); |
} |
} |
} elsif ($target eq "edit") { |
} elsif ($target eq "edit") { |
$result.= &Apache::edit::tag_end($target,$token,''); |
$result.= &Apache::edit::tag_end($target,$token,''); |
Line 1814 sub start_problemtype {
|
Line 1859 sub start_problemtype {
|
$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','Exam/Quiz Problem'], |
['survey','Survey'], |
['survey','Survey'], |
['problem','Homework Problem'] ] |
['problem','Homework Problem'], |
|
['practice','Practice Problem'] ] |
,$token); |
,$token); |
$result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
$result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
Line 1847 sub end_startouttext {
|
Line 1893 sub end_startouttext {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my $result=''; |
my $result=''; |
my $text=''; |
my $text=''; |
|
|
if ($target eq 'edit') { |
if ($target eq 'edit') { |
|
my $areaid = 'homework_edit_'.$Apache::lonxml::curdepth; |
$text=&Apache::lonxml::get_all_text("endouttext",$parser,$style); |
$text=&Apache::lonxml::get_all_text("endouttext",$parser,$style); |
$result.=&Apache::edit::start_table($token)."<tr><td>".&mt('Text Block')."</td> |
$result.=&Apache::edit::start_table($token)."<tr><td>".&mt('Text Block')."</td>" |
<td>".&mt('Delete:'). |
.'<td><span clas="LC_nobreak">'.&mt('Delete?').' ' |
&Apache::edit::deletelist($target,$token) |
.&Apache::edit::deletelist($target,$token) |
."</td> |
.'</span></td>'; |
<td>". |
unless ($env{'environment.wysiwygeditor'} eq 'on') { |
&Apache::edit::insertlist($target,$token). |
$result.='<td align="left">' |
'</td><td align="right" valign="top">' . |
.&Apache::lonhtmlcommon::dragmath_button($areaid,1) |
|
.'</td>' |
|
.'<td>' |
|
.&Apache::edit::insertlist($target,$token) |
|
.'</td>'; |
|
} |
|
$result.='<td align="right" valign="top">' . |
&Apache::loncommon::helpLatexCheatsheet(). |
&Apache::loncommon::helpLatexCheatsheet(). |
&Apache::edit::end_row(). |
&Apache::edit::end_row(). |
&Apache::edit::start_spanning_row()."\n". |
&Apache::edit::start_spanning_row()."\n". |
Line 1931 sub end_simpleeditbutton {
|
Line 1983 sub end_simpleeditbutton {
|
return ''; |
return ''; |
} |
} |
|
|
|
sub practice_problem_header { |
|
return '<span class="LC_info"><h3>'.&mt('Practice Problem').'</h3></span>'. |
|
'<span class="LC_info">'.&mt('Submissions are not permanently recorded'). |
|
'</span>'; |
|
} |
|
|
1; |
1; |
__END__ |
__END__ |