--- rat/lonwrapper.pm 2019/05/02 02:12:31 1.69
+++ rat/lonwrapper.pm 2021/10/19 00:16:32 1.77
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Wrapper for external and binary files as standalone resources
#
-# $Id: lonwrapper.pm,v 1.69 2019/05/02 02:12:31 raeburn Exp $
+# $Id: lonwrapper.pm,v 1.77 2021/10/19 00:16:32 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -56,6 +56,9 @@ sub wrapper {
'show' => 'Show content in pop-up window',
);
+ (undef,undef,undef,undef,undef,undef,my $clientmobile) =
+ &Apache::loncommon::decode_user_agent($r);
+
my ($anchor,$uselink);
if ($is_ext) {
if ($env{'form.symb'}) {
@@ -66,7 +69,7 @@ sub wrapper {
} elsif ($env{'form.anchor'} ne '') {
$anchor = '#'.$env{'form.anchor'};
}
- unless (($is_pdf) && ($env{'browser.mobile'})) {
+ unless (($is_pdf) && ($clientmobile)) {
my $hostname = $r->hostname();
my $lonhost = $r->dir_config('lonHostID');
my $ip = &Apache::lonnet::get_host_ip($lonhost);
@@ -89,7 +92,7 @@ sub wrapper {
$args->{'only_body'} = $env{'form.only_body'};
}
- my ($countdown,$donemsg);
+ my ($countdown,$donemsg,$headjs);
if (($exttool) && (&Apache::lonnet::EXT('resource.0.gradable') =~ /^yes$/i)) {
$Apache::lonhomework::browse = &Apache::lonnet::allowed('bre',$url);
if ($env{'form.markaccess'}) {
@@ -135,7 +138,24 @@ sub wrapper {
}
}
- my $startpage = &Apache::loncommon::start_page('Menu',undef,$args).$countdown.$donemsg;
+#
+# Where iframe is in use, if window.onload() executes before the custom resize function
+# has been defined (jQuery), two global javascript vars (LCnotready and LCresizedef)
+# are used to ensure document.ready() triggers a call to resize, so the iframe contents
+# do not obscure the Functions menu.
+#
+
+ unless ($clientmobile || ($exttool eq 'window') || ($exttool eq 'tab') || $uselink) {
+ $headjs = '
+'."\n";
+ }
+
+ my $startpage = &Apache::loncommon::start_page('Menu',$headjs,$args).$countdown.$donemsg;
my $endpage = &Apache::loncommon::end_page();
if (($uselink) && ($title eq '')) {
@@ -148,7 +168,7 @@ sub wrapper {
}
}
}
- if (($env{'browser.mobile'}) || ($exttool eq 'window') || ($exttool eq 'tab')) {
+ if ($clientmobile || ($exttool eq 'window') || ($exttool eq 'tab')) {
my $output = $startpage;
if ($is_pdf) {
$linktext = &mt('Link to PDF (for mobile devices)');
@@ -167,9 +187,9 @@ sub wrapper {
$output .= <<"ENDLINK";