--- loncom/homework/edit.pm	2002/01/11 16:32:29	1.27
+++ loncom/homework/edit.pm	2002/03/22 20:05:19	1.32
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # edit mode helpers
 #
-# $Id: edit.pm,v 1.27 2002/01/11 16:32:29 matthew Exp $
+# $Id: edit.pm,v 1.32 2002/03/22 20:05:19 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -27,10 +27,12 @@
 #
 # 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
@@ -300,6 +302,18 @@ sub textarea_sizes {
   return ($rows,$cols);
 }
 
+sub editline {
+    my ($tag,$data,$description,$size)=@_;
+    $data=&HTML::Entities::encode($data);
+    if ($description) { $description="<br />".$description."<br />"; }
+    my $result = <<"END";
+$description
+<input type="text" name="homework_edit_$Apache::lonxml::curdepth" 
+       value="$data" size="$size" />
+END
+    return $result;
+}
+
 sub editfield {
   my ($tag,$data,$description,$minwidth,$minheight)=@_;
 
@@ -308,7 +322,9 @@ sub editfield {
   if ($cols < $minwidth ) { $cols = $minwidth; }
   if ($rows < $minheight) { $rows = $minheight; }
   if ($description) { $description="<br />".$description."<br />"; }
-  return "$description\n&nbsp;&nbsp;&nbsp;<textarea rows=\"$rows\" cols=\"$cols\" name=\"homework_edit_".$Apache::lonxml::curdepth."\">$data</textarea>\n";
+  return $description."\n".'&nbsp;&nbsp;&nbsp;<textarea rows="'.$rows.
+    '" cols="'.$cols.'" name="homework_edit_'.$Apache::lonxml::curdepth.'">'.
+      &HTML::Entities::encode($data).'</textarea>'."\n";
 }
 
 sub modifiedfield {
@@ -320,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;
 }
 
@@ -423,6 +432,32 @@ sub select_or_text_arg {
   }
   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";
+<a href=\"javascript:openbrowser('$form','$element')\"\>Browse</a>
+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";
+<a href=\"javascript:opensearcher('$form','$element')\"\>Search</a>
+ENDBUTTON
+    return $result;
+}
+
+
 1;
 __END__
 
@@ -522,6 +557,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 <input type="text" ../> for
+single-line text entry.  This is to be used for text enclosed by tags, not
+arguements/parameters associated with a tag.
+
 =back
 
 incomplete...