--- loncom/interface/lonhtmlcommon.pm 2021/12/13 22:03:32 1.358.2.19
+++ loncom/interface/lonhtmlcommon.pm 2022/09/19 19:38:49 1.358.2.19.2.4
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.358.2.19 2021/12/13 22:03:32 raeburn Exp $
+# $Id: lonhtmlcommon.pm,v 1.358.2.19.2.4 2022/09/19 19:38:49 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -78,7 +78,11 @@ sub java_not_enabled {
sub coursepreflink {
my ($text,$category)=@_;
if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) {
- return '&"').'">'.$text.'';
+ my $target =' target="_top"';
+ if (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self')) {
+ $target = '';
+ }
+ return '&"').'">'.$text.'';
} else {
return '';
}
@@ -101,7 +105,11 @@ sub direct_parm_link {
$filter=&entity_encode($filter);
$part=&entity_encode($part);
if (($symb) && (&Apache::lonnet::allowed('opa')) && ($target ne 'tex')) {
- return "$linktext";
+ my $target=' target="_top"';
+ if (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self')) {
+ $target = '';
+ }
+ return "$linktext";
} else {
return $linktext;
}
@@ -848,13 +856,14 @@ parameter setting wizard.
##############################################
sub pjump_javascript_definition {
my $Str = <{'main'} eq 'n') {
+ undef($menulink);
+ }
+ }
+ }
+ }
+ if ($menulink) {
my $description = 'Menu';
my $no_mt_descr = 0;
if ((exists($env{'request.course.id'})) &&
@@ -1841,9 +1861,15 @@ returns: nothing
}
}
}
+ my $target = '_top';
+ if ($links_target) {
+ $target = $links_target;
+ } elsif (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self')) {
+ $target = '';
+ }
$menulink = { href =>'/adm/menu',
title =>'Go to main menu',
- target =>'_top',
+ target =>$target,
text =>$description,
no_mt =>$no_mt_descr, };
if($last) {
@@ -1861,8 +1887,8 @@ returns: nothing
title => &mt('Back to most recent content resource'),
class => 'LC_menubuttons_link',
};
- if ($env{'request.noversionuri'} eq '/adm/searchcat') {
- $hashref->{'target'} = '_top';
+ if ($links_target) {
+ $hashref->{'target'} = $links_target;
}
$links=&htmltag( 'a','',
$hashref);
@@ -1913,11 +1939,12 @@ returns: nothing
if ($faq ne '' || $component_help ne '' || $bug ne '') {
$icons .= &Apache::loncommon::help_open_menu($component,
$component_help,
- $faq,$bug);
+ $faq,$bug,'','','','',
+ $links_target);
}
if ($topic_help && $topic_help_text) {
$icons .= ' '.&Apache::loncommon::help_open_topic($topic_help,&mt($topic_help_text),'',
- undef,600);
+ undef,600,'',$links_target);
}
#
@@ -2095,7 +2122,7 @@ returns: nothing
} # End of scope for @Crumbs
sub docs_breadcrumbs {
- my ($allowed,$crstype,$contenteditor,$title,$precleared)=@_;
+ my ($allowed,$crstype,$contenteditor,$title,$precleared,$checklinkprot)=@_;
my ($folderpath,@folders,$supplementalflag);
@folders = split('&',$env{'form.folderpath'});
if ($env{'form.folderpath'} =~ /^supplemental/) {
@@ -2166,6 +2193,14 @@ sub docs_breadcrumbs {
if (!$allowed && !$contenteditor) {
$menulink = 1;
}
+ if ($checklinkprot) {
+ if ($env{'request.deeplink.login'}) {
+ my $linkprotout = &Apache::lonmenu::linkprot_exit();
+ if ($linkprotout) {
+ &Apache::lonhtmlcommon::add_breadcrumb_tool('tools',$linkprotout);
+ }
+ }
+ }
return (&breadcrumbs(undef,undef,$menulink,'nohelp',undef,undef,
$contenteditor),
$randompick,$ishidden,$isencrypted,$plain,
@@ -3385,7 +3420,10 @@ THIRD
sub javascript_jumpto_resource {
my $confirm_switch = &mt("Editing requires switching to the resource's home server.")."\n".
&mt('Switch server?');
+ my $confirm_new_tab = &mt("Editing requires using the resource's home server.")."\n".
+ &mt('Open a new browser tab?');
&js_escape(\$confirm_switch);
+ &js_escape(\$confirm_new_tab);
return (<&');
- if ($symb) {
- $cfile .= '&symb='.&HTML::Entities::encode($symb,'"<>&');
+ if ($shownsymb) {
+ $cfile .= '&symb='.&HTML::Entities::encode($shownsymb,'"<>&');
+ if ($resedit) {
+ $cfile .= '&edit=1';
+ }
} elsif ($folderpath) {
$cfile .= '&folderpath='.&HTML::Entities::encode($folderpath,'"<>&');
}
@@ -3438,7 +3500,7 @@ sub jump_to_editres {
if ($forcereg) {
$cfile .= '®ister=1';
}
- $jscall = "need_switchserver('".&Apache::loncommon::escape_single($cfile)."');";
+ $jscall = "need_switchserver('".&Apache::loncommon::escape_single($cfile)."','$target')";
}
} else {
unless ($cfile =~ m{^/priv/}) {