Diff for /loncom/homework/chemresponse.pm between versions 1.53 and 1.58

version 1.53, 2005/05/25 21:45:07 version 1.58, 2005/06/27 10:58:40
Line 30  package Apache::chemresponse; Line 30  package Apache::chemresponse;
 use strict;  use strict;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::lonnet;  use Apache::lonnet;
   use Apache::lonlocal;
   
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::chemresponse',('organicresponse','organicstructure','reactionresponse','chem'));      &Apache::lonxml::register('Apache::chemresponse',('organicresponse','organicstructure','reactionresponse','chem'));
Line 63  sub chem_standard_order { Line 64  sub chem_standard_order {
 }  }
   
 sub separate_jme_window {  sub separate_jme_window {
     my ($smile_input,$jme_input,$molecule,$options)=@_;      my ($smile_input,$jme_input,$molecule,$options,$shown_text)=@_;
     my $smilesection;      my $smilesection;
     if (defined($smile_input)) {      if (defined($smile_input)) {
  $smilesection=<<SMILESECTION;   $smilesection=<<SMILESECTION;
Line 80  JMESECTION Line 81  JMESECTION
     }      }
   
     if ($molecule) { $molecule='<param name="jme" value="'.$molecule.'" />'; }      if ($molecule) { $molecule='<param name="jme" value="'.$molecule.'" />'; }
       my $insert_answer;
       if ($shown_text ne '') { 
    $insert_answer=
       '<input type="button" name="submit" value="Insert Answer" onclick="javascript:submitSmiles();" />';
       }
   
     my $body=<<CHEMPAGE;      my $body=<<CHEMPAGE;
 <html>  <html>
 <head>  <head>
Line 109  $molecule Line 116  $molecule
 </applet><br />  </applet><br />
 <font face="arial,helvetica,sans-serif" size="-1"><a href="http://www.molinspiration.com/jme/index.html">JME Editor</a> courtesy of Peter Ertl, Novartis</font>  <font face="arial,helvetica,sans-serif" size="-1"><a href="http://www.molinspiration.com/jme/index.html">JME Editor</a> courtesy of Peter Ertl, Novartis</font>
 <form>  <form>
 <input type="button" name="submit" value="Insert Answer" onclick = "submitSmiles();" />  $insert_answer
 <br />  <br />
 <input type="button" value="  Close  " onclick = "window.close()" />  <input type="button" value="  Close  " onclick = "javascript:window.close()" />
 &nbsp;&nbsp;  &nbsp;&nbsp;
 <input type="button" value="  Help  " onclick = "openHelpWindow()" />  <input type="button" value="  Help  " onclick = "javascript:openHelpWindow()" />
 </form>  </form>
 </center>  </center>
 </body>  </body>
Line 123  CHEMPAGE Line 130  CHEMPAGE
     $body=~s/\n/ /g;      $body=~s/\n/ /g;
     my $nothing=&Apache::lonhtmlcommon::javascript_nothing();      my $nothing=&Apache::lonhtmlcommon::javascript_nothing();
     my $docopen=&Apache::lonhtmlcommon::javascript_docopen();      my $docopen=&Apache::lonhtmlcommon::javascript_docopen();
       my $display=&mt('Draw Molecule');
       if (defined($shown_text)) { $display=&mt($shown_text); }
     my $result=<<CHEMINPUT;      my $result=<<CHEMINPUT;
 <input type="button" value="Draw Molecule" onclick="javascript:editor=window.open('$nothing','jmeedit','width=500,height=500,menubar=yes,scrollbars=no,resizable=yes');editor.$docopen;editor.document.write('$body');editor.document.close();editor.focus()" />  <input type="button" value="$display" onclick="javascript:editor=window.open($nothing,'jmeedit','width=500,height=500,menubar=yes,scrollbars=no,resizable=yes');editor.$docopen;editor.document.write('$body');editor.document.close();editor.focus()" />
 CHEMINPUT  CHEMINPUT
     return $result;      return $result;
 }  }
   
   sub jme_img {
       my ($jme,$smile,$width,$options)=@_;
       my $id=&Apache::loncommon::get_cgi_id();
       my $result='<img alt="'.$smile.'" src="/cgi-bin/convertjme.pl?'.$id.'"';
       if ($options =~ /border/) { $result.= ' border="1"'; }
       $result.=' />';
       &Apache::lonnet::appenv('cgi.'.$id.'.JME'   =>
       &Apache::lonnet::escape($jme),
       'cgi.'.$id.'.PNG'   => 1,
       'cgi.'.$id.'.WIDTH' => $width);
       return $result;
   }
   
 sub start_organicresponse {  sub start_organicresponse {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;      my $result;
Line 137  sub start_organicresponse { Line 159  sub start_organicresponse {
     if ($target eq 'meta') {      if ($target eq 'meta') {
  $result=&Apache::response::meta_package_write('organicresponse');   $result=&Apache::response::meta_package_write('organicresponse');
     } elsif ($target eq 'web') {      } elsif ($target eq 'web') {
  if (  &Apache::response::show_answer() ) {   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 '') {
     my $options=&Apache::lonxml::get_param('options',$parstack,      my $options=&Apache::lonxml::get_param('options',$parstack,
    $safeeval);     $safeeval);
     my $width=&Apache::lonxml::get_param('width',$parstack,      my $width=&Apache::lonxml::get_param('width',$parstack,
    $safeeval);     $safeeval);
     my $id=&Apache::loncommon::get_cgi_id();      my (@answers)=&Apache::lonxml::get_param_var('answer',$parstack,
     $result="<img src='/cgi-bin/convertjme.pl?$id'";   $safeeval);
     if ($options =~ /border/) { $result.= ' border="1"'; }      $result.=&jme_img($jmeanswer,$answers[0],$width,$options);
     $result.=' />';  
     &Apache::lonnet::appenv('cgi.'.$id.'.JME'   =>  
            &Apache::lonnet::escape($jmeanswer),  
     'cgi.'.$id.'.PNG'   => 1,  
     'cgi.'.$id.'.WIDTH' => $width);  
  } else {   } else {
     my $molecule;      my $molecule;
     if (defined($Apache::lonhomework::history{"resource.$partid.$id.molecule"})) {      if (defined($Apache::lonhomework::history{"resource.$partid.$id.molecule"})) {
Line 162  sub start_organicresponse { Line 179  sub start_organicresponse {
     }      }
     my $options=&Apache::lonxml::get_param('options',$parstack,      my $options=&Apache::lonxml::get_param('options',$parstack,
    $safeeval);     $safeeval);
     $result=&separate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule,$options);      my $shown_text;
       if (&Apache::response::show_answer()) {
    $shown_text="Show Your Last Answer";
       }
       $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 270  sub start_organicstructure { Line 292  sub start_organicstructure {
     'cgi.'.$id.'.WIDTH' => $width );      'cgi.'.$id.'.WIDTH' => $width );
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  my $texwidth=&Apache::lonxml::get_param('texwidth',$parstack,$safeeval,undef,1);   my $texwidth=&Apache::lonxml::get_param('texwidth',$parstack,$safeeval,undef,1);
    my $webwidth=&Apache::lonxml::get_param('width', $parstack, $safeeval);
    my $webheight=&Apache::lonxml::get_param('height', $parstack, $safeeval);
    if ($webheight) { $webheight = $webwidth; }
  if (!$texwidth) { $texwidth='90'; }   if (!$texwidth) { $texwidth='90'; }
    $result = "%DYNAMICIMAGE:$webwidth:$webheight:$texwidth\n";
  my $molecule=&Apache::lonxml::get_param('molecule',$parstack,$safeeval);   my $molecule=&Apache::lonxml::get_param('molecule',$parstack,$safeeval);
  my $options=&Apache::lonxml::get_param('options',$parstack,$safeeval);   my $options=&Apache::lonxml::get_param('options',$parstack,$safeeval);
  my $filename = $env{'user.name'}.'_'.$env{'user.domain'}.   my $filename = $env{'user.name'}.'_'.$env{'user.domain'}.

Removed from v.1.53  
changed lines
  Added in v.1.58


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