--- loncom/homework/edit.pm 2001/05/31 22:37:56 1.8 +++ loncom/homework/edit.pm 2001/06/16 18:35:27 1.11 @@ -6,14 +6,23 @@ package Apache::edit; use strict; use Apache::lonnet; +# Global Vars +# default list of colors to use in editing +@Apache::edit::colorlist=('#ffffff','#ff0000','#00ff00','#0000ff','#0ff000','#000ff0','#f0000f'); +# depth of nesting of edit +$Apache::edit::colordepth=0; + +sub initialize_edit { + $Apache::edit::colordepth=0; +} + sub tag_start { - my ($target,$token) = @_; + my ($target,$token,$description) = @_; my $result=''; if ($target eq "edit") { my $tag=$token->[1]; -# my $color = sprintf("#%06lx",(hex("ffffff")) >> scalar(split(/_/,$Apache::lonxml::curdepth))); - my $color = sprintf("#%02lxffff",33* scalar(split(/_/,$Apache::lonxml::curdepth))); - $result.=" + if (!$description) { $description="<$tag>"; } + $result.= &start_table($token)." @@ -26,12 +35,42 @@ sub tag_start { } sub tag_end { - my ($target,$token) = @_; + my ($target,$token,$description) = @_; my $result=''; if ($target eq 'edit') { my $tag=$token->[1]; - $result.="
<$tag>
$description Delete:". &deletelist($target,$token) ."
</$tag>
\n"; + if (!defined($description)) { + $result.="</$tag>"; + } else { + if ($description ne '') { $result.="$description"; } + } + $result.="  ".&end_table()."\n"; + } + return $result; +} + +sub start_table { + my ($token)=@_; + my $tag = $token->[1]; + my $tagnum; + foreach my $namespace (reverse @Apache::lonxml::namespace) { + my $testtag=$Apache::lonxml::namespace['-1'].'::'.$tag; + $tagnum=$Apache::lonxml::insertlist{"$testtag.num"}; + if (defined($tagnum)) { last; } + } + if (!defined ($tagnum)) { $tagnum=$Apache::lonxml::insertlist{"$tag.num"}; } + my $color = $Apache::lonxml::insertlist{"$tagnum.color"}; + if (!defined($color)) { + $color = $Apache::edit::colorlist[$Apache::edit::colordepth]; } + $Apache::edit::colordepth++; + my $result=""; + return $result; +} + +sub end_table { + $Apache::edit::colordepth--; + my $result="
"; return $result; } @@ -51,12 +90,10 @@ sub get_insert_list { my @tagnums= (); #&Apache::lonxml::debug("keys ".join("\n",sort(keys(%Apache::lonxml::insertlist)))); if ($Apache::lonxml::insertlist{"$token->[1].which"}) { - &Apache::lonxml::debug("Adding1 $token->[1].which"); push (@tagnums, @{ $Apache::lonxml::insertlist{"$token->[1].which"} }); } foreach my $namespace (@Apache::lonxml::namespace) { if ($Apache::lonxml::insertlist{"$namespace".'::'."$token->[1].which"}) { - &Apache::lonxml::debug("Adding2 $namespace".'::'."$token->[1].which"); push (@tagnums, @{ $Apache::lonxml::insertlist{"$namespace".'::'."$token->[1].which"} }); } } @@ -79,6 +116,8 @@ sub insertlist { " + } else { + $result=" "; } } return $result; @@ -123,9 +162,9 @@ sub editfield { if ($maxlength < $minwidth) { $maxlength = $minwidth; } if ( $count < $minheight) { $count = $minheight; } if ($description) { - $description="
".$description; + $description="
".$description."
"; } - return "$description
\n   \n"; + return "$description\n   \n"; # return "
\n<$tag>
\n   
\n</$tag>
\n"; }