# The LearningOnline Network with CAPA # edit mode helpers # 3/20 Guy package Apache::edit; use strict; use Apache::lonnet; sub tag_start { my ($target,$token) = @_; my $result=''; if ($target eq "edit") { my $tag=$token->[1]; $result.="
<$tag> Delete: ". &insertlist($token,$target). "
\n"; } return $result; } sub tag_end { my ($target,$token) = @_; my $result=''; if ($target eq 'edit') { my $tag=$token->[1]; $result.="
</$tag>
\n"; } 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_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,$minwidth,$minheight)=@_; my $count=0; my $maxlength=-1; map { $count++; if (length($_) > $maxlength) { $maxlength = length ($_); } } split ("\n", $data); if ($maxlength > 80) { $maxlength = 80; } 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"; } sub modifiedfield { my ($token) = @_; 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; __END__