--- loncom/interface/lonhtmlcommon.pm 2023/01/21 21:20:54 1.358.2.19.2.5 +++ loncom/interface/lonhtmlcommon.pm 2017/11/16 13:31:29 1.390 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.358.2.19.2.5 2023/01/21 21:20:54 raeburn Exp $ +# $Id: lonhtmlcommon.pm,v 1.390 2017/11/16 13:31:29 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; } @@ -459,10 +451,12 @@ sub radio { &date_setter returns html and javascript for a compact date-setting form. To retrieve values from it, use &get_date_from_form. -Inputs - =over 4 +=item Inputs + +=over + =item $dname The name to prepend to the form elements. @@ -523,10 +517,12 @@ If true, text boxes for seconds are omit =back -Bugs +=item Bugs The method used to restrict user input will fail in the year 2400. +=back + =cut ############################################## @@ -693,11 +689,13 @@ ENDJS $monthselector,$dayselector,$yearselector, $hourselector). $tzone; + } elsif ($no_ss) { $result .= &mt('[_1] [_2] [_3] [_4] [_5]m', $monthselector,$dayselector,$yearselector, $hourselector,$minuteselector). $tzone; + } else { $result .= &mt('[_1] [_2] [_3] [_4] [_5]m [_6]s ', $monthselector,$dayselector,$yearselector, @@ -749,7 +747,9 @@ sub build_url { get_date_from_form retrieves the date specified in an &date_setter form. -Inputs: +=over + +=item Inputs: =over 4 @@ -763,6 +763,8 @@ The unix time to use as the default in c =back +=back + Returns: Unix time represented in the form. =cut @@ -856,14 +858,13 @@ 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'})) && @@ -1861,15 +1914,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) { @@ -1887,8 +1934,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); @@ -1939,12 +1986,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); } # @@ -2013,7 +2059,9 @@ Adds $html to $category of the breadcrum $html is usually a link to a page that invokes a function on the currently displayed data (e.g. print when viewing a problem) -Currently there are 3 possible values for $category: +=over + +=item Currently there are 3 possible values for $category: =over @@ -2027,7 +2075,9 @@ remaining items in right of breadcrumbs advanced tools shown in a separate box below breadcrumbs line =back - + +=back + returns: nothing =cut @@ -2076,8 +2126,17 @@ returns: a hash containing the current b Creates html for breadcrumb tools (categories navigation and tools) and inserts \$breadcrumbs at the correct position. -input: \$breadcrumbs - a reference to the string containing prepared -breadcrumbs. +=over + +=item input: + +=over + +=item \$breadcrumbs - a reference to the string containing prepared breadcrumbs. + +=back + +=back returns: nothing @@ -2103,8 +2162,17 @@ returns: nothing Creates html for advanced tools (category advtools) and inserts \$breadcrumbs at the correct position. -input: \$breadcrumbs - a reference to the string containing prepared -breadcrumbs (after render_tools call). +=over + +=item input: + +=over + +=item \$breadcrumbs - a reference to the string containing prepared breadcrumbs (after render_tools call). + +=back + +=back returns: nothing @@ -2122,7 +2190,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/) { @@ -2148,10 +2216,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 { @@ -2195,14 +2261,6 @@ 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, @@ -2576,9 +2634,9 @@ sub course_custom_roles { sub resource_info_box { - my ($symb,$onlyfolderflag,$stuvcurrent,$stuvdisp,$divforres)=@_; + my ($symb,$onlyfolderflag,$stuvcurrent,$stuvdisp)=@_; my $return=''; - if (($stuvcurrent ne '') || ($divforres)) { + if ($stuvcurrent ne '') { $return = '
'; } if ($symb) { @@ -2607,7 +2665,7 @@ sub resource_info_box { } else { $return='

'.&mt('No context provided.').'

