--- loncom/xml/lonxml.pm 2007/08/22 19:02:06 1.453 +++ loncom/xml/lonxml.pm 2007/09/10 19:46:57 1.456 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.453 2007/08/22 19:02:06 albertel Exp $ +# $Id: lonxml.pm,v 1.456 2007/09/10 19:46:57 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1357,13 +1357,13 @@ sub inserteditinfo { my $initialize=''; my $textarea_id = 'filecont'; my ($add_to_onload, $add_to_onresize); - if ($filetype eq 'html') { - my $addbuttons=&Apache::lonhtmlcommon::htmlareaaddbuttons(); - $initialize=&Apache::lonhtmlcommon::spellheader(); - if (!&Apache::lonhtmlcommon::htmlareablocked() && - &Apache::lonhtmlcommon::htmlareabrowser()) { - $textarea_id .= '_htmlarea'; - $initialize.=(<<FULLPAGE); + my $addbuttons=&Apache::lonhtmlcommon::htmlareaaddbuttons(); + $initialize=&Apache::lonhtmlcommon::spellheader(); + if ($filetype eq 'html' + && (!&Apache::lonhtmlcommon::htmlareablocked() && + &Apache::lonhtmlcommon::htmlareabrowser())) { + $textarea_id .= '_htmlarea'; + $initialize.=(<<FULLPAGE); <script type="text/javascript"> $addbuttons @@ -1383,8 +1383,8 @@ $addbuttons } </script> FULLPAGE - } else { - $initialize.=(<<FULLPAGE); + } else { + $initialize.=(<<FULLPAGE); <script type="text/javascript"> $addbuttons function initDocument() { @@ -1392,9 +1392,12 @@ $addbuttons } </script> FULLPAGE - } - $add_to_onload = 'initDocument();'; - $add_to_onresize = "resize_textarea('$textarea_id','LC_aftertextarea');"; + } + + $add_to_onload = 'initDocument();'; + $add_to_onresize = "resize_textarea('$textarea_id','LC_aftertextarea');"; + + if ($filetype eq 'html') { $xml_help=&Apache::loncommon::helpLatexCheatsheet(); } @@ -1409,7 +1412,7 @@ FULLPAGE my $buttons=(<<BUTTONS); $cleanbut <input type="submit" name="discardview" accesskey="d" value="$lt{'dv'}" /> -<input type="submit" name="Undo" accesskey="u" value="$lt{'un'}" /><hr> +<input type="submit" name="Undo" accesskey="u" value="$lt{'un'}" /><hr /> <input type="submit" name="savethisfile" accesskey="s" value="$lt{'st'}" /> <input type="submit" name="viewmode" accesskey="v" value="$lt{'vi'}" /> BUTTONS @@ -1529,15 +1532,27 @@ ENDNOTFOUND ['editmode']); } if (!$env{'form.editmode'} || $env{'form.viewmode'} || $env{'form.discardview'}) { + &Apache::structuretags::reset_problem_globals(); $result = &Apache::lonxml::xmlparse($request,$target,$filecontents, '',%mystyle); - undef($Apache::lonhomework::parsing_a_task); + # .html files may contain <problem> or <Task> need to clean + # up if it did + &Apache::structuretags::reset_problem_globals(); + &Apache::lonhomework::finished_parsing(); &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['rawmode']); if ($env{'form.rawmode'}) { $result = $filecontents; } + if ($filetype eq 'sty') { + my %options = ('bgcolor' => '#FFFFFF'); + $result = + &Apache::loncommon::start_page(undef,undef,\%options). + &Apache::londefdef::edit_controls(). + $result. + &Apache::loncommon::end_page(); + } } } - + # # Edit action? Insert editing commands # @@ -1620,12 +1635,28 @@ sub show_error_warn_msg { } sub error { + my @errors = @_; + $errorcount++; + + if (defined($Apache::inputtags::part)) { + if ( @Apache::inputtags::response ) { + push(@errors, + &mt("This error occurred while processing response [_1] in part [_2]", + $Apache::inputtags::response[-1], + $Apache::inputtags::part)); + } else { + push(@errors, + &mt("This error occurred while processing part [_1]", + $Apache::inputtags::part)); + } + } + if ( &show_error_warn_msg() ) { # If printing in construction space, put the error inside <pre></pre> push(@Apache::lonxml::error_messages, $Apache::lonxml::warnings_error_header. - "<b>ERROR:</b>".join("<br />\n",@_)."<br />\n"); + "<b>ERROR:</b>".join("<br />\n",@errors)."<br />\n"); $Apache::lonxml::warnings_error_header=''; } else { my $errormsg; @@ -1635,7 +1666,10 @@ sub error { $errormsg=&mt("An error occured while processing this resource. The author has been notified."); } my $host=$Apache::lonnet::perlvar{'lonHostID'}; - my $msg = join('<br />',(@_,"The error occurred on host <tt>$host</tt>")); + push(@errors, "The error occurred on host <tt>$host</tt>"); + + my $msg = join('<br />', @errors); + #notify author &Apache::lonmsg::author_res_msg($env{'request.filename'},$msg); #notify course