'; }
+
sub movebuttons {
my ($target,$token) = @_;
my $result=' $maxlength) { $maxlength = length($_); }
- } split ("\n", $$data);
+ }
my $rows = $count;
my $cols = $maxlength;
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 +322,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 +336,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 +404,7 @@ sub select_arg {
}
$result.=$description.'
';
+ ';
return $result;
}
@@ -414,11 +426,154 @@ 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__
+
+=head1 NAME
+
+Apache::edit - edit mode helpers
+
+=head1 SYNOPSIS
+
+Invoked by many homework and xml related modules.
+
+ &Apache::edit::SUBROUTINENAME(ARGUMENTS);
+
+=head1 INTRODUCTION
+
+This module outputs HTML syntax helpful for the rendering of edit
+mode interfaces.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 HANDLER SUBROUTINE
+
+There is no handler subroutine.
+
+=head1 OTHER SUBROUTINES
+
+=over 4
+
+=item *
+
+initialize_edit() : initialize edit (set colordepth to zero)
+
+=item *
+
+tag_start($target,$token,$description) : provide deletion and insertion lists
+for the manipulation of a start tag; return a scalar string
+
+=item *
+
+tag_end($target,$token,$description) : ending syntax corresponding to
+&tag_start. return a scalar string.
+
+=item *
+
+start_table($token) : start table; update colordepth; return scalar string.
+
+=item *
+
+end_table() : reduce color depth; end table; return scalar string
+
+=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
+
+=item *
+
+deletelist($target,$token) : provide a yes option in an HTML select element;
+return scalar string
+
+=item *
+
+handle_delete($space,$target,$token,$tagstack,$parstack,$parser,$safeeval,
+$style) : respond to a user delete request by passing relevant stack
+and array information to various rendering functions; return a scalar string
+
+=item *
+
+get_insert_list($token) : provide an insertion list based on possibilities
+from lonxml; return a scalar string
+
+=item *
+
+insertlist($target,$token) : api that uses get_insert_list;
+return a scalar string
+
+=item *
+
+handleinsert($token) : provide an insertion list based on possibilities
+from lonxml; return a scalar string
+
+=item *
+
+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...
+
+=cut