version 1.397, 2007/09/11 23:53:05
|
version 1.405, 2007/10/17 00:22:51
|
Line 92 sub end_tex {
|
Line 92 sub end_tex {
|
return ''; |
return ''; |
} |
} |
|
|
|
sub homework_js { |
|
return &Apache::loncommon::resize_textarea_js(). |
|
<<'JS'; |
|
<script type="text/javascript"> |
|
function setSubmittedPart (part) { |
|
this.document.lonhomework.submitted.value="part_"+part; |
|
} |
|
|
|
function image_response_click (which, e) { |
|
init_geometry(); |
|
if (!e) { e = window.event; } //IE |
|
var input_element = document.lonhomework.elements[which]; |
|
var token_element = document.lonhomework.elements[which+'_token']; |
|
var token = token_element.value; |
|
var img_element = document.getElementById(which+'_imageresponse'); |
|
var x= e.clientX-getX(img_element)+Geometry.getHorizontalScroll(); |
|
var y= e.clientY-getY(img_element)+Geometry.getVerticalScroll(); |
|
var click = x+':'+y; |
|
input_element.value = click; |
|
img_element.src = '/adm/randomlabel.png?token='+token+'&clickdata='+click; |
|
} |
|
</script> |
|
JS |
|
} |
|
|
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 108 sub page_start {
|
Line 133 sub page_start {
|
$parstack,$parser,$safeeval); |
$parstack,$parser,$safeeval); |
} |
} |
|
|
$extra_head.= ' |
$extra_head .= &homework_js(); |
<script type="text/javascript"> |
|
function setSubmittedPart (part) { |
|
this.document.lonhomework.submitted.value="part_"+part; |
|
} |
|
</script> |
|
'; |
|
|
|
my %body_args; |
my %body_args; |
if (defined($found{'html'})) { |
if (defined($found{'html'})) { |
Line 139 function setSubmittedPart (part) {
|
Line 158 function setSubmittedPart (part) {
|
} 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') { |
# no extra args to bodytag |
if ($env{'environment.remote'} ne 'off') { |
|
$body_args{'only_body'} = 1; |
|
} |
} |
} |
} elsif (!defined($found{'body'})) { |
} elsif (!defined($found{'body'})) { |
my %add_entries; |
my %add_entries; |
Line 339 sub problem_web_to_edit_header {
|
Line 360 sub problem_web_to_edit_header {
|
if (!$Apache::lonhomework::parsing_a_task) { |
if (!$Apache::lonhomework::parsing_a_task) { |
$result.=" |
$result.=" |
<nobr> |
<nobr> |
Problem Status: |
".&mt("Problem Status:")." |
<select name='problemstate'> |
<select name='problemstate'> |
<option value=''></option> |
<option value=''></option> |
".&option('CLOSED' ,'problemstate').&mt("Closed")."</option> |
".&option('CLOSED' ,'problemstate').&mt("Closed")."</option> |
Line 350 Problem Status:
|
Line 371 Problem Status:
|
</select> |
</select> |
</nobr> |
</nobr> |
<nobr> |
<nobr> |
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("Exam Problem")."</option> |
Line 359 Problem Type:
|
Line 380 Problem Type:
|
</select> |
</select> |
</nobr> |
</nobr> |
<nobr> |
<nobr> |
Feedback Mode: |
".&mt("Feedback Mode:")." |
<select name='problemstatus'> |
<select name='problemstatus'> |
<option value=''></option> |
<option value=''></option> |
".&option('yes','problemstatus').&mt("Show Feedback")."</option> |
".&option('yes','problemstatus').&mt("Show Feedback")."</option> |
".&option('no', 'problemstatus').&mt("Don't Show Feedback")."</option> |
".&option('no', 'problemstatus').&mt("Don't Show Incorect/Correct Feedback")."</option> |
|
".&option('no_feedback_ever', 'problemstatus').&mt("Don't Show Any Feedback")."</option> |
</select> |
</select> |
</nobr> |
</nobr> |
<input type='submit' name='changeproblemmode' value='".&mt("Change")."' /> |
<input type='submit' name='changeproblemmode' value='".&mt("Change")."' /> |
Line 380 Feedback Mode:
|
Line 402 Feedback Mode:
|
} elsif ($Apache::lonhomework::parsing_a_task) { |
} elsif ($Apache::lonhomework::parsing_a_task) { |
$result.=" |
$result.=" |
<nobr> |
<nobr> |
Problem Status: |
".&mt("Problem Status:")." |
<select name='problemstate'> |
<select name='problemstate'> |
<option value=''></option> |
<option value=''></option> |
".&option('CLOSED' ,'problemstate').&mt("Closed")."</option> |
".&option('CLOSED' ,'problemstate').&mt("Closed")."</option> |
Line 555 sub init_problem_globals {
|
Line 577 sub init_problem_globals {
|
if ($type eq 'problem') { |
if ($type eq 'problem') { |
$Apache::inputtags::part='0'; |
$Apache::inputtags::part='0'; |
@Apache::inputtags::partlist=('0'); |
@Apache::inputtags::partlist=('0'); |
$Apache::lonhomework::problemstatus=&get_problem_status('0'); |
&Apache::lonhomework::set_show_problem_status(&get_problem_status('0')); |
$Apache::lonhomework::ignore_response_errors=0; |
$Apache::lonhomework::ignore_response_errors=0; |
|
|
} elsif ($type eq 'library') { |
} elsif ($type eq 'library') { |
$Apache::inputtags::part=''; |
$Apache::inputtags::part=''; |
@Apache::inputtags::partlist=(); |
@Apache::inputtags::partlist=(); |
$Apache::lonhomework::problemstatus=''; |
&Apache::lonhomework::reset_show_problem_status(); |
$Apache::lonhomework::ignore_response_errors=1; |
$Apache::lonhomework::ignore_response_errors=1; |
|
|
} elsif ($type eq 'Task') { |
} elsif ($type eq 'Task') { |
$Apache::inputtags::part='0'; |
$Apache::inputtags::part='0'; |
@Apache::inputtags::partlist=('0'); |
@Apache::inputtags::partlist=('0'); |
$Apache::lonhomework::problemstatus=''; |
&Apache::lonhomework::reset_show_problem_status(); |
$Apache::lonhomework::ignore_response_errors=1; |
$Apache::lonhomework::ignore_response_errors=1; |
} |
} |
@Apache::inputtags::responselist = (); |
@Apache::inputtags::responselist = (); |
Line 596 sub reset_problem_globals {
|
Line 618 sub reset_problem_globals {
|
undef($Apache::lonhomework::default_type); |
undef($Apache::lonhomework::default_type); |
undef($Apache::lonhomework::type); |
undef($Apache::lonhomework::type); |
undef($Apache::lonhomework::scantronmode); |
undef($Apache::lonhomework::scantronmode); |
undef($Apache::lonhomework::problemstatus); |
|
undef($Apache::lonhomework::ignore_response_errors); |
undef($Apache::lonhomework::ignore_response_errors); |
|
&Apache::lonhomework::reset_show_problem_status(); |
} |
} |
|
|
sub set_problem_state { |
sub set_problem_state { |
Line 1143 sub start_languageblock {
|
Line 1165 sub start_languageblock {
|
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
my $include = $token->[2]->{'include'}; |
my $include = $token->[2]->{'include'}; |
my $exclude = $token->[2]->{'exclude'}; |
my $exclude = $token->[2]->{'exclude'}; |
my $preferred_language=(&Apache::loncommon::preferred_languages)[0]; |
my @preferred_languages=&Apache::loncommon::preferred_languages(); |
# This should not even happen, since we should at least have the server language |
# This should not even happen, since we should at least have the server language |
if (!$preferred_language) { $preferred_language='en'; } |
if (!$preferred_languages[0]) { $preferred_languages[0]='en'; } |
|
# Now loop over all languages in order of preference |
|
foreach my $preferred_language (@preferred_languages) { |
# If the languageblock has no arguments, show the contents |
# If the languageblock has no arguments, show the contents |
$result='1'; |
$result=1; |
|
my $found=0; |
# Do we have an include argument? |
# Do we have an include argument? |
if ($include) { |
if ($include) { |
# If include is specified, by default, don't render the block |
# If include is specified, by default, don't render the block |
$result=''; |
$result=0; |
foreach my $included_language (split(/\,/,$include)) { |
foreach my $included_language (split(/\,/,$include)) { |
# ... but if my preferred language is included, render it |
# ... but if my preferred language is included, render it |
if ($included_language eq $preferred_language) { $result='1'; } |
if ($included_language eq $preferred_language) { |
} |
$result=1; |
} |
$found=1; |
|
} |
|
} |
|
} |
# Do we have an exclude argument? |
# Do we have an exclude argument? |
if ($exclude) { |
if ($exclude) { |
$result='1'; |
$result=1; |
foreach my $excluded_language (split(/\,/,$exclude)) { |
foreach my $excluded_language (split(/\,/,$exclude)) { |
if ($excluded_language eq $preferred_language) { $result='0'; } |
if ($excluded_language eq $preferred_language) { |
} |
$result=0; |
} |
$found=1; |
|
} |
|
} |
|
} |
|
if ($found) { last; } |
|
} |
if ( ! $result ) { |
if ( ! $result ) { |
my $skip=&Apache::lonxml::get_all_text("/languageblock",$parser, |
my $skip=&Apache::lonxml::get_all_text("/languageblock",$parser, |
$style); |
$style); |
Line 1456 sub start_part {
|
Line 1489 sub start_part {
|
@Apache::inputtags::response=(); |
@Apache::inputtags::response=(); |
@Apache::inputtags::previous=(); |
@Apache::inputtags::previous=(); |
@Apache::inputtags::previous_version=(); |
@Apache::inputtags::previous_version=(); |
$Apache::lonhomework::problemstatus=&get_problem_status($id); |
&Apache::lonhomework::set_show_problem_status(&get_problem_status($id)); |
|
&Apache::response::reset_params(); |
|
|
my $hidden=&Apache::loncommon::check_if_partid_hidden($Apache::inputtags::part); |
my $hidden=&Apache::loncommon::check_if_partid_hidden($Apache::inputtags::part); |
my $newtype=&Apache::lonnet::EXT("resource.$id.type"); |
my $newtype=&Apache::lonnet::EXT("resource.$id.type"); |
if ($newtype) { $Apache::lonhomework::type=$newtype; } |
if ($newtype) { $Apache::lonhomework::type=$newtype; } |
Line 1713 sub start_startouttext {
|
Line 1748 sub start_startouttext {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my @result=(''.''); |
my @result=(''.''); |
if ($target eq 'edit' || $target eq 'modified' ) { @result=('','no'); } |
if ($target eq 'edit' || $target eq 'modified' ) { @result=('','no'); } |
|
|
|
my $nesting = |
|
&Apache::lonxml::set_state('outtext', |
|
&Apache::lonxml::get_state('outtext')+1); |
|
if ($nesting > 1 && $env{'request.state'} eq 'construct') { |
|
&Apache::lonxml::error("Nesting of <startouttext /> not allowed, on line ".$token->[5]); |
|
} |
return (@result); |
return (@result); |
} |
} |
|
|
Line 1752 sub start_endouttext {
|
Line 1794 sub start_endouttext {
|
$result='<endouttext />'. |
$result='<endouttext />'. |
&Apache::edit::handle_insertafter('startouttext'); |
&Apache::edit::handle_insertafter('startouttext'); |
} |
} |
|
|
|
my $nesting = |
|
&Apache::lonxml::set_state('outtext', |
|
&Apache::lonxml::get_state('outtext')-1); |
|
if ($nesting < 0 && $env{'request.state'} eq 'construct') { |
|
&Apache::lonxml::error(" Extraneous <endouttext /> not allowed on line ".$token->[5]); |
|
&Apache::lonxml::set_state('outtext', 0); |
|
} |
return $result; |
return $result; |
} |
} |
|
|