--- loncom/homework/structuretags.pm 2006/06/26 22:33:22 1.359 +++ loncom/homework/structuretags.pm 2007/10/31 17:40:01 1.409 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.359 2006/06/26 22:33:22 albertel Exp $ +# $Id: structuretags.pm,v 1.409 2007/10/31 17:40:01 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -42,14 +42,24 @@ use lib '/home/httpd/lib/perl/'; use LONCAPA; BEGIN { - &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag')); + &Apache::lonxml::register('Apache::structuretags',('block','languageblock','translated','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag')); } sub start_web { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; - my $bodytext=&Apache::lonxml::get_all_text("/web",$parser,$style); - if ($target eq 'web' || $target eq 'webgrade') { - return $bodytext; + if ($target ne 'edit' && $target ne 'modified') { + my $bodytext=&Apache::lonxml::get_all_text("/web",$parser,$style); + if ($target eq 'web' || $target eq 'webgrade') { + return $bodytext; + } + } elsif ($target eq "edit" ) { + my $bodytext = + &Apache::lonxml::get_all_text_unbalanced("/web",$parser); + my $result = &Apache::edit::tag_start($target,$token); + $result .= &Apache::edit::editfield($token->[1],$bodytext,'',80,1); + return $result; + } elsif ( $target eq "modified" ) { + return $token->[4].&Apache::edit::modifiedfield("/web",$parser); } return ''; } @@ -61,9 +71,19 @@ sub end_web { sub start_tex { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result=''; - my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser,$style); - if ($target eq 'tex') { - return $bodytext.' '; + if ($target ne 'edit' && $target ne 'modified') { + my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser,$style); + if ($target eq 'tex') { + return $bodytext.' '; + } + } elsif ($target eq "edit" ) { + my $bodytext = + &Apache::lonxml::get_all_text_unbalanced("/tex",$parser); + my $result = &Apache::edit::tag_start($target,$token); + $result .= &Apache::edit::editfield($token->[1],$bodytext,'',80,1); + return $result; + } elsif ( $target eq "modified" ) { + return $token->[4].&Apache::edit::modifiedfield("/tex",$parser); } return $result;; } @@ -72,6 +92,31 @@ sub end_tex { return ''; } +sub homework_js { + return &Apache::loncommon::resize_textarea_js(). + <<'JS'; + +JS +} + sub page_start { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name, $extra_head)=@_; @@ -88,6 +133,8 @@ sub page_start { $parstack,$parser,$safeeval); } + $extra_head .= &homework_js(); + my %body_args; if (defined($found{'html'})) { $body_args{'skip_phases'}{'head'}=1; @@ -95,13 +142,9 @@ sub page_start { $extra_head .= &Apache::lonhtmlcommon::spellheader(); - my $css_href = &Apache::lonnet::EXT('resource.0.cssfile'); - if ($css_href =~ /\S/) { - &Apache::lonxml::extlink($css_href); - $extra_head .= - ''; - } - if ($target eq 'edit') { + $extra_head .= &Apache::londefdef::generate_css_links(); + + if ($env{'request.state'} eq 'construct') { $extra_head.=&Apache::edit::js_change_detection(). "