Diff for /loncom/homework/inputtags.pm between versions 1.298 and 1.308

version 1.298, 2011/12/10 18:10:56 version 1.308, 2012/09/10 09:50:57
Line 185  sub start_textfield { Line 185  sub start_textfield {
             }              }
         }          }
         unless ($newvariation) {          unless ($newvariation) {
     $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$resid.submission"},'<>&"');      $oldresponse = $Apache::lonhomework::history{"resource.$partid.$resid.submission"};
         }          }
  if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {   if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
     my $cols = &Apache::lonxml::get_param('cols',$parstack,$safeeval);      my $cols = &Apache::lonxml::get_param('cols',$parstack,$safeeval);
Line 197  sub start_textfield { Line 197  sub start_textfield {
     if ($addchars) {      if ($addchars) {
  $result.=&addchars('HWVAL_'.$resid,$addchars);   $result.=&addchars('HWVAL_'.$resid,$addchars);
     }      }
             my $textareaclass = 'class="LC_richDetectHtml"';              my $textareaclass = 'class="LC_richDetectHtml spellchecked"';
     $result.= '<textarea wrap="hard" name="HWVAL_'.$resid.'" id="HWVAL_'.$resid.'" '.      $result.= '<textarea wrap="hard" name="HWVAL_'.$resid.'" id="HWVAL_'.$resid.'" ' .
       'rows="'.$rows.'" cols="'.$cols.'" '.$textareaclass.'>'.        'rows="'.$rows.'" cols="'.$cols.'" '.$textareaclass
                       $oldresponse;        . "onblur='\$(this).spellchecker(\"check\")'"
         .'>'.
                         &HTML::Entities::encode($oldresponse,'<>&"');
     if ($oldresponse ne '') {      if ($oldresponse ne '') {
   
  #get rid of any startup text if the user has already responded   #get rid of any startup text if the user has already responded
Line 381  sub start_textline { Line 383  sub start_textline {
     $name = "none";      $name = "none";
  }   }
  $result.= '<input onkeydown="javascript:setSubmittedPart(\''.$partid.'\');" type="text" '.$readonly.' name="'.$name.'" value="'.   $result.= '<input onkeydown="javascript:setSubmittedPart(\''.$partid.'\');" type="text" '.$readonly.' name="'.$name.'" value="'.
     $oldresponse.'" size="'.$size.'"'.$maxlength.' />';      $oldresponse.'" class="spellchecked"  size="'.$size.'"'.$maxlength.'
                       onblur=' . "'\$(this).spellchecker(\"check\")'"  . '/>';
     }      }
     if ($Apache::lonhomework::type eq 'exam'      if ($Apache::lonhomework::type eq 'exam'
  && &needs_exam_box($tagstack)) {   && &needs_exam_box($tagstack)) {
Line 576  sub file_selector { Line 579  sub file_selector {
     if ( $which eq 'both') {      if ( $which eq 'both') {
  $result.='<br />'.'<strong>'.&mt('OR:').'</strong><br />';   $result.='<br />'.'<strong>'.&mt('OR:').'</strong><br />';
     }      }
     if ($which eq 'portfolioonly' || $which eq 'both') {       if ($which eq 'portfolioonly' || $which eq 'both') {
  $result.=$extratext.'<a href='."'".'javascript:void(window.open("/adm/portfolio?mode=selectfile&amp;fieldname='.$env{'form.request.prefix'}.'HWPORT'.$jspart.'_'.$id.'","cat","height=600,width=800,scrollbars=1,resizable=1,menubar=2,location=1"))'."'".'>'.          my $symb = $env{'request.symb'};
           (undef,undef,my $res)=&Apache::lonnet::decode_symb($symb);
           my $showsymb;
           # If resource is a .task and URL is unencrypted, include symb in query string
           # for url opened in portfolio file selection window. Can be used to override
           # blocking of portfolio access resulting from an exam event in a different course. 
           if ($res =~ /\.task$/i) {
               my $encsymb = &Apache::lonenc::check_encrypt($symb);
               if ($symb eq $encsymb) {
                   $showsymb = $symb;
               }
           }
    $result.=$extratext.'<a href='."'".'javascript:void(window.open("/adm/portfolio?mode=selectfile&amp;fieldname='.$env{'form.request.prefix'}.'HWPORT'.$jspart.'_'.$id.'&amp;symb='.$showsymb.'","cat","height=600,width=800,scrollbars=1,resizable=1,menubar=2,location=1"))'."'".'>'.
     &mt('Select Portfolio Files: (one or more files per submission)').'</a><br />'.      &mt('Select Portfolio Files: (one or more files per submission)').'</a><br />'.
     '<input type="text" size="50" name="HWPORT'.$jspart.'_'.$id.'" value="" />'.      '<input type="text" size="50" name="HWPORT'.$jspart.'_'.$id.'" value="" />'.
     '<br />';      '<br />';
Line 676  sub current_file_submissions { Line 691  sub current_file_submissions {
         }          }
     }      }
     if ($header_shown) {      if ($header_shown) {
         $result .= &Apache::loncommon::end_data_table().          $result .= &Apache::loncommon::end_data_table();
                    '<br /><span class="LC_warning">'.          if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
                    &mt('Exclude existing file(s) from grading by checking the "Delete?" checkbox(es) and clicking "Submit Answer"').'</span>';              $result .= '<br /><span class="LC_warning">'.
                          &mt('Exclude existing file(s) from grading by checking the "Delete?" checkbox(es) and clicking "Submit Answer"').'</span>';
           }
     }      }
     if (@bad_file_list) {      if (@bad_file_list) {
         my $bad_files = '<span class="LC_filename">'.          my $bad_files = '<span class="LC_filename">'.
Line 843  sub finalizeawards { Line 860  sub finalizeawards {
 }  }
 }  }
   
 sub grading_is_nonlenient {  
     my ($part) = @_;  
 # Web mode: we are non-lenient unless told otherwise  
     my $defaultparm = 'off';  
     my $nonlenient = 0;  
 # Grading a bubblesheet exam: we are grading lenient unless told otherwise  
     if ($Apache::lonhomework::scantronmode) {  
         $defaultparm = 'on';  
         $nonlenient = 1;  
     }  
     my $lenientparm =  
         &Apache::response::get_response_param($part,'lenient',$defaultparm);  
     if ($lenientparm=~/^0|off|no$/i) {  
         $nonlenient = 1;  
     } elsif ($lenientparm=~/^1|on|yes$/i) {  
         $nonlenient = 0;  
     }  
     return $nonlenient;  
 }  
   
 sub decideoutput {  sub decideoutput {
     my ($award,$awarded,$awardmsg,$solved,$previous,$target,$nocorrect)=@_;      my ($award,$awarded,$awardmsg,$solved,$previous,$target,$nocorrect)=@_;
   
Line 931  sub decideoutput { Line 928  sub decideoutput {
  }   }
     }      }
  }   }
         if (&grading_is_nonlenient($part)) {          if ($awarded >= 1) {
             $button=0;              $button=0;
         } elsif ($awarded==1) {          } elsif (&Apache::lonnet::EXT("resource.$part.retrypartial") !~/^1|on|yes$/i) {
             $button=0;              $button=0;
         } else {           } else {
             $button=1;              $button=1;
         }          }
  $previousmsg='';   $previousmsg='';
Line 1096  sub decideoutput { Line 1093  sub decideoutput {
     } elsif ($award eq 'ANONYMOUS_CREDIT') {      } elsif ($award eq 'ANONYMOUS_CREDIT') {
         $message = &mt("Your anonymous submission has been recorded, and credit awarded.");          $message = &mt("Your anonymous submission has been recorded, and credit awarded.");
         $css_class=$possible_class{'correct'};          $css_class=$possible_class{'correct'};
           $button=1;
     } elsif ($award eq 'DRAFT') {      } elsif ($award eq 'DRAFT') {
  $message = &mt("Copy saved but not submitted.");   $message = &mt("Copy saved but not submitted.");
  $css_class=$possible_class{'not_charged_try'};   $css_class=$possible_class{'not_charged_try'};
Line 1146  sub decideoutput { Line 1144  sub decideoutput {
     if (&Apache::lonhomework::hide_problem_status()      if (&Apache::lonhomework::hide_problem_status()
  && $Apache::inputtags::status[-1] ne 'SHOW_ANSWER'   && $Apache::inputtags::status[-1] ne 'SHOW_ANSWER'
  && &hide_award($award)) {   && &hide_award($award)) {
  $message = &mt("Answer Submitted: Your final submission will be graded after the due date.");          $message = &mt("Answer Submitted: Your final submission will be graded after the due date.");
           my @interval= &Apache::lonnet::EXT("resource.$part.interval");
           if ($interval[0] =~ /\d+/) {
               my $first_access=&Apache::lonnet::get_first_access($interval[1]);
               if (defined($first_access)) {
                   my $due_date= &Apache::lonnet::EXT("resource.$part.duedate");
                   unless (($due_date) && ($due_date < $first_access + $interval[0])) { 
                       $message = &mt("Answer Submitted: Your final submission will be graded when the time limit is reached.");
                   }
               }
           }
  $css_class=$possible_class{'no_grade'};   $css_class=$possible_class{'no_grade'};
  $button=1;   $button=1;
     }      }
Line 1514  sub gradestatus { Line 1522  sub gradestatus {
  && $status ne 'UNAVAILABLE'    && $status ne 'UNAVAILABLE' 
  && $status ne 'INVALID_ACCESS'    && $status ne 'INVALID_ACCESS' 
  && $status ne 'NEEDS_CHECKIN'    && $status ne 'NEEDS_CHECKIN' 
  && $status ne 'NOT_IN_A_SLOT') {     && $status ne 'NOT_IN_A_SLOT'
            && $status ne 'RESERVABLE'
            && $status ne 'RESERVABLE_LATER'
            && $status ne 'NOTRESERVABLE') {
   
    if ($status eq 'SHOW_ANSWER') {
               $showbutton = 0;
           }
   
  ($previousmsg,$latemessage,$message,$trystr) =   ($previousmsg,$latemessage,$message,$trystr) =
     &get_grade_messages($id,"resource.$id",$target,$status,      &get_grade_messages($id,"resource.$id",$target,$status,
  $showbutton);   $showbutton);
  if ( $status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER') {   if ($status eq 'CANNOT_ANSWER') {
     $showbutton = 0;      $showbutton = 0;
  }   }
  if ( $status eq 'SHOW_ANSWER') {   if ( $status eq 'SHOW_ANSWER') {

Removed from v.1.298  
changed lines
  Added in v.1.308


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