--- loncom/interface/londocs.pm 2023/07/20 22:12:39 1.704 +++ loncom/interface/londocs.pm 2023/09/27 14:52:26 1.705 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.704 2023/07/20 22:12:39 raeburn Exp $ +# $Id: londocs.pm,v 1.705 2023/09/27 14:52:26 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -4734,7 +4734,7 @@ END } $nomodal = 1; } - } elsif (($uploaded) && (!$allowed) && ($url ne '/adm/supplemental?')) { + } elsif (($uploaded) && ($url ne '/adm/supplemental?') && ($url ne '/adm/coursedocs?')) { my $embstyle=&Apache::loncommon::fileembstyle($extension); unless ($embstyle eq 'ssi') { if (($embstyle eq 'img') @@ -4840,7 +4840,7 @@ $form_common."\n". ''. $form_end; } - } elsif ($supplementalflag && !$allowed) { + } elsif ($supplementalflag) { my $isexttool; if ($url=~m{^/adm/$coursedom/$coursenum/\d+/ext\.tool$}) { $url='/adm/wrapper'.$url; @@ -4935,12 +4935,20 @@ $form_end; $anchor = '#'.&HTML::Entities::encode($anchor,'"<>&'); } } - if ((!$supplementalflag) && ($nomodal) && ($hostname ne '')) { + if (($nomodal) && ($hostname ne '')) { $link = 'http://'.$hostname.$url; } else { $link = $url; } - $link = &js_escape($link.(($url=~/\?/)?'&':'?').'inhibitmenu=yes'.$anchor); + my $inhibitmenu; + if ((($supplementalflag) && ($allowed) && ($url =~ m{^/adm/wrapper/})) || + (($allowed) && (($url =~ m{^/adm/(viewclasslist|$match_domain/$match_username/aboutme)(\?|$)}) || + ($url =~ m{^/public/$match_domain/$match_courseid/syllabus(\?|$)})))) { + $inhibitmenu = 'only_body=1'; + } else { + $inhibitmenu = 'inhibitmenu=yes'; + } + $link = &js_escape($link.(($url=~/\?/)?'&':'?').$inhibitmenu.$anchor); if ($allowed && !$env{'request.role.adv'} && !$isfolder && !$ispage && !$uploaded) { if ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i) { $nolink = 1; @@ -6059,8 +6067,11 @@ sub handler { } if ($env{'form.forcesupplement'}) { $supplementalflag=1; } if ($env{'form.forcestandard'}) { $supplementalflag=0; } - unless ($allowed) { $supplementalflag=1; } - unless ($standard) { $supplementalflag=1; } + unless (($supplementalflag) || + ($r->uri =~ m{^/adm/coursedocs/showdoc/uploaded/\Q$coursedom\E/\Q$coursenum\E/docs/})) { + unless ($allowed) { $supplementalflag=1; } + unless ($standard) { $supplementalflag=1; } + } my $toolsflag=0; if ($env{'form.tools'}) { $toolsflag=1; } @@ -6136,9 +6147,9 @@ sub handler { &Apache::loncommon::validate_folderpath($supplementalflag,$allowed,$coursenum,$coursedom); } } - -# If we are not allowed to make changes, all we can see are supplemental docs - if (!$allowed) { + +# If we are not allowed to make changes and this is supplemental content set folderpath + if ((!$allowed) && ($supplementalflag)) { unless ($env{'form.folderpath'} =~ /^supplemental/) { $env{'form.folderpath'} = &supplemental_base(); } @@ -6369,7 +6380,8 @@ sub handler { if ($supplementalflag) { my $title = &HTML::Entities::encode($env{'form.title'},'\'"<>&'); my $brcrum = &Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1); - $args = {'bread_crumbs' => $brcrum}; + $args = {'bread_crumbs' => $brcrum, + 'bread_crumbs_nomenu' => 1}; } else { $args = {'force_register' => $showdoc}; } @@ -6398,8 +6410,13 @@ sub handler { } } my $brcrum = &Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype); + my $args = {'bread_crumbs' => $brcrum}; + unless (($env{'form.folderpath'} eq '') || + ($env{'form.folder'} eq 'supplemental')) { + $args->{'bread_crumbs_nomenu'} = 1; + } $r->print(&Apache::loncommon::start_page("Supplemental $crstype Content",undef, - {'bread_crumbs' => $brcrum,})); + $args)); } else { my ($breadtext,$breadtitle,$helpitem); $breadtext = "$crstype Editor";