Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.358.2.19.2.9 and 1.358.2.20

version 1.358.2.19.2.9, 2023/10/06 15:24:21 version 1.358.2.20, 2023/09/11 14:13:31
Line 78  sub java_not_enabled { Line 78  sub java_not_enabled {
 sub coursepreflink {  sub coursepreflink {
    my ($text,$category)=@_;     my ($text,$category)=@_;
    if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) {     if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) {
       my $target =' target="_top"';        return '<a target="_top" href="'.&HTML::Entities::encode("/adm/courseprefs?phase=display&actions=$category",'<>&"').'"><span class="LC_setting">'.$text.'</span></a>';
       if (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self')) {  
           $target = '';  
       }  
       return '<a'.$target.' href="'.&HTML::Entities::encode("/adm/courseprefs?phase=display&actions=$category",'<>&"').'"><span class="LC_setting">'.$text.'</span></a>';  
    } else {     } else {
       return '';        return '';
    }     }
Line 105  sub direct_parm_link { Line 101  sub direct_parm_link {
     $filter=&entity_encode($filter);      $filter=&entity_encode($filter);
     $part=&entity_encode($part);      $part=&entity_encode($part);
     if (($symb) && (&Apache::lonnet::allowed('opa')) && ($target ne 'tex')) {      if (($symb) && (&Apache::lonnet::allowed('opa')) && ($target ne 'tex')) {
         my $target=' target="_top"';         return "<a target='_top' href='/adm/parmset?symb=$symb&amp;filter=$filter&amp;part=$part'><span class='LC_setting'>$linktext</span></a>";
         if (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self')) {  
             $target = '';  
         }  
        return "<a".$target." href='/adm/parmset?symb=$symb&amp;filter=$filter&amp;part=$part'><span class='LC_setting'>$linktext</span></a>";  
     } else {      } else {
        return $linktext;         return $linktext;
     }      }
Line 856  parameter setting wizard. Line 848  parameter setting wizard.
 ##############################################  ##############################################
 sub pjump_javascript_definition {  sub pjump_javascript_definition {
     my $Str = <<END;      my $Str = <<END;
     function pjump(type,dis,value,marker,ret,call,hour,min,sec,extra) {      function pjump(type,dis,value,marker,ret,call,hour,min,sec) {
         openMyModal("/adm/rat/parameter.html?type="+escape(type)          openMyModal("/adm/rat/parameter.html?type="+escape(type)
                  +"&value="+escape(value)+"&marker="+escape(marker)                   +"&value="+escape(value)+"&marker="+escape(marker)
                  +"&return="+escape(ret)                   +"&return="+escape(ret)
                  +"&call="+escape(call)+"&name="+escape(dis)                   +"&call="+escape(call)+"&name="+escape(dis)
                  +"&defhour="+escape(hour)+"&defmin="+escape(min)                   +"&defhour="+escape(hour)+"&defmin="+escape(min)
                  +"&defsec="+escape(sec)+"&extra="+escape(extra)                   +"&defsec="+escape(sec)+"&modal=1",350,350,'no');
                  +"&modal=1",350,350,'no');  
     }      }
 END  END
     return $Str;      return $Str;
Line 1687  sub show_return_link { Line 1678  sub show_return_link {
     unless ($env{'request.course.id'}) { return 0; }      unless ($env{'request.course.id'}) { return 0; }
     if ($env{'request.noversionuri'}=~m{^/priv/} ||      if ($env{'request.noversionuri'}=~m{^/priv/} ||
         $env{'request.uri'}=~m{^/priv/}) { return 1; }          $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 '') &&      if (($env{'request.noversionuri'} =~ m{^/adm/(viewclasslist|navmaps)($|\?)})
                (($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($|\?)})) {          || ($env{'request.noversionuri'} =~ m{^/adm/.*/aboutme($|\?)})) {
   
         return if ($env{'form.register'});          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)/} &&      return (($env{'request.noversionuri'}=~m{^/(res|public)/} &&
              $env{'request.symb'} eq '')               $env{'request.symb'} eq '')
             ||              ||
Line 1718  sub show_return_link { Line 1693  sub show_return_link {
             (($env{'request.noversionuri'}=~/^\/adm\//) &&              (($env{'request.noversionuri'}=~/^\/adm\//) &&
              ($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) &&               ($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) &&
              ($env{'request.noversionuri'}!~               ($env{'request.noversionuri'}!~
               m{^/adm/.*/(smppg|bulletinboard|ext\.tool)($|\?)})                m{^/adm/.*/(smppg|bulletinboard)($|\?)})
            ));             ));
 }  }
   
Line 1847  Inputs: $component (the text on the righ Line 1822  Inputs: $component (the text on the righ
            row, using loncommon::help_open_topic() to generate the link.             row, using loncommon::help_open_topic() to generate the link.
         $topic_help_text (text to include in the link in the optional help item           $topic_help_text (text to include in the link in the optional help item 
            on the right side of the breadcrumbs row.             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.  Returns a string containing breadcrumbs for the current page.
   
Line 1876  returns: nothing Line 1850  returns: nothing
           
     sub breadcrumbs {      sub breadcrumbs {
         my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt,           my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt, 
             $CourseBreadcrumbs,$topic_help,$topic_help_text,$links_target) = @_;              $CourseBreadcrumbs,$topic_help,$topic_help_text) = @_;
         #          #
         $css_class ||= 'LC_breadcrumbs';          $css_class ||= 'LC_breadcrumbs';
   
Line 1892  returns: nothing Line 1866  returns: nothing
         # The first one should be the course or a menu link          # The first one should be the course or a menu link
         if (!defined($menulink)) { $menulink=1; }          if (!defined($menulink)) { $menulink=1; }
         if ($menulink) {          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 $description = 'Menu';
             my $no_mt_descr = 0;              my $no_mt_descr = 0;
             if ((exists($env{'request.course.id'})) &&               if ((exists($env{'request.course.id'})) && 
Line 1919  returns: nothing Line 1883  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',              $menulink =  {  href   =>'/adm/menu',
                             title  =>'Go to main menu',                              title  =>'Go to main menu',
                             target =>$target,                              target =>'_top',
                             text   =>$description,                              text   =>$description,
                             no_mt  =>$no_mt_descr, };                              no_mt  =>$no_mt_descr, };
             if($last) {              if($last) {
Line 1945  returns: nothing Line 1903  returns: nothing
                             title => &mt('Back to most recent content resource'),                              title => &mt('Back to most recent content resource'),
                             class => 'LC_menubuttons_link',                              class => 'LC_menubuttons_link',
                           };                            };
             if ($links_target) {              if ($env{'request.noversionuri'} eq '/adm/searchcat') {
                 $hashref->{'target'} = $links_target;                  $hashref->{'target'} = '_top'; 
             }              }
             $links=&htmltag( 'a','<img src="/res/adm/pages/tolastloc.png" alt="'.$alttext.'" class="LC_icon" />',              $links=&htmltag( 'a','<img src="/res/adm/pages/tolastloc.png" alt="'.$alttext.'" class="LC_icon" />',
                              $hashref);                               $hashref);
Line 1997  returns: nothing Line 1955  returns: nothing
         if ($faq ne '' || $component_help ne '' || $bug ne '') {          if ($faq ne '' || $component_help ne '' || $bug ne '') {
             $icons .= &Apache::loncommon::help_open_menu($component,              $icons .= &Apache::loncommon::help_open_menu($component,
                                                          $component_help,                                                           $component_help,
                                                          $faq,$bug,'','','','',                                                           $faq,$bug);
                                                          $links_target);  
         }          }
         if ($topic_help && $topic_help_text) {          if ($topic_help && $topic_help_text) {
            $icons .= ' '.&Apache::loncommon::help_open_topic($topic_help,&mt($topic_help_text),'',             $icons .= ' '.&Apache::loncommon::help_open_topic($topic_help,&mt($topic_help_text),'',
                                                              undef,600,'',$links_target);                                                               undef,600);
         }          }
         #          #
   
Line 2180  returns: nothing Line 2137  returns: nothing
 } # End of scope for @Crumbs  } # End of scope for @Crumbs
   
 sub docs_breadcrumbs {  sub docs_breadcrumbs {
     my ($allowed,$crstype,$contenteditor,$title,$precleared,$checklinkprot)=@_;      my ($allowed,$crstype,$contenteditor,$title,$precleared)=@_;
     my ($folderpath,@folders,$supplementalflag);      my ($folderpath,@folders,$supplementalflag);
     @folders = split('&',$env{'form.folderpath'});      @folders = split('&',$env{'form.folderpath'});
     if ($env{'form.folderpath'} =~ /^supplemental/) {      if ($env{'form.folderpath'} =~ /^supplemental/) {
Line 2206  sub docs_breadcrumbs { Line 2163  sub docs_breadcrumbs {
 # each of randompick number, hidden, encrypted, random order, is_page   # each of randompick number, hidden, encrypted, random order, is_page 
 # are appended with ":"s to the foldername  # are appended with ":"s to the foldername
         $name=~s/\:(\d*)\:(\w*)\:(\w*):(\d*)\:?(\d*)$//;          $name=~s/\:(\d*)\:(\w*)\:(\w*):(\d*)\:?(\d*)$//;
         if ($contenteditor) {          unless ($supplementalflag) {
             if ($supplementalflag) {              if ($contenteditor) { 
                 if ($2) { $ishidden=1; }  
             } else {  
                 if ($1 ne '') {                  if ($1 ne '') {
                     $randompick=$1;                      $randompick=$1;
                 } else {                  } else {
Line 2250  sub docs_breadcrumbs { Line 2205  sub docs_breadcrumbs {
             $plain=~s/\&gt\;\s*$//;              $plain=~s/\&gt\;\s*$//;
         }          }
         my $menulink = 0;          my $menulink = 0;
         if (!$allowed && !$contenteditor && !$supplementalflag) {          if (!$allowed && !$contenteditor) {
             $menulink = 1;              $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,          return (&breadcrumbs(undef,undef,$menulink,'nohelp',undef,undef,
                              $contenteditor),                               $contenteditor),
                              $randompick,$ishidden,$isencrypted,$plain,                               $randompick,$ishidden,$isencrypted,$plain,
Line 3480  THIRD Line 3427  THIRD
 sub javascript_jumpto_resource {  sub javascript_jumpto_resource {
     my $confirm_switch = &mt("Editing requires switching to the resource's home server.")."\n".      my $confirm_switch = &mt("Editing requires switching to the resource's home server.")."\n".
                          &mt('Switch server?');                           &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_switch);
     &js_escape(\$confirm_new_tab);  
     return (<<ENDUTILITY)      return (<<ENDUTILITY)
   
 function go(url) {  function go(url) {
Line 3504  function go(url) { Line 3448  function go(url) {
    }     }
 }  }
   
 function need_switchserver(url,target) {  function need_switchserver(url) {
     if (url!='' && url!= null) {      if (url!='' && url!= null) {
         if (target == '_blank') {          if (confirm("$confirm_switch")) {
             if (confirm("$confirm_new_tab")) {  
                 window.open(url,target);  
             }  
         } else if (confirm("$confirm_switch")) {  
             go(url);              go(url);
         }          }
     }      }
Line 3522  ENDUTILITY Line 3462  ENDUTILITY
 }  }
   
 sub jump_to_editres {  sub jump_to_editres {
     my ($cfile,$home,$switchserver,$forceedit,$forcereg,$symb,$shownsymb,      my ($cfile,$home,$switchserver,$forceedit,$forcereg,$symb,$folderpath,
         $folderpath,$title,$hostname,$idx,$suppurl,$todocs,$suppanchor) = @_;          $title,$hostname,$idx,$suppurl,$todocs,$suppanchor) = @_;
     my ($jscall,$anchor,$usehttp,$usehttps,$is_ext,$target);      my ($jscall,$anchor,$usehttp,$usehttps,$is_ext);
     if ($switchserver) {      if ($switchserver) {
         if ($home) {          if ($home) {
             my $resedit;  
             if ($cfile =~ m{^/priv/($match_domain)/($match_username)/}) {  
                 my ($audom,$auname) = ($1,$2);  
                 unless (&Apache::lonnet::is_course($audom,$auname)) {  
                     if (($symb ne '') && ($env{'request.course.id'}) &&  
                         (&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) {  
                         unless (&Apache::lonnet::can_switchserver($env{'user.domain'},$home)) {  
                             $target = '_blank';  
                             $resedit = 1;  
                         }  
                     }  
                 }  
             }  
             $cfile = '/adm/switchserver?otherserver='.$home.'&amp;role='.              $cfile = '/adm/switchserver?otherserver='.$home.'&amp;role='.
                      &HTML::Entities::encode($env{'request.role'},'"<>&');                       &HTML::Entities::encode($env{'request.role'},'"<>&');
             if ($shownsymb) {              if ($symb) {
                 $cfile .= '&amp;symb='.&HTML::Entities::encode($shownsymb,'"<>&');                  $cfile .= '&amp;symb='.&HTML::Entities::encode($symb,'"<>&');
                 if ($resedit) {  
                     $cfile .= '&amp;edit=1';  
                 }  
             } elsif ($folderpath) {              } elsif ($folderpath) {
                 $cfile .= '&amp;folderpath='.&HTML::Entities::encode($folderpath,'"<>&');                  $cfile .= '&amp;folderpath='.&HTML::Entities::encode($folderpath,'"<>&');
             }              }
Line 3556  sub jump_to_editres { Line 3480  sub jump_to_editres {
             if ($forcereg) {              if ($forcereg) {
                 $cfile .= '&amp;register=1';                  $cfile .= '&amp;register=1';
             }              }
             $jscall = "need_switchserver('".&Apache::loncommon::escape_single($cfile)."','$target')";              $jscall = "need_switchserver('".&Apache::loncommon::escape_single($cfile)."');";
         }          }
     } else {      } else {
         unless ($cfile =~ m{^/priv/}) {          unless ($cfile =~ m{^/priv/}) {

Removed from v.1.358.2.19.2.9  
changed lines
  Added in v.1.358.2.20


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>