--- loncom/homework/chemresponse.pm 2007/10/08 09:22:50 1.74 +++ loncom/homework/chemresponse.pm 2008/09/05 16:09:39 1.79 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # chemical equation style response # -# $Id: chemresponse.pm,v 1.74 2007/10/08 09:22:50 foxr Exp $ +# $Id: chemresponse.pm,v 1.79 2008/09/05 16:09:39 riegler Exp $ # # Copyright Michigan State University Board of Trustees # @@ -163,6 +163,7 @@ CHEMPAGE my $docopen=&Apache::lonhtmlcommon::javascript_docopen(); my $display=&mt('Draw Molecule'); if (defined($shown_text)) { $display=&mt($shown_text); } + my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; my $function = 'LONCAPA_draw_molecule_'.&Apache::lonhtmlcommon::get_uniq_name(); my $result=< - +$display CHEMINPUT return $result; } - sub jme_img { my ($jme,$smile,$width,$options)=@_; my $id=&Apache::loncommon::get_cgi_id(); my $result=''.$smile.' - &escape($jme), - 'cgi.'.$id.'.PNG' => 1, - 'cgi.'.$id.'.WIDTH' => $width); + &Apache::lonnet::appenv({'cgi.'.$id.'.JME' => + &escape($jme), + 'cgi.'.$id.'.PNG' => 1, + 'cgi.'.$id.'.WIDTH' => $width}); return $result; } @@ -225,8 +225,8 @@ sub start_organicresponse { if (&Apache::response::show_answer()) { $shown_text="Show Your Last Answer"; } - $result=&separate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule, - $options,$shown_text); + #stift $result=&separate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule, +# $options,$shown_text); $result.= ''; } } elsif ($target eq 'edit') { @@ -334,11 +334,31 @@ sub end_organicresponse { if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze') { - &Apache::lonxml::increment_counter(&Apache::response::repetition(), $partid); + &Apache::lonxml::increment_counter(&Apache::response::repetition(), + "$partid.$id"); # part.response if ($target eq 'analyze') { + $Apache::lonhomework::analyze{"$partid.$id.type"} = 'organicresponse'; &Apache::lonhomework::set_bubble_lines(); } } + if (($target eq 'web' ) && ($Apache::lonhomework::type ne 'exam') && ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER')){ +# hierher + my $options=&Apache::lonxml::get_param('options',$parstack, + $safeeval); + my $shown_text; + if (&Apache::response::show_answer()) { + $shown_text="Show Your Last Answer"; + } + 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); + } + $result.=&separate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule, + $options,$shown_text); + } &Apache::response::end_response(); return $result; } @@ -363,9 +383,9 @@ sub start_organicstructure { if ($options =~ /border/) { $result.= ' border="1"'; } $result.=' />'; &Apache::lonnet::appenv( - 'cgi.'.$id.'.JME' => &escape($molecule), - 'cgi.'.$id.'.PNG' => 1, - 'cgi.'.$id.'.WIDTH' => $width ); + {'cgi.'.$id.'.JME' => &escape($molecule), + 'cgi.'.$id.'.PNG' => 1, + 'cgi.'.$id.'.WIDTH' => $width}); } elsif ($target eq 'tex') { my $texwidth=&Apache::lonxml::get_param('texwidth',$parstack,$safeeval,undef,1); my $webwidth=&Apache::lonxml::get_param('width', $parstack, $safeeval); @@ -379,9 +399,9 @@ sub start_organicstructure { '_'.time.'_'.$$.int(rand(1000)).'_organicstructure'; my $id=$filename; &Apache::lonnet::appenv( - 'cgi.'.$id.'.JME' => &escape($molecule), - 'cgi.'.$id.'.PS' => 1, - 'cgi.'.$id.'.WIDTH' => $texwidth ); + {'cgi.'.$id.'.JME' => &escape($molecule), + 'cgi.'.$id.'.PS' => 1, + 'cgi.'.$id.'.WIDTH' => $texwidth}); $id=&escape($id); &Apache::lonxml::register_ssi("/cgi-bin/convertjme.pl?$id"); if ($options =~ /border/) { $result.= '\fbox{'; } @@ -563,7 +583,11 @@ sub end_reactionresponse { if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze') { - &Apache::lonxml::increment_counter(&Apache::response::repetition(), $partid); + &Apache::lonxml::increment_counter(&Apache::response::repetition(), "$partid.$id"); + if ($target eq 'analyze') { + $Apache::lonhomework::analyze{"$partid.$id.type"} = 'reactionresponse'; + &Apache::lonhomework::set_bubble_lines(); + } } &Apache::response::end_response(); return $result;