--- loncom/interface/lonerrorhandler.pm	2008/08/19 11:22:00	1.15
+++ loncom/interface/lonerrorhandler.pm	2013/08/12 16:51:58	1.24
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Internal Server Error Handler
 #
-# $Id: lonerrorhandler.pm,v 1.15 2008/08/19 11:22:00 bisitz Exp $
+# $Id: lonerrorhandler.pm,v 1.24 2013/08/12 16:51:58 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -26,6 +26,8 @@
 # http://www.lon-capa.org/
 #
 
+
+
 package Apache::lonerrorhandler;
 
 use strict;
@@ -43,7 +45,9 @@ sub handler {
     return OK if $r->header_only;
 
     &Apache::lonacc::get_posted_cgi($r);
-
+    if (!$Apache::lonlocal::lh) {
+        &Apache::lonlocal::get_language_handle($r);
+    }
     my $title = $env{'form.sendinfo'} ? 'Sending Error Report'
                                       : 'Could Not Process Request';
     $r->print(&Apache::loncommon::start_page($title));
@@ -79,8 +83,18 @@ $env{'form.guesses'}
 $lt{'env'}:
 $env{'form.environment'}
 ENDMESSAGE
-        my $sysmail = $r->dir_config('lonSysEMail');
         my $defdom = $r->dir_config('lonDefDomain');
+        my $sysmail;
+        my $notify = 1;
+        my %domconfig = &Apache::lonnet::get_dom('configuration',['contacts']);
+        if (ref($domconfig{'contacts'}) eq 'HASH') {
+            if ($domconfig{'contacts'}{'reporterrors'} == 0) {
+                $notify = 0;
+            }
+        }
+        if ($notify) {
+            $sysmail = 'errorrecord@loncapa.org';
+        }
         my $origmail = $r->dir_config('lonAdmEMail');
         my $recipients = &Apache::loncommon::build_recipient_list($sysmail,
                                              'errormail',$defdom,$origmail);
@@ -101,6 +115,18 @@ ENDMESSAGE
 	my $env='';
 	my $syllabus='';
 
+	foreach $envkey (keys(%env)) {
+            if ($envkey =~ /^form\.(.+)\.filename$/) {
+                my $item = $1;
+                if (exists($env{'form.'.$item.'.mimetype'})) {
+                    if (exists($env{'form.'.$item})) {
+                        my $size = (length($env{'form.'.$item}))/(1024.0 * 1024.0);
+                        $env{'form.'.$item} = &mt('File (contents not shown) - size was [_1] MB.',sprintf("%.4f",$size));
+                    }
+                }
+            }
+        }
+
 	foreach $envkey (sort(keys(%env))) {
 	    $env.="$envkey: $env{$envkey}\n";
 	}
@@ -122,7 +148,7 @@ ENDMESSAGE
 .'<p>'.&mt('Please help us to find out what.').'</p>'
 .'<p>'.&mt('Please take a moment to fill out the form below.').' '
 .&mt('Your information, together with internal debugging information, '
-    .'will be emailed to the system and server administrators.')
+    .'will be e-mailed to the system and server administrators.')
 .'</p>
 <form action="/adm/errorhandler" method="post">
 <h3>'.&mt('Please describe what you did just before this screen came up').'</h3>
@@ -140,7 +166,7 @@ ENDMESSAGE
 <input type="hidden" name="syllabus" value="'.$syllabus.'" />
 <input type="hidden" name="sendinfo" value="1" />
 <p>
-<input type="submit" value="'.&mt('Send Information').'" />
+<input type="submit" title="'.&mt('Send Information').'" value="'.&mt('Send').'" />
 </p>
 </form>
 <h1>'.&mt('Thank you for your help!').'</h1>
@@ -161,3 +187,23 @@ $syllabus.'
 
 1;
 __END__
+
+
+=pod
+
+=head1 NAME
+
+Apache::lonerrorhandler.pm
+
+=head1 SYNOPSIS
+
+Handles errors.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 OVERVIEW
+
+None
+
+=cut