--- loncom/homework/inputtags.pm 2002/11/08 20:34:10 1.73 +++ loncom/homework/inputtags.pm 2003/04/07 20:52:58 1.87 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # input definitons # -# $Id: inputtags.pm,v 1.73 2002/11/08 20:34:10 sakharuk Exp $ +# $Id: inputtags.pm,v 1.87 2003/04/07 20:52:58 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -30,6 +30,7 @@ package Apache::inputtags; use HTML::Entities(); use strict; +use Apache::loncommon; BEGIN { &Apache::lonxml::register('Apache::inputtags',('textfield','textline')); @@ -47,6 +48,8 @@ sub initialize_inputtags { @Apache::inputtags::responselist=(); # list of whether or not a specific response was previously used @Apache::inputtags::previous=(); + # submission it was used in + @Apache::inputtags::previous_version=(); # id of current part, 0 means that no part is current (inside only $Apache::inputtags::part=''; # list of problem date statuses, the first element is for @@ -90,17 +93,17 @@ sub start_textfield { "rows=\"$rows\" cols=\"$cols\">".$oldresponse; if ($oldresponse ne '') { #get rid of any startup text if the user has already responded - &Apache::lonxml::get_all_text("/textfield",$$parser[-1]); + &Apache::lonxml::get_all_text("/textfield",$parser); } } else { #right or wrong don't show it #$result='
'.$oldresponse.'
'; $result=''; #get rid of any startup text - &Apache::lonxml::get_all_text("/textfield",$$parser[-1]); + &Apache::lonxml::get_all_text("/textfield",$parser); } } elsif ($target eq 'grade') { - my $seedtext=&Apache::lonxml::get_all_text("/textfield",$$parser[-1]); + my $seedtext=&Apache::lonxml::get_all_text("/textfield",$parser); if ($seedtext eq $ENV{'form.HWVAL'.$resid}) { # if the seed text is still there it wasn't a real submission $ENV{'form.HWVAL'.$resid}=''; @@ -109,7 +112,7 @@ sub start_textfield { $result.=&Apache::edit::tag_start($target,$token); $result.=&Apache::edit::text_arg('Rows:','rows',$token,4); $result.=&Apache::edit::text_arg('Columns:','cols',$token,4); - my $bodytext=&Apache::lonxml::get_all_text("/textfield",$$parser[-1]); + my $bodytext=&Apache::lonxml::get_all_text("/textfield",$parser); $result.=&Apache::edit::editfield($token->[1],$bodytext,'Text you want to appear by default:',80,2); } elsif ($target eq 'modified') { my $constructtag=&Apache::edit::get_new_args($token,$parstack, @@ -120,6 +123,13 @@ sub start_textfield { $result=$token->[4]; } $result.=&Apache::edit::modifiedfield(); + } elsif ($target eq 'tex') { + if ($$tagstack[-2] eq 'essayresponse' and $Apache::lonhomework::type eq 'exam') { + my $number_of_lines= &Apache::lonxml::get_param('rows',$parstack,$safeeval); + $result = '\fbox{\fbox{\parbox{\textwidth-5mm}{'; + for (my $i=0;$i