Diff for /loncom/interface/lonindexer.pm between versions 1.220 and 1.230

version 1.220, 2013/08/12 16:44:08 version 1.230, 2020/09/03 15:38:51
Line 94  sub handler { Line 94  sub handler {
   
 # --------------------------------------------------------------- get icon path  # --------------------------------------------------------------- get icon path
     my $iconpath= $r->dir_config('lonIconsURL') . "/";      my $iconpath= $r->dir_config('lonIconsURL') . "/";
       my $defdom = &Apache::lonnet::default_login_domain();
   
 #SB my $fileclr='#ffffe6';  #SB my $fileclr='#ffffe6';
     my $line;      my $line;
Line 565  END Line 566  END
     } else {      } else {
  $r->print($reshome);   $r->print($reshome);
     }      }
     $r->print("'>".&mt('Home').'</a></span>');      $r->print("'>".&mt('Home directory').'</a></span>');
  }   }
  $r->print('</form>');   $r->print('</form>');
 # ------------------------------------------------------ Remember where we were  # ------------------------------------------------------ Remember where we were
Line 623  END Line 624  END
         
   
 # ----------------- read in what directories have previously been set to "open"  # ----------------- read in what directories have previously been set to "open"
  foreach (keys %hash) {   foreach (keys(%hash)) {
     if ($_ =~ /^diropen_status_/) {      if ($_ =~ /^diropen_status_/) {
  my $key = $_;   my $key = $_;
  $key =~ s/^diropen_status_//;   $key =~ s/^diropen_status_//;
Line 664  END Line 665  END
     pop @uri_com;      pop @uri_com;
     my $upone = join('/',@uri_com);      my $upone = join('/',@uri_com);
     my @list = qw (0);      my @list = qw (0);
     &display_line ($r,'opened',$upone.'&viewOneUp',0,$upone,@list);      &display_line ($r,$defdom,'opened',$upone.'&viewOneUp',0,$upone,@list);
     $indent = 1;      $indent = 1;
  }   }
   
 # -------- recursively go through all the directories and output as appropriate  # -------- recursively go through all the directories and output as appropriate
  &scanDir ($r,$toplevel,$indent,\%hash);   &scanDir ($r,$toplevel,$indent,\%hash,$defdom);
   
 # -------------------------------------------------------------- end the tables  # -------------------------------------------------------------- end the tables
         $r->print(&Apache::loncommon::end_data_table());          $r->print(&Apache::loncommon::end_data_table());
Line 697  END Line 698  END
   
 # ----------------------------------------------- recursive scan of a directory  # ----------------------------------------------- recursive scan of a directory
 sub scanDir {  sub scanDir {
     my ($r,$startdir,$indent,$hashref)=@_;      my ($r,$startdir,$indent,$hashref,$defdom)=@_;
     my $c = $r->connection();      my $c = $r->connection();
     my ($compuri,$curdir);      my ($compuri,$curdir);
     my $dirptr=16384;      my $dirptr=16384;
Line 709  sub scanDir { Line 710  sub scanDir {
         return if ($c->aborted());          return if ($c->aborted());
  #This is a kludge, sorry aboot this   #This is a kludge, sorry aboot this
  my ($strip,$dom,undef,$testdir,undef,undef,undef,undef,undef,undef,undef,undef,undef,undef,$obs,undef)=split(/\&/,$line,16);    my ($strip,$dom,undef,$testdir,undef,undef,undef,undef,undef,undef,undef,undef,undef,undef,$obs,undef)=split(/\&/,$line,16); 
  next if($strip =~ /.*\.meta$/ | $obs eq '1');   next if (($strip =~ /\.meta$/) || ($obs));
           if ($dom ne 'domain') {
               my ($udom,$uname);
               if ($dom eq 'user') {
                   ($udom) = ($startdir =~ m{^/res/($match_domain)});
                   $uname = $strip;
               } else {
                   ($udom,$uname) = ($startdir =~ m{^/res/($match_domain)/($match_courseid)});
               }
               if ($udom ne '' && $uname ne '') {
                   # Don't display "course author" directory.
                   next if (&Apache::lonnet::is_course($udom,$uname));
               }
           }
  my (@fileparts) = split(/\./,$strip);   my (@fileparts) = split(/\./,$strip);
  if ($hash{'display_attrs_9'} != 1) {   if ($hash{'display_attrs_9'} != 1) {
             # if not all versions to be shown              # if not all versions to be shown
Line 740  sub scanDir { Line 754  sub scanDir {
  }   }
     }      }
  }   }
  &display_line($r,$diropen,$line,$indent,$curdir,$hashref,@list);   &display_line($r,$defdom,$diropen,$line,$indent,$curdir,$hashref,@list);
  &scanDir ($r,$compuri,$indent) if $diropen eq 'opened';   &scanDir ($r,$compuri,$indent,undef,$defdom) if $diropen eq 'opened';
     }      }
     $indent--;      $indent--;
 }  }
