--- loncom/interface/lonhtmlcommon.pm 2022/06/30 21:04:14 1.405
+++ loncom/interface/lonhtmlcommon.pm 2024/06/03 20:41:06 1.413
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.405 2022/06/30 21:04:14 raeburn Exp $
+# $Id: lonhtmlcommon.pm,v 1.413 2024/06/03 20:41:06 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -231,15 +231,16 @@ sub dependencycheck_js {
$link = '/adm/dependencies?symb='.&HTML::Entities::encode($symb,'<>&"');
} elsif ($folderpath) {
$link = '/adm/dependencies?folderpath='.&HTML::Entities::encode($folderpath,'<>&"');
- $url = $uri;
+ $url = $uri;
} elsif ($uri =~ m{^/public/$match_domain/$match_courseid/syllabus$}) {
$link = '/adm/dependencies';
}
- $link .= (($link=~/\?/)?'&':'?').'title='.
+ $link .= (($link=~/\?/)?'&':'?').'title='.
&HTML::Entities::encode($title,'<>&"');
if ($url) {
$link .= '&url='.&HTML::Entities::encode($url,'<>&"');
}
+ &js_escape(\$link);
return <
//
-
-
+
+
+
@@ -1737,7 +1738,11 @@ sub show_return_link {
unless ($env{'request.course.id'}) { return 0; }
if ($env{'request.noversionuri'}=~m{^/priv/} ||
$env{'request.uri'}=~m{^/priv/}) { return 1; }
- return if ($env{'request.noversionuri'} eq '/adm/supplemental');
+ return if (($env{'request.noversionuri'} eq '/adm/supplemental') &&
+ ($env{'form.folder'} ne 'supplemental'));
+ return if (($env{'form.folderpath'} ne '') &&
+ (($env{'request.noversionuri'} =~ m{^/adm/$match_domain/$match_username/aboutme$}) ||
+ ($env{'request.noversionuri'} =~ m{^/public/$match_domain/$match_courseid/syllabus$})));
return if (($env{'course.'.$env{'request.course.id'}.'.type'} eq 'Placement') &&
(!$env{'request.role.adv'}));
if (($env{'request.noversionuri'} =~ m{^/adm/viewclasslist($|\?)})
@@ -1745,6 +1750,19 @@ sub show_return_link {
return if ($env{'form.register'});
}
+ if ((($env{'request.symb'} ne '') || ($env{'form.folderpath'} ne '')) &&
+ ($env{'request.noversionuri'} =~m{^/adm/coursedocs/showdoc/uploaded/($match_domain)/($match_courseid)/(docs|supplemental)/})) {
+ my ($cdom,$cnum,$area) = ($1,$2,$3);
+ if (($env{'course.'.$env{'request.course.id'}.'.domain'} eq $cdom) &&
+ ($env{'course.'.$env{'request.course.id'}.'.num'} eq $cnum)) {
+ if (($env{'request.symb'}) && ($area eq 'docs')) {
+ my ($map,$resid,$url) = &Apache::lonnet::decode_symb($env{'request.symb'});
+ return if ($env{'request.noversionuri'} eq '/adm/coursedocs/showdoc/'.$url);
+ } elsif (($env{'form.folderpath'}) && ($area eq 'supplemental')) {
+ return;
+ }
+ }
+ }
return (($env{'request.noversionuri'}=~m{^/(res|public)/} &&
$env{'request.symb'} eq '')
||
@@ -1813,6 +1831,54 @@ clientTime = (new Date()).getTime();
END
}
+##
+# Client-side javascript to convert any dashes in text pasted
+# into textbox(es) for numericalresponse item(s) to a standard
+# minus, i.e., - . Calls to dash_to_minus_js() in end_problem()
+# and in loncommon::endbodytag() for a .page (arg: dashjs => 1)
+#
+# Will apply to any input tag with class: LC_numresponse_text.
+# Currently set in start_textline for numericalresponse items.
+#
+
+sub dash_to_minus_js {
+ return <<'ENDJS';
+
+
+
+ENDJS
+}
+
############################################################
############################################################
@@ -2263,8 +2329,10 @@ sub docs_breadcrumbs {
# each of randompick number, hidden, encrypted, random order, is_page
# are appended with ":"s to the foldername
$name=~s/\:(\d*)\:(\w*)\:(\w*):(\d*)\:?(\d*)$//;
- unless ($supplementalflag) {
- if ($contenteditor) {
+ if ($contenteditor) {
+ if ($supplementalflag) {
+ if ($2) { $ishidden=1; }
+ } else {
if ($1 ne '') {
$randompick=$1;
} else {
@@ -2305,7 +2373,7 @@ sub docs_breadcrumbs {
$plain=~s/\>\;\s*$//;
}
my $menulink = 0;
- if (!$allowed && !$contenteditor) {
+ if (!$allowed && !$contenteditor && !$supplementalflag) {
$menulink = 1;
}
if ($checklinkprot) {
@@ -3535,7 +3603,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,'"<>&');
}
@@ -3588,7 +3683,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/}) {