--- loncom/homework/structuretags.pm 2002/10/01 21:04:34 1.121 +++ loncom/homework/structuretags.pm 2002/11/06 22:58:36 1.131 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.121 2002/10/01 21:04:34 sakharuk Exp $ +# $Id: structuretags.pm,v 1.131 2002/11/06 22:58:36 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -141,7 +141,7 @@ sub problem_edit_header {
-
+

 

'; } @@ -163,6 +163,13 @@ sub problem_web_to_edit_header { if (defined($ENV{'form.showallfoils'})) { $result.='checked="on"'; } $result.= ' /> Show All Foils
'; + my $numtoanalyze=$ENV{'form.numtoanalyze'}; + if (!$numtoanalyze) { $numtoanalyze=100; } + #DISABLED for now. + #$result.= ' +#
'; + return $result; } sub initialize_storage { @@ -389,9 +396,7 @@ sub end_problem { $status ne 'UNCHECKEDOUT') { # if part is zero, no s existed, so we need show the current # grading status - my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part); - #FIXME this is ugly we should just generate tex in inputtags - if ($target eq 'tex') { $gradestatus=&html_to_tex($gradestatus); } + my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part,$target); if ($Apache::lonhomework::type ne 'exam') {$result.= $gradestatus;} } if ( @@ -476,21 +481,37 @@ sub end_library { } sub start_block { - my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; + my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') { - my $code = @$parstack[$#$parstack]; - $code =~ s/\"//g; - $code .=';return $condition;'; - # print "
$code
"; - my $result = &Apache::run::run($code,$safeeval); - &Apache::lonxml::debug("block :$code: returned :$result:"); - if ( ! $result ) { - my $skip=&Apache::lonxml::get_all_text("/block",$$parser[$#$parser]); - &Apache::lonxml::debug("skipping ahead :$skip: $$parser[$#$parser]"); + my $result; + + if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || + $target eq 'tex' || $target eq 'analyze') { + my $code = @$parstack[$#$parstack]; + if ($code) { + $code =~ s/\"//g; + $code .=';return $condition;'; + $result = &Apache::run::run($code,$safeeval); + &Apache::lonxml::debug("block :$code: returned :$result:"); + } else { + $result='1'; + } + if ( ! $result ) { + my $skip=&Apache::lonxml::get_all_text("/block",$$parser[-1]); + &Apache::lonxml::debug("skipping ahead :$skip: $$parser[-1]"); + } + $result=''; + } elsif ($target eq 'edit') { + $result .=&Apache::edit::tag_start($target,$token); + $result .=&Apache::edit::text_arg('Test Condition:','condition', + $token,40); + $result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); + } elsif ($target eq 'modified') { + my $constructtag=&Apache::edit::get_new_args($token,$parstack, + $safeeval,'condition'); + if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); } } - } - return ""; + return $result; } sub end_block { @@ -535,7 +556,7 @@ sub start_randomlist { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $result; if ($target eq 'answer' || $target eq 'grade' || $target eq 'web' || - $target eq 'tex') { + $target eq 'tex' || $target eq 'analyze') { my $body= &Apache::lonxml::get_all_text("/randomlist",$$parser[$#$parser]); my $b_parser= HTML::TokeParser->new(\$body); my $b_tok; @@ -625,11 +646,13 @@ sub start_part { if ( $target eq "web" ) { $result="
Part is not open to be viewed. It $accessmsg
"; } elsif ( $target eq 'tex' ) { - $result="\\vskip 0 mm Part is not open to be viewed. It $accessmsg \\\\"; + $result="\\end{minipage}\\vskip 0 mm Part is not open to be viewed. It $accessmsg \\\\\\begin{minipage}{\\textwidth}"; } } else { if ($target eq 'tex') { - $result='\vskip 0 mm'; + if ($$tagstack[-2] ne 'problem') { + $result.='\noindent \end{minipage}\vskip 0 mm \noindent \begin{minipage}{\textwidth}\noindent'; + } } } } @@ -751,7 +774,9 @@ sub start_endouttext { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $result=''; if ($target eq "edit" ) { $result="".&Apache::edit::end_table()."\n"; } - if ($target eq "modified") { $result=''; } + if ($target eq "modified") { + $result=''. + &Apache::edit::handle_insertafter('startouttext'); } return $result; } sub end_endouttext {