--- loncom/interface/lonhtmlcommon.pm 2024/09/18 14:20:24 1.358.2.19.2.11 +++ loncom/interface/lonhtmlcommon.pm 2023/09/11 14:13:31 1.358.2.20 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.358.2.19.2.11 2024/09/18 14:20:24 raeburn Exp $ +# $Id: lonhtmlcommon.pm,v 1.358.2.20 2023/09/11 14:13:31 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -78,11 +78,7 @@ sub java_not_enabled { sub coursepreflink { my ($text,$category)=@_; if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) { - my $target =' target="_top"'; - if (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self')) { - $target = ''; - } - return '&"').'">'.$text.''; + return '&"').'">'.$text.''; } else { return ''; } @@ -105,11 +101,7 @@ sub direct_parm_link { $filter=&entity_encode($filter); $part=&entity_encode($part); if (($symb) && (&Apache::lonnet::allowed('opa')) && ($target ne 'tex')) { - my $target=' target="_top"'; - if (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self')) { - $target = ''; - } - return "$linktext"; + return "$linktext"; } else { return $linktext; } @@ -856,14 +848,13 @@ parameter setting wizard. ############################################## sub pjump_javascript_definition { my $Str = < - - + + + @@ -1687,29 +1678,13 @@ 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') && - ($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($|\?)}) + return if ($env{'request.noversionuri'} eq '/adm/supplemental'); + + if (($env{'request.noversionuri'} =~ m{^/adm/(viewclasslist|navmaps)($|\?)}) || ($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 '') || @@ -1718,7 +1693,7 @@ sub show_return_link { (($env{'request.noversionuri'}=~/^\/adm\//) && ($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) && ($env{'request.noversionuri'}!~ - m{^/adm/.*/(smppg|bulletinboard|ext\.tool)($|\?)}) + m{^/adm/.*/(smppg|bulletinboard)($|\?)}) )); } @@ -1797,19 +1772,13 @@ sub dash_to_minus_js { document.addEventListener("DOMContentLoaded", (event) => { const numresp = document.querySelectorAll("input.LC_numresponse_text"); if (numresp.length > 0) { - Array.from(numresp).forEach((el) => { + numresp.forEach((el) => { el.addEventListener("paste", (e) => { e.preventDefault(); e.stopPropagation(); let p = (e.clipboardData || window.clipboardData).getData("text"); p.toString(); - var regex; - try - { - regex = new RegExp ("\\p{Dash}", "gu"); - } - catch (e) { regex = new RegExp ("[\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2E3A\\u2E3B\\u2E5D\\u301C\\uFE58\\uFE63\\uFF0D]","g"); } - p = p.replace(regex,'-'); + p = p.replace(/\p{Dash}/gu, '-'); putInText(p); }); }); @@ -1844,8 +1813,7 @@ 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) - $crumbs_style (optional style attribute for div containing breadcrumbs - unless called from docs_breadcrumbs) + $css_class (optional name for the class to apply to the table for CSS) $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, @@ -1854,7 +1822,6 @@ Inputs: $component (the text on the righ row, using loncommon::help_open_topic() to generate the link. $topic_help_text (text to include in the link in the optional help item on the right side of the breadcrumbs row. - $links_target optionally includes the target (_top, _parent or _self) Returns a string containing breadcrumbs for the current page. @@ -1882,9 +1849,11 @@ returns: nothing my %tools = (); sub breadcrumbs { - my ($component,$component_help,$menulink,$helplink,$crumbs_style,$no_mt, - $CourseBreadcrumbs,$topic_help,$topic_help_text,$links_target) = @_; + my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt, + $CourseBreadcrumbs,$topic_help,$topic_help_text) = @_; # + $css_class ||= 'LC_breadcrumbs'; + # Make the faq and bug data cascade my $faq = ''; my $bug = ''; @@ -1897,16 +1866,6 @@ returns: nothing # The first one should be the course or a menu link if (!defined($menulink)) { $menulink=1; } if ($menulink) { - if ($env{'request.course.id'}) { - my ($menucoll,$deeplinkmenu,$menuref) = &Apache::loncommon::menucoll_in_effect(); - if (($menucoll) && (ref($menuref) eq 'HASH')) { - if ($menuref->{'main'} eq 'n') { - undef($menulink); - } - } - } - } - if ($menulink) { my $description = 'Menu'; my $no_mt_descr = 0; if ((exists($env{'request.course.id'})) && @@ -1924,15 +1883,9 @@ 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 =>$target, + target =>'_top', text =>$description, no_mt =>$no_mt_descr, }; if($last) { @@ -1950,8 +1903,8 @@ returns: nothing title => &mt('Back to most recent content resource'), class => 'LC_menubuttons_link', }; - if ($links_target) { - $hashref->{'target'} = $links_target; + if ($env{'request.noversionuri'} eq '/adm/searchcat') { + $hashref->{'target'} = '_top'; } $links=&htmltag( 'a',''.$alttext.'', $hashref); @@ -2002,12 +1955,11 @@ returns: nothing if ($faq ne '' || $component_help ne '' || $bug ne '') { $icons .= &Apache::loncommon::help_open_menu($component, $component_help, - $faq,$bug,'','','','', - $links_target); + $faq,$bug); } if ($topic_help && $topic_help_text) { $icons .= ' '.&Apache::loncommon::help_open_topic($topic_help,&mt($topic_help_text),'', - undef,600,'',$links_target); + undef,600); } # @@ -2037,13 +1989,8 @@ returns: nothing } if (($links ne '') || ($nav_and_tools)) { &render_tools(\$links); - unless ($CourseBreadcrumbs) { - my $args = { id => 'LC_breadcrumbs' }; - if ($crumbs_style ne '') { - $args->{'style'} = $crumbs_style; - } - $links = &htmltag('div', $links, $args); - } + $links = &htmltag('div', $links, + { id => "LC_breadcrumbs" }) unless ($CourseBreadcrumbs) ; } my $adv_tools = 0; if (ref($tools{'advtools'}) eq 'ARRAY') { @@ -2190,7 +2137,7 @@ returns: nothing } # End of scope for @Crumbs sub docs_breadcrumbs { - my ($allowed,$crstype,$contenteditor,$title,$precleared,$checklinkprot)=@_; + my ($allowed,$crstype,$contenteditor,$title,$precleared)=@_; my ($folderpath,@folders,$supplementalflag); @folders = split('&',$env{'form.folderpath'}); if ($env{'form.folderpath'} =~ /^supplemental/) { @@ -2216,10 +2163,8 @@ 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*)$//; - if ($contenteditor) { - if ($supplementalflag) { - if ($2) { $ishidden=1; } - } else { + unless ($supplementalflag) { + if ($contenteditor) { if ($1 ne '') { $randompick=$1; } else { @@ -2260,17 +2205,9 @@ sub docs_breadcrumbs { $plain=~s/\>\;\s*$//; } my $menulink = 0; - if (!$allowed && !$contenteditor && !$supplementalflag) { + 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, @@ -3490,10 +3427,7 @@ 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 ($shownsymb) { - $cfile .= '&symb='.&HTML::Entities::encode($shownsymb,'"<>&'); - if ($resedit) { - $cfile .= '&edit=1'; - } + if ($symb) { + $cfile .= '&symb='.&HTML::Entities::encode($symb,'"<>&'); } elsif ($folderpath) { $cfile .= '&folderpath='.&HTML::Entities::encode($folderpath,'"<>&'); } @@ -3566,7 +3480,7 @@ sub jump_to_editres { if ($forcereg) { $cfile .= '&register=1'; } - $jscall = "need_switchserver('".&Apache::loncommon::escape_single($cfile)."','$target')"; + $jscall = "need_switchserver('".&Apache::loncommon::escape_single($cfile)."');"; } } else { unless ($cfile =~ m{^/priv/}) {