Diff for /loncom/homework/essayresponse.pm between versions 1.109 and 1.114

version 1.109, 2010/08/22 19:00:15 version 1.114, 2011/01/29 19:41:41
Line 58  sub start_essayresponse { Line 58  sub start_essayresponse {
         if (!defined($maxfilesize)) {          if (!defined($maxfilesize)) {
             $maxfilesize = 10.0; #FIXME This should become a domain configuration               $maxfilesize = 10.0; #FIXME This should become a domain configuration 
         }          }
           my $hiddendraft;
  if (($Apache::lonhomework::type eq 'survey') ||   if (($Apache::lonhomework::type eq 'survey') ||
             ($Apache::lonhomework::type eq 'surveycred') ||              ($Apache::lonhomework::type eq 'surveycred') ||
             ($Apache::lonhomework::type eq 'anonsurvey') ||              ($Apache::lonhomework::type eq 'anonsurvey') ||
             ($Apache::lonhomework::type eq 'anonsurveycred')) {              ($Apache::lonhomework::type eq 'anonsurveycred')) {
     $result.= '<input type="hidden" name="HWDRAFT'.$part.'_'.$id.'" value="yes" />';              $hiddendraft = '<input type="hidden" name="HWDRAFT'.$part.'_'.$id.'" value="yes" />';
  }          } else {
         my $status_text = &mt('Submission type');              my $status_text = &mt('Submission type');
         if ($Apache::lonhomework::history{"resource.$part.award"} eq 'DRAFT') {              if ($Apache::lonhomework::history{"resource.$part.award"} eq 'DRAFT') {
             $status_text .= '<br />'.&mt('(Currently -- draft)');                  $status_text .= '<br />'.&mt('(Currently -- draft)');
         }              }
         $result.= '<p>'.&Apache::lonhtmlcommon::start_pick_box().              $result = &Apache::lonhtmlcommon::row_title($status_text);
                   &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')) {  
             my $closure;              my $closure;
             unless ($ncol || $uploadedfiletypes) {              unless ($ncol || $uploadedfiletypes) {
                 $closure = 1;                  $closure = 1;
Line 111  sub start_essayresponse { Line 107  sub start_essayresponse {
         }          }
  $result.=&Apache::inputtags::file_selector($part,$id,$uploadedfiletypes,   $result.=&Apache::inputtags::file_selector($part,$id,$uploadedfiletypes,
    $filesfrom,undef,$maxfilesize);     $filesfrom,undef,$maxfilesize);
         $result.=&Apache::lonhtmlcommon::end_pick_box().'</p>';          if ($result) {
               $result =
                     '<div>'.$hiddendraft.
                     &Apache::lonhtmlcommon::start_pick_box().
                     $result.
                     &Apache::lonhtmlcommon::end_pick_box().'</div>';
           } else {
               $result = $hiddendraft;
           }
     } elsif ($target eq 'web' &&      } elsif ($target eq 'web' &&
      $Apache::inputtags::status[-1] ne 'CAN_ANSWER') {       $Apache::inputtags::status[-1] ne 'CAN_ANSWER') {
  my $part= $Apache::inputtags::part;   my $part= $Apache::inputtags::part;
Line 155  sub end_essayresponse { Line 159  sub end_essayresponse {
     $increment=&Apache::response::scored_response($part,$id);      $increment=&Apache::response::scored_response($part,$id);
  } elsif ( &Apache::response::submitted() ) {   } elsif ( &Apache::response::submitted() ) {
     my $response      = $env{'form.HWVAL_'.$id};      my $response      = $env{'form.HWVAL_'.$id};
             my $filename = $env{'form.HWFILE'.$part.'_'.$id.'.filename'} ||               my $jspart=$part;
               $jspart=~s/\./_/g;
               my $filename = $env{'form.HWFILE'.$jspart.'_'.$id.'.filename'} || 
                            $env{'form.HWFILETOOBIG'.$part.'_'.$id};                             $env{'form.HWFILETOOBIG'.$part.'_'.$id};
             my $portfiles = $env{'form.HWPORT'.$part.'_'.$id};              my $portfiles = $env{'form.HWPORT'.$jspart.'_'.$id};
             my @deletions = &Apache::loncommon::get_env_multiple('form.HWFILE'.$part.'_'.$id.'_delete');              my @deletions = &Apache::loncommon::get_env_multiple('form.HWFILE'.$jspart.'_'.$id.'_delete');
             my ($is_submit,$was_draft);              my ($is_submit,$was_draft);
             if ($env{'form.HWDRAFT'.$part.'_'.$id} eq 'yes') {              if ($env{'form.HWDRAFT'.$part.'_'.$id} eq 'yes') {
                  $is_submit = 1;                   $is_submit = 1;
Line 306  sub file_submission { Line 312  sub file_submission {
                         $port_delete{$file} = 1;                          $port_delete{$file} = 1;
                     } elsif ($file =~ m{^/uploaded/\Q$udom\E/\Q$uname\E/essayresponse/\Q$cdom\E/\Q$cnum\E/}) {                      } elsif ($file =~ m{^/uploaded/\Q$udom\E/\Q$uname\E/essayresponse/\Q$cdom\E/\Q$cnum\E/}) {
                         $uploaded_delete = $file;                           $uploaded_delete = $file; 
                       } elsif ($file =~ m{^/uploaded/\Q$udom\E/\Q$uname\E/essayresponse/[^/]+$}) {
                           $uploaded_delete = $file;
                     }                      }
                 }                  }
             }              }
Line 316  sub file_submission { Line 324  sub file_submission {
             }              }
         }          }
         if ($uploaded_delete) {          if ($uploaded_delete) {
             $Apache::lonhomework::results{"resource.$part.$id.uploadedfile"} = "";              if ($uploaded_delete eq $uploadedurl) {
             $Apache::lonhomework::results{"resource.$part.$id.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 '') {      if ($env{'form.HWPORT'.$jspart.'_'.$id} ne '') {
Line 331  sub file_submission { Line 343  sub file_submission {
             }              }
         }          }
     }      }
     if ($env{'form.HWFILETOOBIG'.$jspart.'_'.$id} ne '') {      if ($env{'form.HWFILETOOBIG'.$part.'_'.$id} ne '') {
         $$award = 'EXCESS_FILESIZE';          $$award = 'EXCESS_FILESIZE';
     } elsif ($env{'form.HWFILE'.$jspart.'_'.$id.'.filename'} ne '') {      } elsif ($env{'form.HWFILE'.$jspart.'_'.$id.'.filename'} ne '') {
         my $newfile = $env{'form.HWFILE'.$jspart.'_'.$id.'.filename'};          my $newfile = $env{'form.HWFILE'.$jspart.'_'.$id.'.filename'};
Line 483  sub file_submission { Line 495  sub file_submission {
         push(@pathitems,$restitle);          push(@pathitems,$restitle);
         $path .= join('/',@pathitems);          $path .= join('/',@pathitems);
         my $formelement = 'HWFILE'.$jspart.'_'.$id;          my $formelement = 'HWFILE'.$jspart.'_'.$id;
         my $fname = $env{'form.'.$formelement.'.filename'};          my $fname = &Apache::lonnet::clean_filename($env{'form.'.$formelement.'.filename'});
         &Apache::lonnet::clean_filename($fname);  
         my $url = '/uploaded/'.$udom.'/'.$uname.'/'.$prefix.$path.'/'.$fname;          my $url = '/uploaded/'.$udom.'/'.$uname.'/'.$prefix.$path.'/'.$fname;
         my @stat = &Apache::lonnet::stat_file($url);          my @stat = &Apache::lonnet::stat_file($url);
         if (@stat && $stat[0] ne 'no_such_dir') {          if (@stat && $stat[0] ne 'no_such_dir') {
Line 515  sub file_submission { Line 526  sub file_submission {
             $Apache::lonhomework::results{"resource.$part.$id.portfiles"} = "";              $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)) {          if (ref($uploadedflag)) {
             $$uploadedflag=1;              $$uploadedflag=1;
         }          }

Removed from v.1.109  
changed lines
  Added in v.1.114


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>