--- loncom/homework/essayresponse.pm	2008/12/21 19:09:15	1.95
+++ loncom/homework/essayresponse.pm	2009/05/23 18:07:57	1.101
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # essay (ungraded) style responses
 #
-# $Id: essayresponse.pm,v 1.95 2008/12/21 19:09:15 raeburn Exp $
+# $Id: essayresponse.pm,v 1.101 2009/05/23 18:07:57 riegler Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -67,7 +67,7 @@ sub start_essayresponse {
 		'</label> <br />'.
 		'<label>'.
 		'<input type="radio" name="HWDRAFT'.$part.'_'.$id.'" value="no" /> '.
-		&mt('Save entries below as a draft answer (not submitting them for credit yet)').
+		&mt('Save entries below (not submitted for credit yet)').
 		'</label>'.
 		'</td></tr>';
 	}
@@ -203,6 +203,7 @@ sub end_essayresponse {
 
 	if ($target eq 'analyze') {
             $Apache::lonhomework::analyze{"$part.$id.type"} = 'essayresponse';
+            push (@{ $Apache::lonhomework::analyze{"parts"} },"$part.$id");
 	    &Apache::lonhomework::set_bubble_lines();
 	}
     }
@@ -266,7 +267,7 @@ sub file_submission {
         }
         my $uploadedfiletypes= 
             &Apache::lonnet::EXT("resource.$part".'_'."$id.uploadedfiletypes");
-        if ($uploadedfiletypes) {
+        if ($uploadedfiletypes ne '') {
             $uploadedfiletypes=~s/[^\w\,]//g;
             $uploadedfiletypes=','.$uploadedfiletypes.',';
             foreach my $file (@submitted_files) {
@@ -280,6 +281,8 @@ sub file_submission {
                     }
                 }
             }
+        } else {
+            @acceptable_files = @submitted_files;
         }
         my $maxfilesize=&Apache::lonnet::EXT("resource.$part".'_'."$id.maxfilesize");
         if (!$maxfilesize) {
@@ -293,11 +296,14 @@ sub file_submission {
                 }
             } else {
                 my ($symb,$crsid,$udom,$uname) = &Apache::lonnet::whichuser();
-                my ($path,$filename) = ($file =~ m{^(.+)/([^/]+)$});
+                my ($path,$filename) = ($file =~ m{^(.*/)([^/]+)$});
                 my $fullpath = '/userfiles/portfolio'.$path;
                 if (!exists($dirlist{$fullpath})) {
                     my @list = &Apache::lonnet::dirlist($fullpath,$udom,$uname,1);
-                    foreach my $dir_line (@list) {
+                    $dirlist{$fullpath} = \@list;
+                }
+                if (ref($dirlist{$fullpath}) eq 'ARRAY') {
+                    foreach my $dir_line (@{$dirlist{$fullpath}}) {
                         my ($fname,$dom,undef,$testdir,undef,undef,undef,undef,
                             $size,undef,$mtime,undef,undef,undef,$obs,undef) = 
                         split(/\&/,$dir_line,16);
@@ -309,7 +315,6 @@ sub file_submission {
                             last;
                         }
                     }
-                    $dirlist{$fullpath} = \@list;
                 }
             }
             if (ref($totalsize)) {
@@ -318,6 +323,7 @@ sub file_submission {
                     if ($which eq 'filename') {
                         &delete_form_items($jspart,$id);
                     }
+                    last;
                 } else {
                     push(@accepted_files,$file);
                 }
@@ -374,7 +380,7 @@ sub file_submission {
 	    $Apache::lonhomework::results{"resource.$part.$id.uploadedurl"}=
 		&Apache::lonnet::userfileupload('HWFILE'.$jspart.'_'.$id,undef,
 						$subdir);
-            &Apache::lonnet::delenv($env{'form.HWFILE'.$jspart.'_'.$id});
+            delete($env{'form.HWFILE'.$jspart.'_'.$id});
 	}
     } elsif ($which eq 'portfiles' &&
 	     $Apache::lonhomework::history{"resource.$part.$id.$which"}) {
@@ -386,9 +392,9 @@ sub file_submission {
 
 sub delete_form_items {
     my ($jspart,$id) = @_;
-    &Apache::lonnet::delenv($env{'form.HWFILE'.$jspart.'_'.$id.'.filename'});
-    &Apache::lonnet::delenv($env{'form.HWFILE'.$jspart.'_'.$id.'.mimetype'});
-    &Apache::lonnet::delenv($env{'form.HWFILE'.$jspart.'_'.$id});
+    delete($env{'form.HWFILE'.$jspart.'_'.$id.'.filename'});
+    delete($env{'form.HWFILE'.$jspart.'_'.$id.'.mimetype'});
+    delete($env{'form.HWFILE'.$jspart.'_'.$id});
 }