--- loncom/homework/edit.pm 2001/12/21 16:58:25 1.26 +++ loncom/homework/edit.pm 2002/04/26 13:30:08 1.34 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # edit mode helpers # -# $Id: edit.pm,v 1.26 2001/12/21 16:58:25 harris41 Exp $ +# $Id: edit.pm,v 1.34 2002/04/26 13:30:08 harris41 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -26,10 +26,13 @@ # http://www.lon-capa.org/ # # 3/20 Guy +# 01/10/02 Matthew +# 03/06/02 Matthew package Apache::edit; use strict; -use Apache::lonnet; +use Apache::lonnet(); +use HTML::Entities(); # Global Vars # default list of colors to use in editing @@ -55,10 +58,8 @@ sub tag_start { &deletelist($target,$token) ." ". - &insertlist($target,$token). - " -\n"; -#". + &insertlist($target,$token).&end_row().&start_spanning_row(); +#". # &movebuttons($target,$token). # "\n"; } @@ -105,6 +106,10 @@ sub end_table { return $result; } +sub start_spanning_row { return '';} +sub start_row { return ''; } +sub end_row { return ''; } + sub movebuttons { my ($target,$token) = @_; my $result=''.$Apache::lonxml::insertlist{"$tagnum.description"}."\n"; + my $descrip=$Apache::lonxml::insertlist{"$tagnum.description"}; + $options{$descrip} ="\n"; } + foreach my $option (sort(keys(%options))) { $result.=$options{$option}; } if ($result) { $result=''.$result; } } return $result; @@ -297,6 +305,18 @@ sub textarea_sizes { return ($rows,$cols); } +sub editline { + my ($tag,$data,$description,$size)=@_; + $data=&HTML::Entities::encode($data); + if ($description) { $description="
".$description."
"; } + my $result = <<"END"; +$description + +END + return $result; +} + sub editfield { my ($tag,$data,$description,$minwidth,$minheight)=@_; @@ -305,7 +325,9 @@ sub editfield { if ($cols < $minwidth ) { $cols = $minwidth; } if ($rows < $minheight) { $rows = $minheight; } if ($description) { $description="
".$description."
"; } - return "$description\n   \n"; + return $description."\n".'   '."\n"; } sub modifiedfield { @@ -317,13 +339,6 @@ sub modifiedfield { # &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; } @@ -392,7 +407,7 @@ sub select_arg { } $result.=$description.''; + '; return $result; } @@ -414,12 +429,38 @@ sub select_or_text_arg { if ($found) { $result.=$description.''; + '; } else { $result.=&text_arg($description,$name,$token,$size); } return $result; } + +#----------------------------------------------------- browse +sub browse { + # insert a link to call up the filesystem browser (lonindexer) + $_ = shift; + my $form = 'lonhomework'; + my $element = &Apache::lonnet::escape("$Apache::lonxml::curdepth.$_"); + my $result = <<"ENDBUTTON"; +Browse +ENDBUTTON + return $result; +} + +#----------------------------------------------------- browse +sub search { + # insert a link to call up the filesystem browser (lonindexer) + $_ = shift; + my $form = 'lonhomework'; + my $element = &Apache::lonnet::escape("$Apache::lonxml::curdepth.$_"); + my $result = <<"ENDBUTTON"; +Search +ENDBUTTON + return $result; +} + + 1; __END__ @@ -473,6 +514,18 @@ end_table() : reduce color depth; end ta =item * +start_spanning_row() : start a new table row spanning the 'edit' environment. + +=item * + +start_row() : start a new table row and element. + +=item * + +end_row() : end current table element and row. + +=item * + movebuttons($target,$token) : move-up and move-down buttons; return scalar string @@ -507,6 +560,21 @@ from lonxml; return a scalar string get_insert_list($token) : provide an insertion list based on possibilities from lonxml; return a scalar string +=item * +browse($elementname) : provide a link which will open up the filesystem +browser (lonindexer) and, once a file is selected, place the result in +the form element $elementname. + +=item * +search($elementname) : provide a link which will open up the filesystem +searcher (lonsearchcat) and, once a file is selected, place the result in +the form element $elementname. + +=item * +editline(tag,data,description,size): Provide a for +single-line text entry. This is to be used for text enclosed by tags, not +arguements/parameters associated with a tag. + =back incomplete...