--- loncom/homework/chemresponse.pm 2008/12/11 14:52:30 1.83 +++ loncom/homework/chemresponse.pm 2010/02/28 23:35:53 1.87 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # chemical equation style response # -# $Id: chemresponse.pm,v 1.83 2008/12/11 14:52:30 bisitz Exp $ +# $Id: chemresponse.pm,v 1.87 2010/02/28 23:35:53 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -176,8 +176,14 @@ CHEMPAGE editor.focus(); } -$display CHEMINPUT + if ($shown_text eq '') { + $result .=<$display +PENCIL + } else { + $result .= ''; + } return $result; } sub jme_img { @@ -203,30 +209,19 @@ sub start_organicresponse { } elsif ($target eq 'web') { my $jmeanswer=&Apache::lonxml::get_param('jmeanswer',$parstack, $safeeval); - if ( &Apache::response::show_answer() && $jmeanswer ne '') { - my $options=&Apache::lonxml::get_param('options',$parstack, - $safeeval); - my $width=&Apache::lonxml::get_param('width',$parstack, - $safeeval); - my (@answers)=&Apache::lonxml::get_param_var('answer',$parstack, - $safeeval); - $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, + if (&Apache::response::show_answer()) { + my $jmeanswer=&Apache::lonxml::get_param('jmeanswer',$parstack, + $safeeval); + if ($jmeanswer ne '') { + my $options=&Apache::lonxml::get_param('options',$parstack, + $safeeval); + my $width=&Apache::lonxml::get_param('width',$parstack, $safeeval); - } - my $options=&Apache::lonxml::get_param('options',$parstack, - $safeeval); - my $shown_text; - if (&Apache::response::show_answer()) { - $shown_text="Show Your Last Answer"; - } - #stift $result=&separate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule, -# $options,$shown_text); + my (@answers)=&Apache::lonxml::get_param_var('answer',$parstack, + $safeeval); + $result.=&jme_img($jmeanswer,$answers[0],$width,$options); + } + } else { $result.= ''; } } elsif ($target eq 'edit') { @@ -245,8 +240,8 @@ sub start_organicresponse { $result .='
'; $result .=&Apache::edit::text_arg('Correct Answer:','answer', $token,40); - $result .='
'; - $result .=&Apache::edit::text_arg('JME string of the answer (automatically updated when using the Draw Molecule button):', + $result .='
'; + $result .=&Apache::edit::text_arg('JME string of the answer - automatically updated by "Insert Answer" in the JME pop-up (click pencil):', 'jmeanswer',$token); my $jmeanswer=&Apache::lonxml::get_param('jmeanswer',$parstack, $safeeval); @@ -309,9 +304,17 @@ sub end_organicresponse { $ad='INCORRECT'; } } - if ($ad && $Apache::lonhomework::type eq 'survey') { - $ad='SUBMITTED'; - } + if ($ad) { + 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::lonhomework::results{"resource.$partid.$id.awarddetail"}=$ad; $Apache::lonhomework::results{"resource.$partid.$id.molecule"}=$env{"form.MOLECULE_$id"}; @@ -338,16 +341,25 @@ sub end_organicresponse { "$partid.$id"); # part.response if ($target eq 'analyze') { $Apache::lonhomework::analyze{"$partid.$id.type"} = 'organicresponse'; + push (@{ $Apache::lonhomework::analyze{"parts"} },"$partid.$id"); &Apache::lonhomework::set_bubble_lines(); } } - if (($target eq 'web' ) && ($Apache::lonhomework::type ne 'exam') && ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER')){ - my $options=&Apache::lonxml::get_param('options',$parstack, - $safeeval); - my $shown_text; - if (&Apache::response::show_answer()) { + if ($target eq 'web' ) { + my ($showpencil,$shown_text); + if ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') { + $showpencil = 1; + } 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"; } + } + if ($showpencil) { + my $options=&Apache::lonxml::get_param('options',$parstack, + $safeeval); + my $molecule; if (defined($Apache::lonhomework::history{"resource.$partid.$id.molecule"})) { $molecule=$Apache::lonhomework::history{"resource.$partid.$id.molecule"}; @@ -355,8 +367,9 @@ sub end_organicresponse { $molecule=&Apache::lonxml::get_param('molecule',$parstack, $safeeval); } - $result.=&separate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule, - $options,$shown_text); + $result.=&separate_jme_window("HWVAL_$id","MOLECULE_$id",$molecule, + $options,$shown_text); + } } &Apache::response::end_response(); return $result; @@ -553,9 +566,17 @@ sub end_reactionresponse { $ad='INCORRECT'; } } - if ($ad && $Apache::lonhomework::type eq 'survey') { - $ad='SUBMITTED'; - } + if ($ad) { + 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::lonhomework::results{"resource.$partid.$id.awarddetail"}=$ad; } @@ -580,6 +601,7 @@ sub end_reactionresponse { &Apache::lonxml::increment_counter(&Apache::response::repetition(), "$partid.$id"); if ($target eq 'analyze') { $Apache::lonhomework::analyze{"$partid.$id.type"} = 'reactionresponse'; + push (@{ $Apache::lonhomework::analyze{"parts"} },"$partid.$id"); &Apache::lonhomework::set_bubble_lines(); } }