Line 754  sub get_list { Line 768  sub get_list {
           
     (my $luri = $uri) =~ s/\//_/g;      (my $luri = $uri) =~ s/\//_/g;
     if ($env{'form.updatedisplay'}) {      if ($env{'form.updatedisplay'}) {
  foreach (keys %hash) {   foreach (keys(%hash)) {
     delete $hash{$_} if ($_ =~ /^dirlist_files_/);      delete $hash{$_} if ($_ =~ /^dirlist_files_/);
     delete $hash{$_} if ($_ =~ /^dirlist_timestamp_files_/);      delete $hash{$_} if ($_ =~ /^dirlist_timestamp_files_/);
  }   }
Line 871  sub match_ext { Line 885  sub match_ext {
   
 # ------------------------------- displays one line in appropriate table format  # ------------------------------- displays one line in appropriate table format
 sub display_line {  sub display_line {
     my ($r,$diropen,$line,$indent,$startdir,$hashref,@list)=@_;      my ($r,$defdom,$diropen,$line,$indent,$startdir,$hashref,@list)=@_;
     my (@pathfn, $fndir);      my (@pathfn, $fndir);
 # there could be relative paths (files actually belonging into this directory)  # there could be relative paths (files actually belonging into this directory)
 # or absolute paths (for example, from sequences)  # or absolute paths (for example, from sequences)
Line 937  sub display_line { Line 951  sub display_line {
 # Do we have permission to look at this?  # Do we have permission to look at this?
     if($filecom[15] ne '1') { return OK if ((!&Apache::lonnet::allowed('bre',$pathprefix.$filecom[0])) && (!&Apache::lonnet::allowed('bro',$pathprefix.$filecom[0]))); }      if($filecom[15] ne '1') { return OK if ((!&Apache::lonnet::allowed('bre',$pathprefix.$filecom[0])) && (!&Apache::lonnet::allowed('bro',$pathprefix.$filecom[0]))); }
   
       if (($filecom[1] eq 'domain') && ($defdom ne $listname)) {
           unless (&Apache::lonnet::will_trust('shared',$listname,$defdom)) {
               return OK;   
           }
           unless (&Apache::lonnet::will_trust('content',$defdom,$listname)) {
               return OK;
           }
       }
   
 # make absolute links appear on different background  # make absolute links appear on different background
 #SB    if ($absolute) { $fileclr='#ccdd99'; }  #SB    if ($absolute) { $fileclr='#ccdd99'; }
   
Line 971  $r->print ('<input type="hidden" name="a Line 994  $r->print ('<input type="hidden" name="a
   
 # display user directory  # display user directory
     }      }
   
     if ($filecom[1] eq 'user') {      if ($filecom[1] eq 'user') {
           my $domain=(split(m|/|,$startdir))[2];
           if ($defdom ne $domain) {
               unless (&Apache::lonnet::will_trust('shared',$domain,$defdom)) {
                   return OK;
               }
               unless (&Apache::lonnet::will_trust('content',$defdom,$domain)) {
                   return OK;
               }
           }
  # $r->print("<tr valign=$valign bgcolor=\"$fileclr\">$extrafield");   # $r->print("<tr valign=$valign bgcolor=\"$fileclr\">$extrafield");
  my $curdir = $startdir.$filecom[0].'/';   my $curdir = $startdir.$filecom[0].'/';
  my $anchor = $curdir;   my $anchor = $curdir;
Line 989  $r->print ('<input type="hidden" name="a Line 1022  $r->print ('<input type="hidden" name="a
  $r->print (' alt="'.$msg.'"/></a>'.   $r->print (' alt="'.$msg.'"/></a>'.
    "\n");     "\n");
  my $quotable_curdir = &Apache::loncommon::escape_single($curdir);   my $quotable_curdir = &Apache::loncommon::escape_single($curdir);
           my $quotable_startdir = &Apache::loncommon::escape_single($startdir);
           my $quotable_listname = &Apache::loncommon::escape_single($listname);
   
  $r->print ('<a href="javascript:gothere(\''.$quotable_curdir   $r->print ('<a href="javascript:gothere(\''.$quotable_curdir
    .'\')"><img alt="'.$msg.'" src="'.     .'\')"><img alt="'.$msg.'" src="'.
    $iconpath.'quill.gif" class="LC_fileicon" />');     $iconpath.'quill.gif" class="LC_fileicon" />');
Line 1000  $r->print ('<input type="hidden" name="a Line 1036  $r->print ('<input type="hidden" name="a
 # Wishlistlink  # Wishlistlink
         $r->print('</form></td><td><a href="javascript:;" '.          $r->print('</form></td><td><a href="javascript:;" '.
                   'title="'.&mt('Save a link for this folder in your personal Stored Links repository').'" '.                    'title="'.&mt('Save a link for this folder in your personal Stored Links repository').'" '.
                   'onclick="set_wishlistlink('."'$plainname','$startdir$listname'".')">'.                    'onclick="set_wishlistlink('."'$plainname','$quotable_startdir$quotable_listname"."/'".')">'.
                   '<img class="LC_icon" src="/res/adm/pages/wishlist.png" '.                    '<img class="LC_icon" src="/res/adm/pages/wishlist.png" '.
                   'alt="'.&mt('save in Stored Links').'" style="width:22px;"/></a>'.$tabtag);                    'alt="'.&mt('save in Stored Links').'" style="width:22px;"/></a>'.$tabtag);
         $r->print(&Apache::loncommon::end_data_table_row());          $r->print(&Apache::loncommon::end_data_table_row());
Line 1083  $r->print ('<input type="hidden" name="a Line 1119  $r->print ('<input type="hidden" name="a
 # Filetype icons  # Filetype icons
  $r->print("<img alt=\"\" src='$iconname' class='LC_fileicon' />\n");   $r->print("<img alt=\"\" src='$iconname' class='LC_fileicon' />\n");
  my $quotable_filelink = &Apache::loncommon::escape_single($filelink);   my $quotable_filelink = &Apache::loncommon::escape_single($filelink);
           my $quotable_startdir = Apache::loncommon::escape_single($startdir);
           my $quotable_listname = &Apache::loncommon::escape_single($listname);
           my $curfext = lc((split(/\./,$listname))[-1]);
           my $modalstyle;
           if ($curfext =~ /^js|css|txt|tab$/) {
               $modalstyle = ",'','background-color:#ffffff'";
           }
   
  $r->print (" <a href=\"javascript:openMyModal('".$quotable_filelink."?inhibitmenu=yes',500,500,'yes');\">$listname</a> ");   $r->print (" <a href=\"javascript:openMyModal('".$quotable_filelink."?inhibitmenu=yes',500,500,'yes'".$modalstyle.");\">$listname</a> ");
  $quotable_filelink = &Apache::loncommon::escape_single($filelink.'.meta');   $quotable_filelink = &Apache::loncommon::escape_single($filelink.'.meta');
  &Apache::loncommon::inhibit_menu_check(\$quotable_filelink);   &Apache::loncommon::inhibit_menu_check(\$quotable_filelink);
  $r->print (" (<a href=\"javascript:openMyModal('".$quotable_filelink."?inhibitmenu=yes',500,500,'yes');\">".&mt('metadata')."</a>) ");   $r->print (" (<a href=\"javascript:openMyModal('".$quotable_filelink."?inhibitmenu=yes',500,500,'yes');\">".&mt('metadata')."</a>) ");
Line 1096  $r->print ('<input type="hidden" name="a Line 1139  $r->print ('<input type="hidden" name="a
 # Wishlistlink  # Wishlistlink
         $r->print('<td><a href="javascript:;" title="'.&mt('Save a link for this resource in your personal Stored Links repository').'" '.          $r->print('<td><a href="javascript:;" title="'.&mt('Save a link for this resource in your personal Stored Links repository').'" '.
                   'onclick="set_wishlistlink('."'".&Apache::lonnet::gettitle($filelink).                    'onclick="set_wishlistlink('."'".&Apache::lonnet::gettitle($filelink).
                   "','$startdir$listname'".')">'.                    "','$quotable_startdir$quotable_listname'".')">'.
                   '<img class="LC_icon" src="/res/adm/pages/wishlist.png" '.                    '<img class="LC_icon" src="/res/adm/pages/wishlist.png" '.
                   'alt="'.&mt('save in Stored Links').'" style="width:22px;"/></a></td>');                    'alt="'.&mt('save in Stored Links').'" style="width:22px;"/></a></td>');
  if ($hash{'display_attrs_0'} == 1) {   if ($hash{'display_attrs_0'} == 1) {
Line 1238  $r->print ('<input type="hidden" name="a Line 1281  $r->print ('<input type="hidden" name="a
  $r->print (' alt="'.$msg.'" class="LC_fileicon" /></a>'.   $r->print (' alt="'.$msg.'" class="LC_fileicon" /></a>'.
    "\n");     "\n");
  my $quotable_curdir = &Apache::loncommon::escape_single($curdir);   my $quotable_curdir = &Apache::loncommon::escape_single($curdir);
                   my $quotable_startdir = &Apache::loncommon::escape_single($startdir);
           my $quotable_listname = &Apache::loncommon::escape_single($listname);
   
         my $location = &Apache::loncommon::lonhttpdurl("/adm/lonIcons");          my $location = &Apache::loncommon::lonhttpdurl("/adm/lonIcons");
  my $icon = "navmap.folder.".($nowOpen ? "open":"closed").'.gif';   my $icon = "navmap.folder.".($nowOpen ? "open":"closed").'.gif';
         $r->print ('<a href="javascript:gothere('          $r->print ('<a href="javascript:gothere('
Line 1250  $r->print ('<input type="hidden" name="a Line 1295  $r->print ('<input type="hidden" name="a
 # Wishlistlink  # Wishlistlink
         $r->print('</td><td><a href="javascript:;" '.          $r->print('</td><td><a href="javascript:;" '.
                   'title="'.&mt('Save a link for this folder in Stored Links').'" '.                    'title="'.&mt('Save a link for this folder in Stored Links').'" '.
                   'onclick="set_wishlistlink('."'$listname','$startdir$listname'".')">'.                    'onclick="set_wishlistlink('."'$listname','$quotable_startdir$quotable_listname"."/'".')">'.
                   '<img class="LC_icon" src="/res/adm/pages/wishlist.png" '.                    '<img class="LC_icon" src="/res/adm/pages/wishlist.png" '.
                   'alt="'.&mt('save in Stored Links').'" style="width:22px;"/></a></td>');                    'alt="'.&mt('save in Stored Links').'" style="width:22px;"/></a></td>');
 # Attributes  # Attributes
Line 1297  $r->print ('<input type="hidden" name="a Line 1342  $r->print ('<input type="hidden" name="a
  }   }
  if ($hash{'display_attrs_7'} == 1) {   if ($hash{'display_attrs_7'} == 1) {
    $r->print('<td>&nbsp;</td>');     $r->print('<td>&nbsp;</td>');
     }               }
     if ($hash{'display_attrs_11'} == 1) {          if ($hash{'display_attrs_11'} == 1) {
    $r->print('<td>&nbsp;</td>');     $r->print('<td>&nbsp;</td>');
  }   }
  if ($hash{'display_attrs_12'} == 1) {   if ($hash{'display_attrs_12'} == 1) {
Line 1432  sub start_fresh_session { Line 1477  sub start_fresh_session {
     delete $hash->{'form.element'};      delete $hash->{'form.element'};
     delete $hash->{'form.omit'};      delete $hash->{'form.omit'};
     delete $hash->{'form.only'};      delete $hash->{'form.only'};
     foreach (keys %{$hash}) {      foreach (keys(%{$hash})) {
         delete $hash->{$_} if (/^(pre_|store)/);          delete $hash->{$_} if (/^(pre_|store)/);
     }      }
 }  }

Removed from v.1.220  
changed lines
  Added in v.1.230


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