Diff for /loncom/homework/inputtags.pm between versions 1.341 and 1.358

version 1.341, 2016/04/04 21:50:32 version 1.358, 2023/04/02 03:16:28
Line 460  sub start_textline { Line 460  sub start_textline {
  }   }
  my $name = 'HWVAL_'.$id;   my $name = 'HWVAL_'.$id;
                 my $itemid = 'HWVAL_'.$partid.'_'.$id;                  my $itemid = 'HWVAL_'.$partid.'_'.$id;
                   # NOTE: the input id should match the one given by defaut_homework input_id().
                 my $input_tag_id = $itemid.'_'.$input_id;                  my $input_tag_id = $itemid.'_'.$input_id;
  if ($Apache::inputtags::status[-1] eq 'CANNOT_ANSWER') {   if ($Apache::inputtags::status[-1] eq 'CANNOT_ANSWER') {
     $name = "none";      $name = "none";
Line 473  sub start_textline { Line 474  sub start_textline {
   
  $result .= &spellcheck_onblur($itemid, $spellcheck);   $result .= &spellcheck_onblur($itemid, $spellcheck);
                 if (($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') &&                  if (($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') &&
                     (($tagstack->[-2] eq 'formularesponse') || ($tagstack->[-2] eq 'mathresponse')) &&                      (((($tagstack->[-2] eq 'formularesponse') || ($tagstack->[-2] eq 'mathresponse')) &&
                     (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) {                        (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) || 
                        (($tagstack->[-2] eq 'customresponse') &&
                          (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') eq 'no')))) {
                     $result.=&edit_mathresponse_button($input_tag_id);                      $result.=&edit_mathresponse_button($input_tag_id);
                 }                  }
     }      }
Line 656  sub file_selector { Line 659  sub file_selector {
     $result .= &Apache::lonhtmlcommon::row_title($addfiles);      $result .= &Apache::lonhtmlcommon::row_title($addfiles);
     my $constraints;      my $constraints;
     if ($uploadedfiletypes ne '*') {      if ($uploadedfiletypes ne '*') {
           my $showtypes = $uploadedfiletypes;
           if ($showtypes =~ /,/) {
               my $conjunc = &mt('or');
               $showtypes =~ s/,([^,]+)$/ $conjunc $1/;
           }
  $constraints =   $constraints =
     &mt('Allowed filetypes: [_1]','<b>'.$uploadedfiletypes.'</b>').'<br />';      &mt('Allowed filetypes: [_1]','<b>'.$showtypes.'</b>').'<br />';
     }      }
     if ($maxfilesize) {      if ($maxfilesize) {
         $constraints .= &mt('Combined size of all files not to exceed: [_1] MB.',          $constraints .= &mt('Combined size of all files not to exceed: [_1] MB.',
Line 666  sub file_selector { Line 674  sub file_selector {
     if ($constraints) {      if ($constraints) {
         $result .= $constraints.'<br />';          $result .= $constraints.'<br />';
     }      }
     if ($which eq 'uploadonly' || $which eq 'both') {       if ($which eq 'uploadonly' || $which eq 'both') {
         my $free_space = $maxfilesize * 1048576;          my $free_space = $maxfilesize * 1048576;
         $result .= &mt('Submit a file: (only one file per submission)').          $result .= &mt('Submit a file: (only one file per submission)').
             ' <br /><input type="file" size="50" name="HWFILE'.$jspart.'_'.$id.              ' <br /><input type="file" size="50" name="HWFILE'.$jspart.'_'.$id.
             '" id="HWFILE'.$jspart.'_'.$id.'" class="flUpload" /><br />'.              '" id="HWFILE'.$jspart.'_'.$id.'" class="LC_flUpload LC_hwkfile" />'.
             '<input type="hidden" id="free_space" value="'.$free_space.'" /><br />'              '<input type="hidden" id="LC_free_space_'.$jspart.'_'.$id.'"'.
         }              ' value="'.$free_space.'" /><br />';
       }
     if ( $which eq 'both') {      if ( $which eq 'both') {
  $result.='<br />'.'<strong>'.&mt('OR:').'</strong><br />';   $result.='<br />'.'<strong>'.&mt('OR:').'</strong><br />';
     }      }
Line 693  sub file_selector { Line 702  sub file_selector {
     &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 />';
   
     }      }
     $result.=&Apache::lonhtmlcommon::row_closure(1);      $result.=&Apache::lonhtmlcommon::row_closure(1);
     return $result;      return $result;
Line 1046  sub decideoutput { Line 1054  sub decideoutput {
   'not_charged_try' => 'LC_answer_not_charged_try',    'not_charged_try' => 'LC_answer_not_charged_try',
   'no_grade'        => 'LC_answer_no_grade',    'no_grade'        => 'LC_answer_no_grade',
   'no_message'      => 'LC_no_message',    'no_message'      => 'LC_no_message',
             'no_charge_warn'  => 'LC_answer_warning',
   );    );
   
     my $part = $Apache::inputtags::part;      my $part = $Apache::inputtags::part;
Line 1059  sub decideoutput { Line 1068  sub decideoutput {
 #  #
           
     my $computer = ($handgrade || $nocorrect)? ''      my $computer = ($handgrade || $nocorrect)? ''
                        : " ".&mt("Computer's answer now shown above.");                         : &mt("Computer's answer now shown above.");
     &Apache::lonxml::debug("handgrade has :$handgrade:");      &Apache::lonxml::debug("handgrade has :$handgrade:");
   
     if ($previous) { $previousmsg=&mt('You have entered that answer before'); }      if ($previous) { $previousmsg=&mt('You have entered that answer before'); }
Line 1083  sub decideoutput { Line 1092  sub decideoutput {
  $message = '\textbf{'.$message.'}';   $message = '\textbf{'.$message.'}';
     } else {      } else {
  $message = "<b>".$message."</b>";   $message = "<b>".$message."</b>";
  $message.= $computer;                  if ($computer) {
                       $message = "$computer $message";
                   }
     }      }
     $added_computer_text=1;      $added_computer_text=1;
     if ($awarded > 0) {      if ($awarded > 0) {
Line 1127  sub decideoutput { Line 1138  sub decideoutput {
  $message = '\textbf{'.&mt('You are correct.').'}';   $message = '\textbf{'.&mt('You are correct.').'}';
     } else {      } else {
  $message = "<b>".&mt('You are correct.')."</b>";   $message = "<b>".&mt('You are correct.')."</b>";
  $message.= $computer;                  if ($computer) {
                       $message = "$computer $message";
                   }
     }      }
     $added_computer_text=1;      $added_computer_text=1;
     if  ($awarded > 0       if  ($awarded > 0 
Line 1156  sub decideoutput { Line 1169  sub decideoutput {
         if ($target ne 'tex') {          if ($target ne 'tex') {
            $message .= &Apache::loncommon::help_open_topic('Some_Items_Were_Not_Submitted');             $message .= &Apache::loncommon::help_open_topic('Some_Items_Were_Not_Submitted');
         }          }
  $css_class=$possible_class{'not_charged_try'};          if (&Apache::lonhomework::show_some_problem_status()) {
               $css_class=$possible_class{'no_charge_warn'};
           } else {
               $css_class=$possible_class{'not_charged_try'};
           }
  $button = 1;   $button = 1;
     } elsif ($award eq 'WRONG_NUMBOXESCHECKED') {      } elsif ($award eq 'WRONG_NUMBOXESCHECKED') {
         $message = &mt('Number of boxes checked outside permissible range (either too few or too many).');          $message = &mt('Number of boxes checked outside permissible range (either too few or too many).');
Line 1205  sub decideoutput { Line 1222  sub decideoutput {
     } elsif ($award eq 'SIG_FAIL') {      } elsif ($award eq 'SIG_FAIL') {
  my ($used,$min,$max)=split(':',$awardmsg);   my ($used,$min,$max)=split(':',$awardmsg);
  my $word = ($used < $min) ? 'more' : 'fewer';   my $word = ($used < $min) ? 'more' : 'fewer';
  $message = &mt("Submission not graded. Use $word digits.",$used);   $message = &mt("Submission not graded. Use $word significant figures.");
  $css_class=$possible_class{'not_charged_try'};          if (&Apache::lonhomework::show_some_problem_status()) {
               $css_class=$possible_class{'no_charge_warn'};
           } else {
               $css_class=$possible_class{'not_charged_try'};
           }
  $button=1;   $button=1;
     } elsif ($award eq 'UNIT_INVALID_INSTRUCTOR') {      } elsif ($award eq 'UNIT_INVALID_INSTRUCTOR') {
  $message = &mt('Error in instructor specifed unit. This error has been reported to the instructor.', $awardmsg);   $message = &mt('Error in instructor specifed unit. This error has been reported to the instructor.', $awardmsg);
Line 1216  sub decideoutput { Line 1237  sub decideoutput {
     } elsif ($award eq 'UNIT_INVALID_STUDENT') {      } elsif ($award eq 'UNIT_INVALID_STUDENT') {
  $message = &mt('Unable to interpret units. Computer reads units as "[_1]".',&markup_unit($awardmsg,$target));   $message = &mt('Unable to interpret units. Computer reads units as "[_1]".',&markup_unit($awardmsg,$target));
  if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');}    if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} 
  $css_class=$possible_class{'not_charged_try'};          if (&Apache::lonhomework::show_some_problem_status()) {
               $css_class=$possible_class{'no_charge_warn'};
           } else {
               $css_class=$possible_class{'not_charged_try'};
           }
  $button=1;   $button=1;
     } elsif ($award eq 'UNIT_FAIL' || $award eq 'UNIT_IRRECONCIBLE') {      } elsif ($award eq 'UNIT_FAIL' || $award eq 'UNIT_IRRECONCIBLE') {
  $message = &mt('Incompatible units. No conversion found between "[_1]" and the required units.',&markup_unit($awardmsg,$target));   $message = &mt('Incompatible units. No conversion found between "[_1]" and the required units.',&markup_unit($awardmsg,$target));
  if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');}    if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} 
  $css_class=$possible_class{'not_charged_try'};          if (&Apache::lonhomework::show_some_problem_status()) {
               $css_class=$possible_class{'no_charge_warn'};
           } else {
               $css_class=$possible_class{'not_charged_try'};
           }
  $button=1;   $button=1;
     } elsif ($award eq 'UNIT_NOTNEEDED') {      } elsif ($award eq 'UNIT_NOTNEEDED') {
  $message = &mt('Only a number required. Computer reads units of "[_1]".',&markup_unit($awardmsg,$target));   $message = &mt('Only a number required. Computer reads units of "[_1]".',&markup_unit($awardmsg,$target));
  $css_class=$possible_class{'not_charged_try'};          if (&Apache::lonhomework::show_some_problem_status()) {
               $css_class=$possible_class{'no_charge_warn'};
           } else {
               $css_class=$possible_class{'not_charged_try'};
           }
  $button=1;   $button=1;
     } elsif ($award eq 'NO_UNIT') {      } elsif ($award eq 'NO_UNIT') {
  $message = &mt("Units required").'.';   $message = &mt("Units required").'.';
  if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units')};   if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units')};
  $css_class=$possible_class{'not_charged_try'};          if (&Apache::lonhomework::show_some_problem_status()) {
               $css_class=$possible_class{'no_charge_warn'};
           } else {
               $css_class=$possible_class{'not_charged_try'};
           }
  $button=1;   $button=1;
     } elsif ($award eq 'COMMA_FAIL') {      } elsif ($award eq 'COMMA_FAIL') {
  $message = &mt("Proper comma separation is required").'.';   $message = &mt("Proper comma separation is required").'.';
Line 1329  sub decideoutput { Line 1366  sub decideoutput {
             my $first_access=&Apache::lonnet::get_first_access($interval[1]);              my $first_access=&Apache::lonnet::get_first_access($interval[1]);
             if (defined($first_access)) {              if (defined($first_access)) {
                 my $due_date= &Apache::lonnet::EXT("resource.$part.duedate");                  my $due_date= &Apache::lonnet::EXT("resource.$part.duedate");
                 unless (($due_date) && ($due_date < $first_access + $interval[0])) {                   my ($timelimit) = ($interval[0] =~ /^(\d+)/);
                   unless (($due_date) && ($due_date < $first_access + $timelimit)) { 
                     $message = &mt("Answer Submitted: Your final submission will be graded when the time limit is reached.");                      $message = &mt("Answer Submitted: Your final submission will be graded when the time limit is reached.");
                 }                  }
             }              }
Line 1346  sub decideoutput { Line 1384  sub decideoutput {
     }      }
     if ($Apache::inputtags::status[-1] eq 'SHOW_ANSWER' &&       if ($Apache::inputtags::status[-1] eq 'SHOW_ANSWER' && 
  !$added_computer_text && $target ne 'tex') {   !$added_computer_text && $target ne 'tex') {
  $message.= $computer;          if ($computer) {
               $message = "$computer $message";
           }
  $added_computer_text=1;   $added_computer_text=1;
     }      }
     if ($Apache::lonhomework::type eq 'practice') {      if ($Apache::lonhomework::type eq 'practice') {
Line 1747  sub gradestatus { Line 1787  sub gradestatus {
  }   }
  if ( $showbutton ) {   if ( $showbutton ) {
     if ($target ne 'tex') {      if ($target ne 'tex') {
  $button =                   if ($env{'form.disable_submit'}) {
                       $button = '<input type="submit" name="submit_'.$id.'" id="submit_'.$id.'" class="LC_hwk_submit" value="'.&mt('Submit Answer').'" disabled="disabled" />&nbsp;'.
                                  '<div id="msg_submit_'.$id.'" style="display:none"></div>';
                   } else {
       $button =
             '<input onmouseup="javascript:setSubmittedPart(\''.$id.'\');this.form.action+=\'#'.&escape($id).'\';"              '<input onmouseup="javascript:setSubmittedPart(\''.$id.'\');this.form.action+=\'#'.&escape($id).'\';"
                     type="submit" name="submit_'.$id.'" id="submit_'.$id.'" class="LC_hwk_submit"                      type="submit" name="submit_'.$id.'" id="submit_'.$id.'" class="LC_hwk_submit"
                     value="'.&mt('Submit Answer').'" />&nbsp;'.                      value="'.&mt('Submit Answer').'" />&nbsp;'.
                     '<div id="msg_submit_'.$id.'" style="display:none">'.                      '<div id="msg_submit_'.$id.'" style="display:none">'.
                     &mt('Processing your submission ...').'</div>';                      &mt('Processing your submission ...').'</div>';
                   }
     }      }
  }   }
   
Line 1896  sub previous_tries { Line 1941  sub previous_tries {
     my $tries_text = &get_tries_text('link');      my $tries_text = &get_tries_text('link');
     my $prefix = $env{'form.request.prefix'};      my $prefix = $env{'form.request.prefix'};
     $prefix =~ tr{.}{_};      $prefix =~ tr{.}{_};
     my $function_name = "LONCAPA_previous_tries_".$prefix.      my $function_name = 'LONCAPA_previous_tries_'.$prefix;
  $Apache::lonxml::curdepth.'_'.$env{'form.counter'};      if (($env{'request.state'} eq 'construct') || ($id =~ /\W/)) {
     my $result = &Apache::loncommon::modal_adhoc_window($function_name,420,410,$output,&mt($tries_text))."<br />";          $function_name .= $Apache::lonxml::curdepth;
       } else {
           $function_name .= $id;
       }
       $function_name .= '_'.$Apache::lonxml::counter;
       my $possmathjax = 1;
       my $result = &Apache::loncommon::modal_adhoc_window($function_name,420,410,$output,
                                                           &mt($tries_text),$possmathjax)."<br />";
     return $result;      return $result;
 }  }
   

Removed from v.1.341  
changed lines
  Added in v.1.358


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