--- loncom/interface/lonhtmlcommon.pm 2023/01/23 05:47:50 1.358.2.19.2.6
+++ loncom/interface/lonhtmlcommon.pm 2024/10/21 15:44:06 1.358.2.19.2.12
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.358.2.19.2.6 2023/01/23 05:47:50 raeburn Exp $
+# $Id: lonhtmlcommon.pm,v 1.358.2.19.2.12 2024/10/21 15:44:06 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1277,9 +1277,9 @@ sub htmlareaheaders {
ENDEDITOR
}
$s.=(<
-
-
+
+
+
@@ -1687,13 +1687,29 @@ 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$})));
if (($env{'request.noversionuri'} =~ m{^/adm/viewclasslist($|\?)})
|| ($env{'request.noversionuri'} =~ m{^/adm/.*/aboutme($|\?)})) {
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 '')
||
@@ -1762,6 +1778,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
+}
+
############################################################
############################################################
@@ -1780,7 +1844,8 @@ Inputs: $component (the text on the righ
$component_help (the help item filename (without .tex extension).
$menulink (boolean, controls whether to include a link to /adm/menu)
$helplink (if 'nohelp' don't include the orange help link)
- $css_class (optional name for the class to apply to the table for CSS)
+ $crumbs_style (optional style attribute for div containing breadcrumbs
+ unless called from docs_breadcrumbs)
$no_mt (optional flag, 1 if &mt() is _not_ to be applied to $component
when including the text on the right.
$CourseBreadcrumbs (optional flag, 1 if &breadcrumbs called from &docs_breadcrumbs,
@@ -1817,11 +1882,9 @@ returns: nothing
my %tools = ();
sub breadcrumbs {
- my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt,
+ my ($component,$component_help,$menulink,$helplink,$crumbs_style,$no_mt,
$CourseBreadcrumbs,$topic_help,$topic_help_text,$links_target) = @_;
#
- $css_class ||= 'LC_breadcrumbs';
-
# Make the faq and bug data cascade
my $faq = '';
my $bug = '';
@@ -1974,8 +2037,13 @@ returns: nothing
}
if (($links ne '') || ($nav_and_tools)) {
&render_tools(\$links);
- $links = &htmltag('div', $links,
- { id => "LC_breadcrumbs" }) unless ($CourseBreadcrumbs) ;
+ unless ($CourseBreadcrumbs) {
+ my $args = { id => 'LC_breadcrumbs' };
+ if ($crumbs_style ne '') {
+ $args->{'style'} = $crumbs_style;
+ }
+ $links = &htmltag('div', $links, $args);
+ }
}
my $adv_tools = 0;
if (ref($tools{'advtools'}) eq 'ARRAY') {
@@ -2192,7 +2260,7 @@ sub docs_breadcrumbs {
$plain=~s/\>\;\s*$//;
}
my $menulink = 0;
- if (!$allowed && !$contenteditor) {
+ if (!$allowed && !$contenteditor && !$supplementalflag) {
$menulink = 1;
}
if ($checklinkprot) {
@@ -3473,10 +3541,6 @@ sub jump_to_editres {
if ($cfile =~ m{^/priv/($match_domain)/($match_username)/}) {
my ($audom,$auname) = ($1,$2);
unless (&Apache::lonnet::is_course($audom,$auname)) {
- unless ((&Apache::lonnet::will_trust('othcoau',$env{'user.domain'},$audom)) &&
- (&Apache::lonnet::will_trust('coaurem',$audom,$env{'user.domain'}))) {
- return;
- }
if (($symb ne '') && ($env{'request.course.id'}) &&
(&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) {
unless (&Apache::lonnet::can_switchserver($env{'user.domain'},$home)) {