--- loncom/homework/edit.pm 2001/04/05 00:07:34 1.2 +++ loncom/homework/edit.pm 2001/05/13 21:40:32 1.6 @@ -7,26 +7,111 @@ use strict; use Apache::lonnet; sub tag_start { - my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; + my ($target,$token) = @_; my $result=''; - - $result.=" - - + if ($target eq "edit") { + my $tag=$token->[1]; + $result.="
<$token->[1]>
+ +
<$tag>Delete: +". + &insertlist($token,$target). + "
\n"; + } return $result; } sub tag_end { - my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; + my ($target,$token) = @_; my $result=''; + if ($target eq 'edit') { + my $tag=$token->[1]; + $result.="
</$tag>
\n"; + } + return $result; +} - $result.="</$token->[1]>\n"; +sub get_insert_list2 { + my ($token) = @_; + my $result=''; + if ($Apache::lonxml::insertlist{"$token->[1].which"}) { + my @tagnums= @{ $Apache::lonxml::insertlist{"$token->[1].which"} }; + foreach my $tagnum (@tagnums) { + $result.='\n"; + } + if ($result) { $result=''.$result; } + } + return $result; +} + +sub get_insert_list { + my ($token) = @_; + my $result=''; + if ($Apache::lonxml::insertlist{"$token->[1].which"}) { + my @tags= @{ $Apache::lonxml::insertlist{"$token->[1].which"} }; + foreach my $tag (@tags) { + $result.='\n"; + } + if ($result) { $result=''.$result; } + } + return $result; +} + +sub insertlist { + my ($token,$target) = @_; + my $result; + if ($target eq 'edit') { + my $optionlist= &get_insert_list($token); + if ($optionlist) { + $result = "Insert: +" + } + } + return $result; +} + +sub handle_insert2 { + if (!$ENV{"form.insert_$Apache::lonxml::curdepth"}) { return ''; } + my $result; + my $tagnum = $ENV{"form.insert_$Apache::lonxml::curdepth"}; + my $func=$Apache::lonxml::insertlist{"$tagnum.function"}; + if ($func eq 'default') { + my $newtag=$Apache::lonxml::insertlist{"$tagnum.tag"}; + $result.="\n<$newtag>\n"; + } else { + { + no strict 'refs'; + $result.=&$func; + } + } + return $result; +} + +sub handle_insert { + if (!$ENV{"form.insert_$Apache::lonxml::curdepth"}) { return ''; } + my $result; + my $newtag = $ENV{"form.insert_$Apache::lonxml::curdepth"}; + my $func=$Apache::lonxml::insertlist{"$newtag.function"}; + if ($func eq 'default') { + $result.="\n<$newtag>\n"; + } else { + { + no strict 'refs'; + $result.=&$func; + } + } return $result; } sub editfield { - my ($tag,$data,$description)=@_; + my ($tag,$data,$description,$minwidth,$minheight)=@_; my $count=0; my $maxlength=-1; @@ -34,8 +119,10 @@ sub editfield { if (length($_) > $maxlength) { $maxlength = length ($_); } } split ("\n", $data); if ($maxlength > 80) { $maxlength = 80; } - if ($description) { - $description="
".$description; + if ($maxlength < $minwidth) { $maxlength = $minwidth; } + if ( $count < $minheight) { $count = $minheight; } + if ($description) { + $description="
".$description; } return "$description
\n   \n"; # return "
\n<$tag>
\n   
\n</$tag>
\n"; @@ -43,16 +130,25 @@ sub editfield { sub modifiedfield { my ($token) = @_; - foreach my $envkey (sort keys %ENV) { - &Apache::lonxml::debug("$envkey ---- $ENV{$envkey}"); - } - &Apache::lonxml::debug("I want homework_edit_$Apache::lonxml::curdepth"); - &Apache::lonxml::debug($ENV{"form.homework_edit_$Apache::lonxml::curdepth"}); - if (defined $token->[4]) { - return $token->[4].$ENV{"form.homework_edit_$Apache::lonxml::curdepth"}; - } else { - return $ENV{"homework_edit_$Apache::lonxml::curdepth"}.$token->[2]; + my $result; +# foreach my $envkey (sort keys %ENV) { +# &Apache::lonxml::debug("$envkey ---- $ENV{$envkey}"); +# } +# &Apache::lonxml::debug("I want homework_edit_$Apache::lonxml::curdepth"); +# &Apache::lonxml::debug($ENV{"form.homework_edit_$Apache::lonxml::curdepth"}); + $result=$ENV{"form.homework_edit_$Apache::lonxml::curdepth"}; + if (defined $token) { + if (defined $token->[4]) { + $result=$token->[4].$result; + } else { + $result=$result.$token->[2]; + } } + return $result; +} + +sub insert_startouttext { + return "\n\n"; } 1;