Diff for /loncom/homework/chemresponse.pm between versions 1.85 and 1.92

version 1.85, 2008/12/22 15:05:49 version 1.92, 2013/05/03 16:29:40
Line 116  CHEMJS Line 116  CHEMJS
  'bgcolor'   => '#FFFFFF',});   'bgcolor'   => '#FFFFFF',});
     my $end_page =      my $end_page =
   &Apache::loncommon::end_page({'js_ready' => 1,});    &Apache::loncommon::end_page({'js_ready' => 1,});
       my $java_not_enabled=&Apache::lonhtmlcommon::java_not_enabled();
     my $body=<<CHEMPAGE;      my $body=<<CHEMPAGE;
 $js  $js
 <center>  <center>
 <form>  <form action="">
   <table width="440"><tr>    <table width="440"><tr>
     <td></td>      <td></td>
     <td align="right">      <td align="right">
Line 143  $js Line 143  $js
     </td></tr>      </td></tr>
   </table>    </table>
 <applet code="JME.class" name="JME" archive="/adm/jme/JME.jar" width="440" height="390" mayscript>  <applet code="JME.class" name="JME" archive="/adm/jme/JME.jar" width="440" height="390" mayscript>
 You have to enable Java and JavaScript on your machine.  $java_not_enabled
 $molecule  $molecule
 <param name="options" value="$options" />  <param name="options" value="$options" />
 </applet><br />  </applet><br />
