Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.404 and 1.408

version 1.404, 2022/06/11 05:07:55 version 1.408, 2022/10/27 20:08:16
Line 2237  returns: nothing Line 2237  returns: nothing
 } # End of scope for @Crumbs  } # End of scope for @Crumbs
   
 sub docs_breadcrumbs {  sub docs_breadcrumbs {
     my ($allowed,$crstype,$contenteditor,$title,$precleared)=@_;      my ($allowed,$crstype,$contenteditor,$title,$precleared,$checklinkprot)=@_;
     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 2263  sub docs_breadcrumbs { Line 2263  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*)$//;
         unless ($supplementalflag) {          if ($contenteditor) {
             if ($contenteditor) {               if ($supplementalflag) {
                   if ($2) { $ishidden=1; }
               } else {
                 if ($1 ne '') {                  if ($1 ne '') {
                     $randompick=$1;                      $randompick=$1;
                 } else {                  } else {
Line 2308  sub docs_breadcrumbs { Line 2310  sub docs_breadcrumbs {
         if (!$allowed && !$contenteditor) {          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 3527  THIRD Line 3537  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 3548  function go(url) { Line 3561  function go(url) {
    }     }
 }  }
   
 function need_switchserver(url) {  function need_switchserver(url,target) {
     if (url!='' && url!= null) {      if (url!='' && url!= null) {
         if (confirm("$confirm_switch")) {          if (target == '_blank') {
               if (confirm("$confirm_new_tab")) {
                   window.open(url,target);
               }
           } else if (confirm("$confirm_switch")) {
             go(url);              go(url);
         }          }
     }      }
Line 3562  ENDUTILITY Line 3579  ENDUTILITY
 }  }
   
 sub jump_to_editres {  sub jump_to_editres {
     my ($cfile,$home,$switchserver,$forceedit,$forcereg,$symb,$folderpath,      my ($cfile,$home,$switchserver,$forceedit,$forcereg,$symb,$shownsymb,
         $title,$hostname,$idx,$suppurl,$todocs,$suppanchor) = @_;          $folderpath,$title,$hostname,$idx,$suppurl,$todocs,$suppanchor) = @_;
     my ($jscall,$anchor,$usehttp,$usehttps,$is_ext);      my ($jscall,$anchor,$usehttp,$usehttps,$is_ext,$target);
     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)) {
                       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)) {
                               $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 ($symb) {              if ($shownsymb) {
                 $cfile .= '&amp;symb='.&HTML::Entities::encode($symb,'"<>&');                  $cfile .= '&amp;symb='.&HTML::Entities::encode($shownsymb,'"<>&');
                   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 3580  sub jump_to_editres { Line 3617  sub jump_to_editres {
             if ($forcereg) {              if ($forcereg) {
                 $cfile .= '&amp;register=1';                  $cfile .= '&amp;register=1';
             }              }
             $jscall = "need_switchserver('".&Apache::loncommon::escape_single($cfile)."');";              $jscall = "need_switchserver('".&Apache::loncommon::escape_single($cfile)."','$target')";
         }          }
     } else {      } else {
         unless ($cfile =~ m{^/priv/}) {          unless ($cfile =~ m{^/priv/}) {

Removed from v.1.404  
changed lines
  Added in v.1.408


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