--- loncom/xml/lonxml.pm 2008/06/25 12:00:37 1.481
+++ loncom/xml/lonxml.pm 2009/04/13 20:15:44 1.492
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# XML Parser Module
#
-# $Id: lonxml.pm,v 1.481 2008/06/25 12:00:37 raeburn Exp $
+# $Id: lonxml.pm,v 1.492 2009/04/13 20:15:44 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -37,6 +37,25 @@
# to any other parties under any circumstances.
#
+=pod
+
+=head1 NAME
+
+Apache::lonxml
+
+=head1 SYNOPSIS
+
+XML Parsing Module
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+
+=head1 SUBROUTINES
+
+=cut
+
+
package Apache::lonxml;
use vars
@@ -361,8 +380,8 @@ sub xmlparse {
$safeeval,\%style_for_target,1);
if (@stack) {
- &warning("At end of file some tags were still left unclosed, ".
- '<'.join('>, <',reverse(@stack)).
+ &warning(&mt('At end of file some tags were still left unclosed:').
+ ' <'.join('>, <',reverse(@stack)).
'>');
}
if ($env{'request.uri'}) {
@@ -486,10 +505,10 @@ sub inner_xmlparse {
while ($token->[1] ne $$stack['-1'] && ($#$stack > -1)) {
my $lasttag=$$stack[-1];
if ($token->[1] =~ /^\Q$lasttag\E$/i) {
- &Apache::lonxml::warning('Using tag </'.$token->[1].'> on line '.$token->[3].' as end tag to <'.$$stack[-1].'>');
+ &Apache::lonxml::warning(&mt('Using tag [_1] on line [_2] as end tag to [_3]','</'.$token->[1].'>','.$token->[3].','<'.$$stack[-1].'>'));
last;
} else {
- &Apache::lonxml::warning('Found tag </'.$token->[1].'> on line '.$token->[3].' when looking for </'.$$stack[-1].'> in file');
+ &Apache::lonxml::warning(&mt('Found tag [_1] on line [_2] when looking for [_3] in file.','</'.$token->[1].'>',$token->[3],'</'.$$stack[-1].'>'));
&end_tag($stack,$parstack,$token);
}
}
@@ -505,11 +524,11 @@ sub inner_xmlparse {
if (!$Apache::lonxml::usestyle) {
$extras=$Apache::lonxml::style_values;
}
- if ( $#$parstack > -1 ) {
- $result=&Apache::run::evaluate($result,$safeeval,$extras.$$parstack[-1]);
- } else {
- $result= &Apache::run::evaluate($result,$safeeval,$extras);
- }
+ if ( $#$parstack > -1 ) {
+ $result=&Apache::run::evaluate($result,$safeeval,$extras.$$parstack[-1]);
+ } else {
+ $result= &Apache::run::evaluate($result,$safeeval,$extras);
+ }
}
$Apache::lonxml::post_evaluate=1;
@@ -658,6 +677,7 @@ sub setup_globals {
$Apache::lonxml::request=$request;
$errorcount=0;
$warningcount=0;
+ $Apache::lonxml::internal_error=0;
$Apache::lonxml::default_homework_loaded=0;
$Apache::lonxml::usestyle=1;
&init_counter();
@@ -1451,7 +1471,7 @@ sub storefile {
$fh->close();
return 1;
} else {
- &warning("Unable to save file $file");
+ &warning(&mt('Unable to save file [_1]',''.$file.''));
return 0;
}
}
@@ -1519,7 +1539,7 @@ sub renderingoptions {
&mt('Math Rendering:').' '.
&Apache::loncommon::select_form($env{'form.texengine'},'texengine',
('' => '',
- 'tth' => 'tth (Tex-to-HTML)',
+ 'tth' => 'tth (TeX to HTML)',
'jsMath' => 'jsMath',
'mimetex' => 'mimetex (Convert to Images)')).'
';
@@ -1531,6 +1551,7 @@ sub inserteditinfo {
my $xml_help = '';
my $initialize='';
my $textarea_id = 'filecont';
+ my $dragmath_button;
my ($add_to_onload, $add_to_onresize);
$initialize=&Apache::lonhtmlcommon::spellheader();
if ($filetype eq 'html'
@@ -1568,6 +1589,10 @@ FULLPAGE
}
FULLPAGE
+ if ($filetype eq 'html') {
+ $initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup');
+ $dragmath_button = &Apache::lonhtmlcommon::dragmath_button('filecont',1);
+ }
}
$add_to_onload = 'initDocument();';
@@ -1586,9 +1611,12 @@ FULLPAGE
my $spelllink .=&Apache::lonhtmlcommon::spelllink('xmledit','filecont');
my $textarea_events = &Apache::edit::element_change_detection();
my $form_events = &Apache::edit::form_change_detection();
- my $htmlerror=&verify_html($filecontents);
- if ($htmlerror) {
- $htmlerror=''.$htmlerror.'';
+ my $htmlerror;
+ if ($filetype eq 'html') {
+ $htmlerror=&verify_html($filecontents);
+ if ($htmlerror) {
+ $htmlerror=''.$htmlerror.'';
+ }
}
my $editfooter=(<
- $spelllink $htmlerror
+ $dragmath_button $spelllink $htmlerror
@@ -1828,6 +1856,8 @@ sub error {
$errorcount++;
+ $Apache::lonxml::internal_error=1;
+
if (defined($Apache::inputtags::part)) {
if ( @Apache::inputtags::response ) {
push(@errors,
@@ -1844,15 +1874,17 @@ sub error {
if ( &show_error_warn_msg() ) {
# If printing in construction space, put the error inside
push(@Apache::lonxml::error_messages,
- $Apache::lonxml::warnings_error_header.
- "".&mt('ERROR:')."".join(" \n",@errors)." \n");
+ $Apache::lonxml::warnings_error_header
+ .'
\n");
$Apache::lonxml::warnings_error_header='';
} else {
my $errormsg;
my ($symb)=&Apache::lonnet::symbread();
if ( !$symb ) {
#public or browsers
- $errormsg=&mt("An error occured while processing this resource. The author has been notified.");
+ $errormsg=&mt("An error occurred while processing this resource. The author has been notified.");
}
my $host=$Apache::lonnet::perlvar{'lonHostID'};
push(@errors,
@@ -1891,9 +1923,9 @@ sub error {
}
}
if ($env{'request.role.adv'}) {
- $errormsg=&mt("An error occured while processing this resource. The course personnel ([_1]) and the author have been notified.",join(', ',@userlist));
+ $errormsg=&mt("An error occurred while processing this resource. The course personnel ([_1]) and the author have been notified.",join(', ',@userlist));
} else {
- $errormsg=&mt("An error occured while processing this resource. The instructor has been notified.");
+ $errormsg=&mt("An error occurred while processing this resource. The instructor has been notified.");
}
}
push(@Apache::lonxml::error_messages,"$errormsg ");
@@ -1906,8 +1938,11 @@ sub warning {
if ($env{'form.grade_target'} ne 'tex') {
if ( &show_error_warn_msg() ) {
push(@Apache::lonxml::warning_messages,
- $Apache::lonxml::warnings_error_header.
- "WARNING:".join(' ',@_)." \n");
+ $Apache::lonxml::warnings_error_header
+ .'