Diff for /loncom/homework/optionresponse.pm between versions 1.157 and 1.160

version 1.157, 2008/12/10 21:48:21 version 1.160, 2010/02/05 20:54:33
Line 359  sub displayanswers { Line 359  sub displayanswers {
     return $result;      return $result;
 }  }
   
   sub check_box_opt {
   # Check if we are in checkbox mode. If so, return "checked" value
       return '';
   }
   
 sub check_for_invalid {  sub check_for_invalid {
     my ($names,$options) = @_;      my ($names,$options) = @_;
     my %bad_names;      my %bad_names;
Line 427  sub displayfoils { Line 432  sub displayfoils {
     my $temp=1;      my $temp=1;
     my %lastresponse=&Apache::lonnet::str2hash($Apache::lonhomework::history{"resource.$part.$id.submission"});      my %lastresponse=&Apache::lonnet::str2hash($Apache::lonhomework::history{"resource.$part.$id.submission"});
     my $internal_counter=$Apache::lonxml::counter;      my $internal_counter=$Apache::lonxml::counter;
       my $checkboxopt=&check_box_opt();
       if ($checkboxopt) {
          $result.='<br />'.&mt('Choices: ').'<b>'.$opt[0].','.$opt[1].'</b>. '.
                   &mt('Select all that are <b>[_1]</b>.',$checkboxopt);
       }
     foreach $name (@whichopt) {      foreach $name (@whichopt) {
       my $text=$Apache::response::foilgroup{$name.'.text'};        my $text=$Apache::response::foilgroup{$name.'.text'};
       if ($text!~/^\s*$/) {        if ($text!~/^\s*$/) {
Line 439  sub displayfoils { Line 449  sub displayfoils {
       my $lastopt=$lastresponse{$name};        my $lastopt=$lastresponse{$name};
       my $optionlist="<option></option>\n";        my $optionlist="<option></option>\n";
   
       if($target eq 'tex' and $env{'form.pdfFormFields'} eq 'yes') {        if($target eq 'tex' and $env{'form.pdfFormFields'} eq 'yes'
            && $Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
           my $fieldname = $env{'request.symb'}.'&part_'.$Apache::inputtags::part.'&optionresponse'.'&HWVAL_'.$Apache::inputtags::response['-1'].':'.$temp;            my $fieldname = $env{'request.symb'}.'&part_'.$Apache::inputtags::part.'&optionresponse'.'&HWVAL_'.$Apache::inputtags::response['-1'].':'.$temp;
           $optionlist =  &Apache::lonxml::print_pdf_start_combobox($fieldname);            $optionlist =  &Apache::lonxml::print_pdf_start_combobox($fieldname);
       }        }
Line 447  sub displayfoils { Line 458  sub displayfoils {
       foreach my $option (@opt) {        foreach my $option (@opt) {
   my $escopt=&HTML::Entities::encode($option,'\'"&<>');    my $escopt=&HTML::Entities::encode($option,'\'"&<>');
           if ($option eq $lastopt) {            if ($option eq $lastopt) {
               if ($target eq 'tex' && $env{'form.pdfFormFields'} eq 'yes') {                if ($target eq 'tex' && $env{'form.pdfFormFields'} eq 'yes'
                     && $Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
                   $optionlist .= &Apache::lonxml::print_pdf_add_combobox_option($option);                    $optionlist .= &Apache::lonxml::print_pdf_add_combobox_option($option);
               } else {                } else {
                   $optionlist.="<option value='".$escopt."' selected=\"selected\">$option</option>\n";                    $optionlist.="<option value='".$escopt."' selected=\"selected\">$option</option>\n";
               }                }
           } else {            } else {
               if ($target eq 'tex' && $env{'form.pdfFormFields'} eq 'yes') {                if ($target eq 'tex' && $env{'form.pdfFormFields'} eq 'yes'
                     && $Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
                   $optionlist .= &Apache::lonxml::print_pdf_add_combobox_option($option);                    $optionlist .= &Apache::lonxml::print_pdf_add_combobox_option($option);
               } else {                } else {
                   $optionlist.="<option value='".$escopt."'>$option</option>\n";                    $optionlist.="<option value='".$escopt."'>$option</option>\n";
Line 462  sub displayfoils { Line 475  sub displayfoils {
       }        }
       if ($target ne 'tex') {        if ($target ne 'tex') {
   if ($Apache::lonhomework::type ne 'exam') {    if ($Apache::lonhomework::type ne 'exam') {
       $optionlist='<select onchange="javascript:setSubmittedPart(\''.  # we are on the web, this is not an exam, and the problem can be answered
                 if ($checkboxopt) {
   # generate checkboxes
                     my $fieldname=$Apache::inputtags::response['-1'].':'.$temp;
                     my $altopt=$opt[0];
                     if ($opt[0] eq $checkboxopt) {
                        $altopt=$opt[1];
                     }
                     my $defopt=$lastopt;
                     unless ($defopt) { $defopt=$altopt; }
                     my $escdefopt=&HTML::Entities::encode($defopt,'\'"&<>');
                     my $esccheckboxopt=&HTML::Entities::encode($checkboxopt,'\'"&<>');
                     my $escaltopt=&HTML::Entities::encode($altopt,'\'"&<>');
   # checkboxopt is how the box is labelled
   # altopt is the alternative option
   # lastopt is what the user submitted before
   # defopt is what the field is going to start out with: either previous choice or altopt
   # fieldname is this input field's name after HWVAL_
                     $optionlist='<input type="hidden" name="HWVAL_'.$fieldname.'" value="'.$escdefopt.'" />'.
                     '<input type="checkbox" name="HWCHK_'.$fieldname.'" onclick="javascript:if (this.form.elements[\'HWCHK_'.
                     $fieldname.'\'].checked) { this.form.elements[\'HWVAL_'.$fieldname.'\'].value=\''.$esccheckboxopt.'\'; } else { this.form.elements[\'HWVAL_'.$fieldname.'\'].value=\''.$escaltopt.'\'; };setSubmittedPart(\''.$part.'\');"'.($defopt eq $checkboxopt?' checked="checked"':'')." />\n";
                 } else {
   # classic selection list
             $optionlist='<select onchange="javascript:setSubmittedPart(\''.
   $part.'\');" name="HWVAL_'.    $part.'\');" name="HWVAL_'.
   $Apache::inputtags::response['-1'].':'.$temp.'">'.    $Apache::inputtags::response['-1'].':'.$temp.'">'.
   $optionlist."</select>\n";    $optionlist."</select>\n";
                 }
   } else {    } else {
       $optionlist='<u>'.('&nbsp;'x10).'</u>';        $optionlist='<u>'.('&nbsp;'x10).'</u>';
   }    }
Line 516  sub displayfoils { Line 553  sub displayfoils {
   '\end{enumerate} \vskip -8 mm \strut ';    '\end{enumerate} \vskip -8 mm \strut ';
       $internal_counter++;        $internal_counter++;
   }    }
           if ($target eq 'tex' && $env{'form.pdfFormFields'} eq 'yes') {            if ($target eq 'tex' && $env{'form.pdfFormFields'} eq 'yes'
               $text =~ s/.*indent(.*)$/$1/;                && $Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
               $text = $1;                $text =~ s/\\item//m;
               $result .= " $optionlist ". &Apache::lonxml::print_pdf_end_combobox($text).'\strut \\\\';                $result .= " $optionlist ". &Apache::lonxml::print_pdf_end_combobox($text).'\strut \\\\';
               $temp++;                $temp++;
           }            }

Removed from v.1.157  
changed lines
  Added in v.1.160


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