--- loncom/interface/lonsyllabus.pm 2013/09/01 01:12:01 1.132
+++ loncom/interface/lonsyllabus.pm 2016/02/20 00:12:40 1.140
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Syllabus
#
-# $Id: lonsyllabus.pm,v 1.132 2013/09/01 01:12:01 raeburn Exp $
+# $Id: lonsyllabus.pm,v 1.140 2016/02/20 00:12:40 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -35,6 +35,7 @@ use Apache::loncommon;
use Apache::lonnet;
use Apache::lontexconvert;
use Apache::lonfeedback;
+use Apache::lonhtmlgateway;
use Apache::lonannounce;
use Apache::lonlocal;
use Apache::lonhtmlcommon;
@@ -98,7 +99,7 @@ sub handler {
my $minimal=$courseenv{'minimalsyllabus'};
if (($minimal =~/\w/) || ($uploaded =~/\w/)) {
- my $item;
+ my ($item,$is_pdf);
if ($minimal =~/\w/) {
if ($external =~ m{\Q$minimal\E$}) {
undef($external);
@@ -109,6 +110,9 @@ sub handler {
undef($external);
}
$item = $uploaded;
+ if ($item =~ /\.pdf$/i) {
+ $is_pdf = 1;
+ }
}
unless ($allowed && $forceedit) {
my $file=&Apache::lonnet::filelocation("",$item);
@@ -121,13 +125,21 @@ sub handler {
if ($target eq 'tex') {
$r->print($filecontents);
} else {
- my $result = &Apache::lontexconvert::converted(\$filecontents,
- $env{'form.texengine'});
+ my $texengine = $env{'form.texengine'};
+ if ($texengine eq '') {
+ $texengine = 'tth';
+ } elsif (lc($texengine) eq 'jsmath') {
+ $texengine = 'MathJax';
+ }
+ my $result = &Apache::lontexconvert::converted(\$filecontents,$texengine);
my %args;
&get_breadcrumbs($cdom,$cnum,$crstype,\%args);
if ($env{'form.only_body'}) {
$args{'only_body'} = 1;
}
+ if ($env{'request.use_absolute'}) {
+ $args{'use_absolute'} = $env{'request.use_absolute'};
+ }
$r->print(&Apache::loncommon::start_page("Syllabus",undef,\%args).
$result.
&Apache::loncommon::end_page());
@@ -156,7 +168,8 @@ sub handler {
&mt('Print the syllabus directly from your web browser').
'\end{document}');
} else {
- $r->print(&Apache::lonwrapper::wrapper($item));
+ $r->print(&Apache::lonwrapper::wrapper($item,undef,$env{'request.use_absolute'},
+ undef,$is_pdf,undef,&mt('Syllabus')));
}
}
return OK;
@@ -169,7 +182,13 @@ sub handler {
' \strut \\\\ '.&mt('Print the syllabus directly from your web browser').
'\end{document}');
} else {
- $r->print(&Apache::lonwrapper::wrapper($external));
+ my $is_ext = 1;
+ my $is_pdf;
+ if ($external =~ /\.pdf$/i) {
+ $is_pdf = 1;
+ }
+ $r->print(&Apache::lonwrapper::wrapper($external,undef,$env{'request.use_absolute'},
+ $is_ext,$is_pdf,undef,&mt('Syllabus')));
}
return OK;
}
@@ -409,7 +428,7 @@ sub handler {
}
$rsslinktext = &mt('Manage Course RSS Feeds/Blogs');
if ($crstype eq 'Community') {
- $rsslinktext = &mt('Manage Communiity RSS Feeds/Blogs');
+ $rsslinktext = &mt('Manage Community RSS Feeds/Blogs');
}
}
my $editurl= &Apache::lonnet::absolute_url().'/adm/'.$cdom.'/'.$cnum.'/_rss.html';
@@ -566,6 +585,7 @@ ENDSCRIPT
my $checkedstr = "var include = new Array('".join("','",@checked)."');";
my $uncheckedstr = "var exclude = new Array('".join("','",@unchecked)."');";
my $invurl = &mt('Invalid URL');
+ &js_escape(\$invurl);
my $urlregexp = <<'ENDREGEXP';
/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i
ENDREGEXP
@@ -694,6 +714,10 @@ ENDSCRIPT
onload => 'setTemplateBoxes();',
);
$args->{'add_entries'} = \%loaditem;
+ } else {
+ if ($env{'request.use_absolute'}) {
+ $args->{'use_absolute'} = $env{'request.use_absolute'};
+ }
}
if ($env{'form.only_body'}) {
$args->{'only_body'} = 1;
@@ -1174,10 +1198,8 @@ sub save_changes {
foreach my $syl_field (keys(%{$syllabusfields})) {
my $field=$env{'form.'.$syl_field};
chomp($field);
- $field=~s/\s+$//s;
- $field=~s/^\s+//s;
- $field=~s/\
$//s;
- $field=&Apache::lonfeedback::clear_out_html($field,1);
+ my $gateway = Apache::lonhtmlgateway->new();
+ $field = $gateway->process_incoming_html($field,1);
#here it will be stored
$syllabus->{$syl_field}=$field;
if ($syl_field eq 'lll_includeurl') { # clean up included URLs
@@ -1272,7 +1294,7 @@ sub save_changes {
($url,$needlink) = &process_upload(\$output,$cnum,$cdom,
\%allfiles,\%codebase);
} else {
- $output = '