--- loncom/homework/essayresponse.pm 2010/08/28 22:25:07 1.111 +++ loncom/homework/essayresponse.pm 2011/01/29 19:41:41 1.114 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # essay (ungraded) style responses # -# $Id: essayresponse.pm,v 1.111 2010/08/28 22:25:07 raeburn Exp $ +# $Id: essayresponse.pm,v 1.114 2011/01/29 19:41:41 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -58,22 +58,18 @@ sub start_essayresponse { if (!defined($maxfilesize)) { $maxfilesize = 10.0; #FIXME This should become a domain configuration } + my $hiddendraft; if (($Apache::lonhomework::type eq 'survey') || ($Apache::lonhomework::type eq 'surveycred') || ($Apache::lonhomework::type eq 'anonsurvey') || ($Apache::lonhomework::type eq 'anonsurveycred')) { - $result.= ''; - } - my $status_text = &mt('Submission type'); - if ($Apache::lonhomework::history{"resource.$part.award"} eq 'DRAFT') { - $status_text .= '
'.&mt('(Currently -- draft)'); - } - $result.= '

'.&Apache::lonhtmlcommon::start_pick_box(). - &Apache::lonhtmlcommon::row_title($status_text); - if (($Apache::lonhomework::type ne 'survey') && - ($Apache::lonhomework::type ne 'surveycred') && - ($Apache::lonhomework::type ne 'anonsurvey') && - ($Apache::lonhomework::type ne 'anonsurveycred')) { + $hiddendraft = ''; + } else { + my $status_text = &mt('Submission type'); + if ($Apache::lonhomework::history{"resource.$part.award"} eq 'DRAFT') { + $status_text .= '
'.&mt('(Currently -- draft)'); + } + $result = &Apache::lonhtmlcommon::row_title($status_text); my $closure; unless ($ncol || $uploadedfiletypes) { $closure = 1; @@ -111,7 +107,15 @@ sub start_essayresponse { } $result.=&Apache::inputtags::file_selector($part,$id,$uploadedfiletypes, $filesfrom,undef,$maxfilesize); - $result.=&Apache::lonhtmlcommon::end_pick_box().'

'; + if ($result) { + $result = + '
'.$hiddendraft. + &Apache::lonhtmlcommon::start_pick_box(). + $result. + &Apache::lonhtmlcommon::end_pick_box().'
'; + } else { + $result = $hiddendraft; + } } elsif ($target eq 'web' && $Apache::inputtags::status[-1] ne 'CAN_ANSWER') { my $part= $Apache::inputtags::part; @@ -308,6 +312,8 @@ sub file_submission { $port_delete{$file} = 1; } elsif ($file =~ m{^/uploaded/\Q$udom\E/\Q$uname\E/essayresponse/\Q$cdom\E/\Q$cnum\E/}) { $uploaded_delete = $file; + } elsif ($file =~ m{^/uploaded/\Q$udom\E/\Q$uname\E/essayresponse/[^/]+$}) { + $uploaded_delete = $file; } } } @@ -318,8 +324,12 @@ sub file_submission { } } if ($uploaded_delete) { - $Apache::lonhomework::results{"resource.$part.$id.uploadedfile"} = ""; - $Apache::lonhomework::results{"resource.$part.$id.uploadedurl"} = ""; + if ($uploaded_delete eq $uploadedurl) { + $Apache::lonhomework::results{"resource.$part.$id.uploadedfile"} = ""; + $Apache::lonhomework::results{"resource.$part.$id.uploadedurl"} = ""; + } else { + undef($uploaded_delete); + } } } if ($env{'form.HWPORT'.$jspart.'_'.$id} ne '') { @@ -516,7 +526,9 @@ sub file_submission { $Apache::lonhomework::results{"resource.$part.$id.portfiles"} = ""; } } - if ($Apache::lonhomework::history{"resource.$part.$id.portfiles"} ne $Apache::lonhomework::results{"resource.$part.$id.portfiles"}) { + if (($Apache::lonhomework::history{"resource.$part.$id.portfiles"} ne + $Apache::lonhomework::results{"resource.$part.$id.portfiles"}) || + ($uploaded_delete)) { if (ref($uploadedflag)) { $$uploadedflag=1; }