--- loncom/xml/scripttag.pm 2013/10/01 00:52:58 1.169
+++ loncom/xml/scripttag.pm 2016/07/01 19:59:25 1.175
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# ';
+ }
+
+
} elsif ($target eq 'meta') {
my $bodytext=&Apache::lonxml::get_all_text_unbalanced("/script",$parser);
}
@@ -141,7 +175,18 @@ sub start_script {
}
}
} elsif (($type eq 'text/javascript') && ($bodytext ne '')) {
- if ($url =~ m{^\Q/uploaded/$cdom/$cnum/docs/\E}) {
+ if ($url =~ m{^\Q/uploaded/$cdom/$cnum/\E(docs|supplemental)/}) {
+ if ($bodytext =~ m{\.addMediaSrc\((["'])((?!\1).)+\1\);}) {
+ my $quote = $1;
+ if ($bodytext =~ m{\Q.addMediaSrc($quote\E([^$quote]+)\Q$quote)\E}) {
+ my $fname = $1;
+ my $cleanhref =
+ &Apache::londefdef::clean_docs_httpref($fname,$url,$cdom,$cnum);
+ if ($cleanhref) {
+ &Apache::lonxml::extlink($cleanhref);
+ }
+ }
+ }
if ($bodytext =~ m{\.set\w+(Src|Swf)\(["']}i) {
my @srcs = split(/\.set/,$bodytext);
if (scalar(@srcs) > 1) {
@@ -168,6 +213,16 @@ sub start_script {
&Apache::lonxml::extlink($spritesheet);
}
}
+#
+# Camtasia 8.4: express_show/spritesheet.min.css needed, and included in zip archive.
+# Not referenced directly in .html or _player.html files,
+# so call lonxml::extlink() here to include httpref for the uploaded file.
+# (where is name user gave to file/archive).
+#
+ my $spritesheet_css = $1.'express_show/spritesheet.min.css';
+ if (&Apache::lonnet::repcopy_userfile($spritesheet_css) eq 'ok') {
+ &Apache::lonxml::extlink($spritesheet_css);
+ }
} elsif ($srctype eq 'PosterImageSrc') {
if ($fname =~ m{^(.+)_First_Frame\.png$}) {
my $prefix = $1;
@@ -189,6 +244,31 @@ sub start_script {
}
}
}
+ if ($bodytext =~ /\(document,\s*(['"])script\1,\s*\[([^\]]+)\]\);/s) {
+ my $scriptslist = $2;
+ my @srcs = split(/\s*,\s*/,$scriptslist);
+ foreach my $src (@srcs) {
+ if ($src =~ /(["'])(?:(?!\1).)+\.js\1/) {
+ my $quote = $1;
+ my ($fname) = ($src =~ m/\Q$quote\E([^$quote]+)\Q$quote\E/);
+ my $cleanhref =
+ &Apache::londefdef::clean_docs_httpref($fname,$url,$cdom,$cnum);
+ if ($cleanhref) {
+ &Apache::lonxml::extlink($cleanhref);
+ }
+ }
+ }
+ }
+ if ($bodytext =~ m{loadScript\(\s*(['"])((?:(?!\1).)+\.js)\1,\s*function}is) {
+ my $fname = $2;
+ if ($fname) {
+ my $cleanhref =
+ &Apache::londefdef::clean_docs_httpref($fname,$url,$cdom,$cnum);
+ if ($cleanhref) {
+ &Apache::lonxml::extlink($cleanhref);
+ }
+ }
+ }
}
}
}
@@ -284,7 +364,7 @@ sub start_scriptlib {
$result=
&Apache::edit::tag_start($target,$token,'New Script Functions').
&Apache::edit::editline($token->[1],$bodytext,'scriptlib',40).
- &Apache::edit::browse(undef,'textnode').
+ &Apache::edit::browse_or_search(undef,'textnode').
$error.''.
&Apache::edit::end_table();
}
@@ -536,9 +616,11 @@ sub start_import {
my $location=$token->[1];
$location=~s/^\s*//s;
$location=~s/\s*$//s;
+ my $crsonly = join(',',(&Apache::loncommon::filecategorytypes('Problem'),
+ &Apache::loncommon::filecategorytypes('Library')));
$result.=&Apache::edit::editline($location,$bodytext,'',40);
- $result.=&Apache::edit::browse(undef,'textnode');
- $result.= ' ';
#FIXME this need to convert $bodytext to be a contruction space reference
#my $location=&Apache::lonnet::filelocation($Apache::lonxml::pwd['-1'],$bodytext);
#$result.="Clickhere to edit
"
@@ -599,12 +681,14 @@ sub end_storetc {
sub start_physnet {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
- my $bodytext = '/adm/includes/physnet.sty';
+ my $bodytext = '/res/adm/includes/physnet.sty';
my $location=&Apache::lonnet::filelocation($Apache::lonxml::pwd['-1'],$bodytext);
my $cbistyletext=&Apache::lonnet::getfile($location);
%$style = (%$style,&Apache::style::styleparser($target,$cbistyletext));
- $$parser['-1']->unget_token($token);
+ if (keys(%$style) && (($target eq 'web') || ($target eq 'tex'))) {
+ $$parser['-1']->unget_token($token);
+ }
# if ( defined($$style{'physnet'}) ) {
# &Apache::lonxml::newparser($parser,\$$style{'physnet'});
# }