'; } - if (($stuvcurrent ne '') || ($divforres)) { + if ($stuvcurrent ne '') { $return .= '
'; } return $return; @@ -3338,18 +3396,12 @@ PARAMSONE if (itemid != null) { itemh = itemid.offsetHeight; } - var primaryheight = 0; - if (document.getElementById('LC_nav_bar') != null) { - primaryheight = document.getElementById('LC_nav_bar').offsetHeight; - } - var secondaryheight = 0; + var primaryheight = document.getElementById('LC_nav_bar').offsetHeight; + var secondaryheight; if (document.getElementById('LC_secondary_menu') != null) { secondaryheight = document.getElementById('LC_secondary_menu').offsetHeight; } - var crumbsheight = 0; - if (document.getElementById('LC_breadcrumbs') != null) { - crumbsheight = document.getElementById('LC_breadcrumbs').offsetHeight; - } + var crumbsheight = document.getElementById('LC_breadcrumbs').offsetHeight; var dccidheight = 0; if (document.getElementById('dccid') != null) { dccidheight = document.getElementById('dccid').offsetHeight; @@ -3422,10 +3474,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,'"<>&'); } @@ -3502,24 +3518,22 @@ 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/}) { - if ($cfile =~ m{^(/adm/wrapper/ext/([^#]+))(?:|#([^#]+))$}) { + if ($cfile =~ m{^(/adm/wrapper/ext/([^#]+))#([^#]+)$}) { $cfile = $1; my $extlink = $2; $anchor = $3; $is_ext = 1; if (($extlink !~ /^https:/) && ($ENV{'SERVER_PORT'} == 443)) { - unless ((&Apache::lonnet::uses_sts()) || (&Apache::lonnet::waf_allssl($hostname))) { - $usehttp = 1; - } + $usehttp = 1; } elsif ($env{'request.use_absolute'}) { if ($env{'request.use_absolute'} =~ m{^https://}) { $usehttps = 1; } - } + } } elsif ($cfile =~ m{^/?public/($match_domain)/($match_courseid)/syllabus}) { if ($ENV{'SERVER_PORT'} == 443) { my ($cdom,$cnum) = ($1,$2); @@ -3527,9 +3541,7 @@ sub jump_to_editres { ($env{'course.'.$env{'request.course.id'}.'.num'} eq $cnum) && ($env{'course.'.$env{'request.course.id'}.'.domain'} eq $cdom)) { if ($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ m{^http://}) { - unless ((&Apache::lonnet::uses_sts()) || (&Apache::lonnet::waf_allssl($hostname))) { - $usehttp = 1; - } + $usehttp = 1; } } } elsif ($env{'request.use_absolute'}) { @@ -3569,7 +3581,9 @@ sub jump_to_editres { if ($hostname ne '') { $cfile = 'http://'.$hostname.(($cfile =~ /^\//)? '':'/').$cfile; } - $cfile .= (($cfile=~/\?/)?'&':'?').'usehttp=1'; + unless ($is_ext) { + $cfile .= (($cfile=~/\?/)?'&':'?').'usehttp=1'; + } } elsif ($usehttps) { $cfile = $env{'request.use_absolute'}.(($cfile =~ /^\//)? '':'/').$cfile; } @@ -3719,7 +3733,9 @@ sub scripttag { Constructs a XHTML list from \@array. -input: +=over + +=item input: =over @@ -3733,7 +3749,9 @@ Attributes for
    and
  • passed in a See htmltag() for more details. =back - + +=back + returns: XHTML list as String. =cut @@ -3852,13 +3870,19 @@ should be included in this list. If the optional headline text is not provided, a default text will be used. +=over + +=item Related routines: -Related routines: =over 4 -add_item_funclist -end_funclist + +=item add_item_funclist + +=item end_funclist + =back +=back Inputs: (optional) headline text @@ -3885,10 +3909,18 @@ sub start_funclist { Adds an item to the list of available functions -Related routines: +=over + +=item Related routines: + =over 4 -start_funclist -end_funclist + +=item start_funclist + +=item end_funclist + +=back + =back Inputs: content item with text and link to function @@ -3911,10 +3943,13 @@ sub add_item_funclist { End list of available functions -Related routines: -=over 4 -start_funclist -add_item_funclist +=over + +=item Related routines: + + start_funclist + add_item_funclist + =back Inputs: ./. @@ -3947,7 +3982,7 @@ A string that's used as visually highlig it's value evaluates to false. =back - + returns: XHTML list as string. =back @@ -3960,7 +3995,7 @@ sub funclist_from_array { $args->{legend} ||= mt('Functions'); return list_from_array( [$args->{legend}, @$items], { listattr => {class => 'LC_funclist'} }); -} +} =pod @@ -3982,8 +4017,8 @@ e.g. a file operation in Authoring Space A reference to the array containing text. Details: sub funclist_from_array =back - -Returns: XHTML div as string. + +Returns: XHTML div as string. =back