Diff for /loncom/homework/chemresponse.pm between versions 1.1 and 1.8

version 1.1, 2003/05/04 08:45:22 version 1.8, 2003/06/30 20:58:52
Line 32  use Apache::lonxml; Line 32  use Apache::lonxml;
 use Apache::lonnet;  use Apache::lonnet;
   
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::chemresponse',('chemresponse','chemstructure'));      &Apache::lonxml::register('Apache::chemresponse',('organicresponse','organicstructure','reactionresponse'));
 }  }
   
 sub seperate_jme_window {  sub seperate_jme_window {
     my ($id,$molecule)=@_;      my ($smile_input,$jme_input,$molecule,$options)=@_;
       my $smilesection;
       if (defined($smile_input)) {
    $smilesection=<<SMILESECTION;
    opener.document.lonhomework.$smile_input.value = smiles;
   SMILESECTION
       }
       my $jmesection;
       if (defined($jme_input)) {
    $jmesection=<<JMESECTION;
    jmeFile = document.applets.JME.jmeFile();
    opener.document.lonhomework.$jme_input.value = jmeFile;
   JMESECTION
       }
   
     my $body=<<CHEMPAGE;      my $body=<<CHEMPAGE;
 <html>  <html>
 <head>  <head>
Line 47  function submitSmiles() { Line 61  function submitSmiles() {
     if (smiles == "") {      if (smiles == "") {
  alert("Nothing to submit");   alert("Nothing to submit");
     } else {      } else {
  jmeFile = document.applets.JME.jmeFile();          $smilesection
  opener.document.lonhomework.HWVAL_$id.value = smiles;          $jmesection
  opener.document.lonhomework.MOLECULE_$id.value = jmeFile;  
  window.close();   window.close();
     }      }
 }  }
 function openHelpWindow() {  function openHelpWindow() {
     window.open("/adm/jme/jme_help.html","","scrollbars=yes,resizable=yes,width=500,height=600")      window.open("/adm/jme/jme_help.html","","scrollbars=yes,resizable=yes,width=500,height=600");
 }  }
 </script>  </script>
 </head>  </head>
Line 63  function openHelpWindow() { Line 76  function openHelpWindow() {
 <applet code="JME.class" name="JME" archive="/adm/jme/JME.jar" width="97%" height="78%">  <applet code="JME.class" name="JME" archive="/adm/jme/JME.jar" width="97%" height="78%">
 You have to enable Java and JavaScript on your machine.  You have to enable Java and JavaScript on your machine.
 <param name="jme" value="$molecule" />  <param name="jme" value="$molecule" />
   <param name="options" value="$options" />
 </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>
Line 84  CHEMINPUT Line 98  CHEMINPUT
     return $result;      return $result;
 }  }
   
 sub start_chemresponse {  sub start_organicresponse {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;      my $result;
     my $partid = $Apache::inputtags::part;      my $partid = $Apache::inputtags::part;
Line 98  sub start_chemresponse { Line 112  sub start_chemresponse {
     $molecule=&Apache::lonxml::get_param('molecule',$parstack,      $molecule=&Apache::lonxml::get_param('molecule',$parstack,
  $safeeval);   $safeeval);
  }   }
  $result=&seperate_jme_window($id,$molecule);   my $multipart=&Apache::lonxml::get_param('multipart',$parstack,
    $safeeval);
    if ($multipart eq 'yes') {
       $multipart = 'multipart';
    } else {
       $multipart ='';
           }
    $result=&seperate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule,$multipart);
  $result.= '<input type="hidden" name="MOLECULE_'.$id.'" value="" />';   $result.= '<input type="hidden" name="MOLECULE_'.$id.'" value="" />';
       } elsif ($target eq 'edit') {
    $result .=&Apache::edit::tag_start($target,$token);
    $result .='<nobr>'.
       &Apache::edit::text_arg('Starting Molecule:','molecule',
       $token,40);
    my $molecule=&Apache::lonxml::get_param('molecule',$parstack,
    $safeeval);
    $result .=&seperate_jme_window(undef,
         &Apache::edit::html_element_name('molecule'),
         $molecule,'multipart');
    $result .='</nobr><br /><nobr>';
    $result .=&Apache::edit::text_arg('Correct Answer:','answer',
     $token,40);
    $result .=&Apache::edit::hidden_arg('jmeanswer',$token);
    my $jmeanswer=&Apache::lonxml::get_param('jmeanswer',$parstack,
    $safeeval);
    $result .=&seperate_jme_window(
                         &Apache::edit::html_element_name('answer'),
                         &Apache::edit::html_element_name('jmeanswer'),
         $jmeanswer,'multipart');
    $result .='</nobr>'.
       &Apache::edit::select_arg('Multipart:','multipart',
         ['no','yes'],$token);
    $result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row();
       } elsif ($target eq 'modified') {
    my $constructtag=&Apache::edit::get_new_args($token,$parstack,
        $safeeval,'molecule',
        'answer','jmeanswer',
        'multipart');
    if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }
     }      }
     return $result;      return $result;
 }  }
   
 sub end_chemresponse {  sub end_organicresponse {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;      my $result;
     if ($target eq 'grade' && defined($ENV{'form.submitted'})) {      if ($target eq 'grade' && defined($ENV{'form.submitted'})) {
Line 127  sub end_chemresponse { Line 178  sub end_chemresponse {
     $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"};
  }   }
       } elsif ($target eq "edit") {
    $result.= &Apache::edit::tag_end($target,$token,'');
     }      }
     &Apache::response::end_response;      &Apache::response::end_response;
     return $result;      return $result;
 }  }
   
 sub start_chemstructure {  sub start_organicstructure {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
       my $result;
       if ($target eq 'web') {
    my $width=&Apache::lonxml::get_param('width',$parstack,$safeeval);
    my $height=&Apache::lonxml::get_param('height',$parstack,$safeeval);
    my $molecule=&Apache::lonxml::get_param('molecule',$parstack,$safeeval);
    $result=<<CHEMOUTPUT;
   <applet code="JME.class" archive="/adm/jme/JME.jar" width="$width" height="$height">
   <param name="options" value="depict border" />
   <param name="jme" value="$molecule" />
   </applet>
   CHEMOUTPUT
       } elsif ($target eq 'edit') {
    $result .=&Apache::edit::tag_start($target,$token);
    $result .=&Apache::edit::text_arg('Width:','width',$token,5);
    $result .=&Apache::edit::text_arg('Height:','height',$token,5);
    $result .=&Apache::edit::text_arg('Molecule:','molecule',$token,40);
    my $molecule=&Apache::lonxml::get_param('molecule',$parstack,
    $safeeval);
    $result .=&seperate_jme_window(undef,
         &Apache::edit::html_element_name('molecule'),
         $molecule,'multipart');
    $result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row();
       } elsif ($target eq 'modified') {
    my $constructtag=&Apache::edit::get_new_args($token,$parstack,
        $safeeval,'molecule',
        'width','height');
    if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }
       }
       return $result;
 }  }
   
 sub end_chemstructure {  sub end_organicstructure {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
       my $result;
       if ($target eq "edit") {
    $result.= &Apache::edit::tag_end($target,$token,'');
       }
       return $result;
   }
   
   sub start_reactionresponse {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
       my $result;
       my $id = &Apache::response::start_response($parstack,$safeeval);
       if ($target eq 'web') {
    $result.=<<EDITREACTION;
   <input type='button' value='Edit Reaction' onClick="javascript:editor=window.open('/res/adm/reactionresponse/reaction_window.html','','width=500,height=270,scrollbars=no,resizable=yes'); document.cookie='problem=$id';" />
   EDITREACTION
   
   # $result.=&reaction_javascript();
   # $result.='<iframe name="REACTION_'.$id.'" width="200" height="100" src="/adm/jme/reaction_viewer.html"></iframe>';
   # $result.='<input type="button" value="Check" onClick = "javascript:newWindow=open(\'\',\'new_W\',\'width=500,height=200,scrollbars=1\');newWindow.document.open(\'text/html\',\'replace\');newWindow.document.writeln(\'<center><br />\'+to_html(document.lonhomework.HWVAL_'.$id.'.value)+\'</center><input type=&quot;button&quot; value=&quot;  Close  &quot; onClick = &quot;parent.window.close()&quot; />\');newWindow.document.close()" />'
       } elsif ($target eq "edit") {
       }
       return $result;
   }
   
   sub end_reactionresponse {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
       my $result;
       if ($target eq "edit") {
    $result.= &Apache::edit::tag_end($target,$token,'');
       }
       &Apache::response::end_response;
       return $result;
 }  }
   
 1;  1;

Removed from v.1.1  
changed lines
  Added in v.1.8


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