--- loncom/homework/externalresponse.pm	2008/02/01 22:05:45	1.13
+++ loncom/homework/externalresponse.pm	2010/12/21 01:53:08	1.18
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # external style responses
 #
-# $Id: externalresponse.pm,v 1.13 2008/02/01 22:05:45 raeburn Exp $
+# $Id: externalresponse.pm,v 1.18 2010/12/21 01:53:08 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -26,20 +26,29 @@
 # http://www.lon-capa.org/
 #
 
+
+
 package Apache::externalresponse;
 use strict;
 use HTTP::Request::Common;
 use Apache::loncapagrade;
 use Apache::lonnet;
+use Apache::lonlocal;
 
 BEGIN {
     &Apache::lonxml::register('Apache::externalresponse',('externalresponse'));
 }
 
-#FIXME
-# send of response params and their current values (form good enough?
-# what parameters to send?)
-# Need to get returned message displayed 
+=pod
+
+=head1 FIXME (start_externalresponse)
+
+send of response params and their current values (form good enough? what parameters to send?)
+Need to get returned message displayed
+
+=cut
+
+
 sub start_externalresponse {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;
@@ -48,13 +57,14 @@ sub start_externalresponse {
     if ($target eq 'edit') {
   	$result .=&Apache::edit::tag_start($target,$token);
 	$result .=&Apache::edit::text_arg('URL:','url',$token,60).'<br />';
-	$result .=&Apache::edit::text_arg('Answer:','answer',$token);
-	$result .=&Apache::edit::text_arg('Form:','form',$token);
+	$result .=&Apache::edit::text_arg(&mt('Answer:'),'answer',$token);
+	$result .=&Apache::edit::text_arg(&mt('Form:'),'form',$token).'<br />';
+        $result .=&Apache::edit::text_arg(&mt('Answer display:'),'answerdisplay',$token,80);
 	$result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row();
     } elsif ($target eq 'modified') {
 	my $constructtag =
 	    &Apache::edit::get_new_args($token,$parstack,$safeeval,
-					'answer','form','url');
+					'answerdisplay','answer','form','url');
 	if ($constructtag) {
 	    $result = &Apache::edit::rebuild_tag($token);
 	}
@@ -105,6 +115,7 @@ sub end_externalresponse {
 		    $Apache::lonhomework::results{"resource.$part.$id.$key"}=
 			$Apache::loncapagrade::results{$key};
 		}
+                $Apache::externalresponse::message=$Apache::loncapagrade::results{'message'};
 		&Apache::response::handle_previous(\%previous,
 						   $Apache::loncapagrade::results{'awarddetail'});
 		&Apache::lonxml::debug("response of");
@@ -118,6 +129,16 @@ sub end_externalresponse {
     }
     if ($target eq 'web') {
 	&Apache::response::setup_prior_tries_hash(\&format_prior_response);
+        if (&Apache::response::show_answer()) {
+           $result.='<table border="1"><tr><th>'.&mt('Your answer:').'</th></tr><tr><td><pre>'.
+                    $Apache::lonhomework::history{"resource.$part.$id.submission"}.
+                    '</pre></td></table><br />'.&Apache::lonxml::get_param('answerdisplay',$parstack,$safeeval).
+                    '<br />';
+        }
+        if ($Apache::externalresponse::message) {
+           $result.='<br /><table><tr><td bgcolor="#FFFFAA">'.$Apache::externalresponse::message.'</td></tr></table><br />';
+        }
+        $Apache::externalresponse::message='';
     }
 
     if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||
@@ -143,3 +164,29 @@ sub format_prior_response {
 __END__
 
 
+=pod
+
+=head1 NAME
+
+Apache::externalresponse.pm
+
+=head1 SYNOPSIS
+
+Handler to evaluate externally graded responses.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 SUBROUTINES
+
+=over
+
+=item start_externalresponse()
+
+=item end_externalresponse()
+
+=item format_prior_response()
+
+=back
+
+=cut