Line 165  CHEMPAGE Line 165  CHEMPAGE
     if (defined($shown_text)) { $display=&mt($shown_text); }      if (defined($shown_text)) { $display=&mt($shown_text); }
     my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'};      my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'};
     my $function =       my $function = 
  'LONCAPA_draw_molecule_'.&Apache::lonhtmlcommon::get_uniq_name();   'LONCAPA_draw_molecule_'.&get_uniq_name();
     my $result=<<CHEMINPUT;      my $result=<<CHEMINPUT;
 <script type="text/javascript">  <script type="text/javascript">
     function $function() {      function $function() {
Line 176  CHEMPAGE Line 176  CHEMPAGE
  editor.focus();   editor.focus();
     }      }
 </script>  </script>
 <a href="javascript:$function();void(0);"><img class="stift" src='$iconpath/stift.gif' alt='$display' title='$display' /></a>  
 CHEMINPUT  CHEMINPUT
       if ($shown_text eq '') {
           $result .=<<PENCIL; 
   <a href="javascript:$function();void(0);"><img class="stift" src='$iconpath/stift.gif' alt='$display' title='$display' /></a>
   PENCIL
       } else {
           $result .= '<input type="button" value="'.&mt($shown_text).'" onclick="javascript:'.$function.'();void(0);" />';
       }
     return $result;      return $result;
 }  }
 sub jme_img {  sub jme_img {
Line 203  sub start_organicresponse { Line 209  sub start_organicresponse {
     } elsif ($target eq 'web') {      } elsif ($target eq 'web') {
  my $jmeanswer=&Apache::lonxml::get_param('jmeanswer',$parstack,   my $jmeanswer=&Apache::lonxml::get_param('jmeanswer',$parstack,
  $safeeval);   $safeeval);
  if (  &Apache::response::show_answer() && $jmeanswer ne '') {   if (&Apache::response::show_answer()) {
     my $options=&Apache::lonxml::get_param('options',$parstack,              my $jmeanswer=&Apache::lonxml::get_param('jmeanswer',$parstack,
    $safeeval);                                                       $safeeval);
     my $width=&Apache::lonxml::get_param('width',$parstack,              if ($jmeanswer ne '') {
    $safeeval);          my $options=&Apache::lonxml::get_param('options',$parstack,
     my (@answers)=&Apache::lonxml::get_param_var('answer',$parstack,             $safeeval);
  $safeeval);          my $width=&Apache::lonxml::get_param('width',$parstack,
     $result.=&jme_img($jmeanswer,$answers[0],$width,$options);  
  } else {  
     my $molecule;  
     if (defined($Apache::lonhomework::history{"resource.$partid.$id.molecule"})) {  
  $molecule=$Apache::lonhomework::history{"resource.$partid.$id.molecule"};  
     } else {  
  $molecule=&Apache::lonxml::get_param('molecule',$parstack,  
      $safeeval);       $safeeval);
     }          my (@answers)=&Apache::lonxml::get_param_var('answer',$parstack,
     my $options=&Apache::lonxml::get_param('options',$parstack,       $safeeval);
    $safeeval);          $result.=&jme_img($jmeanswer,$answers[0],$width,$options);
     my $shown_text;              }
     if (&Apache::response::show_answer()) {   } else {
  $shown_text="Show Your Last Answer";  
     }  
     #stift $result=&separate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule,  
 # $options,$shown_text);  
     $result.= '<input type="hidden" name="MOLECULE_'.$id.'" value="" />';      $result.= '<input type="hidden" name="MOLECULE_'.$id.'" value="" />';
  }   }
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
Line 246  sub start_organicresponse { Line 241  sub start_organicresponse {
  $result .=&Apache::edit::text_arg('Correct Answer:','answer',   $result .=&Apache::edit::text_arg('Correct Answer:','answer',
   $token,40);    $token,40);
  $result .='</span><br /><span class="LC_nobreak">';   $result .='</span><br /><span class="LC_nobreak">';
  $result .=&Apache::edit::text_arg('JME string of the answer (automatically updated when using the Draw Molecule button):',   $result .=&Apache::edit::text_arg('JME string of the answer - automatically updated by "Insert Answer" in the JME pop-up (click pencil):',
   'jmeanswer',$token);    'jmeanswer',$token);
  my $jmeanswer=&Apache::lonxml::get_param('jmeanswer',$parstack,   my $jmeanswer=&Apache::lonxml::get_param('jmeanswer',$parstack,
  $safeeval);   $safeeval);
Line 309  sub end_organicresponse { Line 304  sub end_organicresponse {
     $ad='INCORRECT';      $ad='INCORRECT';
  }   }
     }      }
     if ($ad && $Apache::lonhomework::type eq 'survey') {              if ($ad) {
  $ad='SUBMITTED';          if ($Apache::lonhomework::type eq 'survey') {
     }      $ad='SUBMITTED';
                   } elsif ($Apache::lonhomework::type eq 'surveycred') {
                       $ad='SUBMITTED_CREDIT';
                   } elsif ($Apache::lonhomework::type eq 'anonsurvey') {
                       $ad='ANONYMOUS';
                   } elsif ($Apache::lonhomework::type eq 'anonsurveycred') {
                       $ad='ANONYMOUS_CREDIT';
                   }
               }
     &Apache::response::handle_previous(\%previous,$ad);      &Apache::response::handle_previous(\%previous,$ad);
     $Apache::lonhomework::results{"resource.$partid.$id.awarddetail"}=$ad;      $Apache::lonhomework::results{"resource.$partid.$id.awarddetail"}=$ad;
     $Apache::lonhomework::results{"resource.$partid.$id.molecule"}=$env{"form.MOLECULE_$id"};      $Apache::lonhomework::results{"resource.$partid.$id.molecule"}=$env{"form.MOLECULE_$id"};
Line 334  sub end_organicresponse { Line 337  sub end_organicresponse {
   
     if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||       if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || 
  $target eq 'tex' || $target eq 'analyze') {   $target eq 'tex' || $target eq 'analyze') {
  &Apache::lonxml::increment_counter(&Apache::response::repetition(),           my $repetition = &Apache::response::repetition();
    "$partid.$id"); # part.response   &Apache::lonxml::increment_counter($repetition,"$partid.$id"); # part.response
  if ($target eq 'analyze') {   if ($target eq 'analyze') {
             $Apache::lonhomework::analyze{"$partid.$id.type"} = 'organicresponse';              $Apache::lonhomework::analyze{"$partid.$id.type"} = 'organicresponse';
             push (@{ $Apache::lonhomework::analyze{"parts"} },"$partid.$id");              push (@{ $Apache::lonhomework::analyze{"parts"} },"$partid.$id");
     &Apache::lonhomework::set_bubble_lines();      &Apache::lonhomework::set_bubble_lines();
  }   }
     }      }
     if (($target eq 'web' ) && ($Apache::lonhomework::type ne 'exam') && ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER')){      if ($target eq 'web' ) {
             my $options=&Apache::lonxml::get_param('options',$parstack,          my ($showpencil,$shown_text);
                                                    $safeeval);          if ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') {
             my $shown_text;              $showpencil = 1;
             if (&Apache::response::show_answer()) {          } elsif (&Apache::response::show_answer()) {
               my $jmeanswer=&Apache::lonxml::get_param('jmeanswer',$parstack,                                                         $safeeval);
               if ($jmeanswer eq '') {
                   $showpencil = 1;
                 $shown_text="Show Your Last Answer";                  $shown_text="Show Your Last Answer";
             }              }
           }
           if ($showpencil) {
               my $options=&Apache::lonxml::get_param('options',$parstack,
                                                      $safeeval);
   
     my $molecule;      my $molecule;
     if (defined($Apache::lonhomework::history{"resource.$partid.$id.molecule"})) {      if (defined($Apache::lonhomework::history{"resource.$partid.$id.molecule"})) {
  $molecule=$Apache::lonhomework::history{"resource.$partid.$id.molecule"};   $molecule=$Apache::lonhomework::history{"resource.$partid.$id.molecule"};
Line 356  sub end_organicresponse { Line 367  sub end_organicresponse {
  $molecule=&Apache::lonxml::get_param('molecule',$parstack,   $molecule=&Apache::lonxml::get_param('molecule',$parstack,
      $safeeval);       $safeeval);
     }      }
  $result.=&separate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule,      $result.=&separate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule,
                              $options,$shown_text);                                            $options,$shown_text);
           }
     }      }
     &Apache::response::end_response();      &Apache::response::end_response();
     return $result;      return $result;
Line 405  sub start_organicstructure { Line 417  sub start_organicstructure {
  $id=&escape($id);   $id=&escape($id);
  &Apache::lonxml::register_ssi("/cgi-bin/convertjme.pl?$id");   &Apache::lonxml::register_ssi("/cgi-bin/convertjme.pl?$id");
  if ($options =~ /border/) { $result.= '\fbox{'; }   if ($options =~ /border/) { $result.= '\fbox{'; }
  $result .= '\graphicspath{{/home/httpd/perl/tmp/}}\includegraphics[width='.$texwidth.' mm]{'.$filename.'.eps}';   $result .= '\graphicspath{{'.LONCAPA::tempdir().
       '}}\includegraphics[width='.$texwidth.' mm]{'.$filename.'.eps}';
  if ($options =~ /border/) { $result.= '} '; }   if ($options =~ /border/) { $result.= '} '; }
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .=&Apache::edit::tag_start($target,$token);   $result .=&Apache::edit::tag_start($target,$token);
Line 554  sub end_reactionresponse { Line 567  sub end_reactionresponse {
     $ad='INCORRECT';      $ad='INCORRECT';
  }   }
     }      }
     if ($ad && $Apache::lonhomework::type eq 'survey') {              if ($ad) {
  $ad='SUBMITTED';                  if ($Apache::lonhomework::type eq 'survey') {
     }      $ad='SUBMITTED';
           } elsif ($ad && $Apache::lonhomework::type eq 'surveycred') {
                       $ad='SUBMITTED_CREDIT';
                   } elsif ($ad && $Apache::lonhomework::type eq 'anonsurvey') {
                       $ad='ANONYMOUS';
                   } elsif ($ad && $Apache::lonhomework::type eq 'anonsurveycred') {
                       $ad='ANONYMOUS_CREDIT';
                   }
               }
     &Apache::response::handle_previous(\%previous,$ad);      &Apache::response::handle_previous(\%previous,$ad);
     $Apache::lonhomework::results{"resource.$partid.$id.awarddetail"}=$ad;      $Apache::lonhomework::results{"resource.$partid.$id.awarddetail"}=$ad;
  }   }
Line 578  sub end_reactionresponse { Line 599  sub end_reactionresponse {
   
     if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||       if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || 
  $target eq 'tex' || $target eq 'analyze') {   $target eq 'tex' || $target eq 'analyze') {
  &Apache::lonxml::increment_counter(&Apache::response::repetition(), "$partid.$id");   my $repetition = &Apache::response::repetition();
           &Apache::lonxml::increment_counter($repetition,"$partid.$id");
         if ($target eq 'analyze') {          if ($target eq 'analyze') {
             $Apache::lonhomework::analyze{"$partid.$id.type"} = 'reactionresponse';              $Apache::lonhomework::analyze{"$partid.$id.type"} = 'reactionresponse';
             push (@{ $Apache::lonhomework::analyze{"parts"} },"$partid.$id");              push (@{ $Apache::lonhomework::analyze{"parts"} },"$partid.$id");
Line 622  sub end_chem { Line 644  sub end_chem {
     return $result;      return $result;
 }  }
   
   my $uniq=0;
   sub get_uniq_name {
       $uniq++;
       return 'uniquename'.$uniq;
   }
   
 1;  1;
 __END__  __END__

Removed from v.1.85  
changed lines
  Added in v.1.92


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