--- loncom/interface/lonerrorhandler.pm 2006/03/19 22:34:30 1.9 +++ loncom/interface/lonerrorhandler.pm 2008/10/04 00:09:18 1.16 @@ -1,7 +1,7 @@ # The LearningOnline Network # Internal Server Error Handler # -# $Id: lonerrorhandler.pm,v 1.9 2006/03/19 22:34:30 albertel Exp $ +# $Id: lonerrorhandler.pm,v 1.16 2008/10/04 00:09:18 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -30,9 +30,11 @@ package Apache::lonerrorhandler; use strict; use Apache::Constants qw(:common); -use Apache::loncommon; +use Apache::loncommon(); use Apache::lonnet; -use Apache::lonmsg; +use Apache::lonmsg(); +use Apache::lonacc(); +use Apache::lonlocal; sub handler { my $r = shift; @@ -40,8 +42,10 @@ sub handler { $r->send_http_header; return OK if $r->header_only; - &Apache::loncommon::get_posted_cgi($r); - + &Apache::lonacc::get_posted_cgi($r); + if (!$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)); @@ -52,27 +56,47 @@ sub handler { if ($env{'form.reproducible'}) { $repro='yes'; } + my %lt = &Apache::lonlocal::texthash ( + msg => 'LON-CAPA Error Message', + rep => 'Reproducible', + ver => 'Version', + syl => 'Syllabus', + pri => 'Prior Action', + gue => 'Guesses', + env => 'Environment', + ); my $message=(<<ENDMESSAGE); -LON-CAPA Error Message -Reproducible: $repro -Version: $env{'form.version'} -Syllabus: +$lt{'msg'} +$lt{'rep'}: $repro +$lt{'ver'}: $env{'form.version'} +$lt{'syl'}: $env{'form.syllabus'} -Prior Action: +$lt{'pri'}: $env{'form.prioraction'} -Guesses: +$lt{'gue'}: $env{'form.guesses'} -Environment: +$lt{'env'}: $env{'form.environment'} ENDMESSAGE - my $recipients=$r->dir_config('lonAdmEMail').','. - $r->dir_config('lonSysEMail'); - - &Apache::lonmsg::sendemail($recipients,'ERROR REPORT',$message); - $r->print('<h2>Report submitted</h2>Thank you!</body></html>'); + my $sysmail = $r->dir_config('lonSysEMail'); + my $defdom = $r->dir_config('lonDefDomain'); + my $origmail = $r->dir_config('lonAdmEMail'); + my $recipients = &Apache::loncommon::build_recipient_list($sysmail, + 'errormail',$defdom,$origmail); + if ($recipients ne '') { + &Apache::lonmsg::sendemail($recipients,'ERROR REPORT',$message); + $r->print('<h2>'.&mt('Report submitted').'</h2>'.&mt('Thank you!')); + } else { + $r->print('<h2>'.&mt('Warning: Report not submitted').'</h2>'. + '<span class="LC_error">' + .&mt('The administrators of the domain [_1] have not set' + .' any e-mail addresses for receipt of your error report.' + ,'<tt>'.$defdom.'</tt>') + .'</span>'); + } } else { # ------------------------------------------------------------- Get environment my $envkey; @@ -94,46 +118,48 @@ ENDMESSAGE my $version=$r->dir_config('lonVersion'); # ----------------------------------------------------------- Print error form - $r->print(<<ENDDOCUMENT); -<h2>Somewhere something went wrong - please help us to find out what.</h2> -Please take a moment to fill out the form below. Your information, together -with internal debugging information, will be emailed to the system and server -administrators. + $r->print('<h2 class="LC_error">' +.&mt('Somewhere something went wrong') +.'</h2>' +.'<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.') +.'</p> <form action="/adm/errorhandler" method="post"> -<input type="submit" value="Send Information"> -<h3>Please describe what you did just before this screen came up</h3> +<h3>'.&mt('Please describe what you did just before this screen came up').'</h3> <textarea name="prioraction" cols="50" rows="5"> </textarea> -<h3>Is this problem reproducible?</h3> +<h3>'.&mt('Is this problem reproducible?').'</h3> <label> -<input type="checkbox" name="reproducible" value="yes"> Yes! +<input type="checkbox" name="reproducible" value="yes" /> '.&mt('Yes!').' </label> -<h3>Do you have any guesses why this might have happened?</h3> +<h3>'.&mt('Do you have any guesses why this might have happened?').'</h3> <textarea name="guesses" cols="50" rows="5"> </textarea> -<input type="hidden" name="version" value="$version" /> -<input type="hidden" name="environment" value="$env" /> -<input type="hidden" name="syllabus" value="$syllabus" /> +<input type="hidden" name="version" value="'.$version.'" /> +<input type="hidden" name="environment" value="'.$env.'" /> +<input type="hidden" name="syllabus" value="'.$syllabus.'" /> <input type="hidden" name="sendinfo" value="1" /> <p> -<input type="submit" value="Send Information"> +<input type="submit" value="'.&mt('Send Information').'" /> </p> </form> -<h1>Thank you for your help!</h1> -<font size="-1"> -<pre> -Internal info: -$syllabus +<h1>'.&mt('Thank you for your help!').'</h1> +<div><font size="-1"> +'.&mt('Internal info:'). +'<pre>'. +$syllabus.' </pre> -</font> -ENDDOCUMENT - $r->print(&Apache::loncommon::end_page()); +</font></div> +'); # -------------------------- Better terminate this in case something was sticky $r->child_terminate(); } + $r->print(&Apache::loncommon::end_page()); return OK; -} +} 1; __END__