Diff for /loncom/interface/lonindexer.pm between versions 1.70 and 1.77

version 1.70, 2003/07/21 18:35:25 version 1.77, 2003/09/26 00:23:09
Line 64  use Apache::loncommon(); Line 64  use Apache::loncommon();
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::lonmeta;  use Apache::lonmeta;
 use Apache::File;  use Apache::File;
   use Apache::lonlocal;
 use GDBM_File;  use GDBM_File;
   
 # ---------------------------------------- variables used throughout the module  # ---------------------------------------- variables used throughout the module
Line 86  my @Omit = (); Line 87  my @Omit = ();
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
     my $c = $r->connection();      my $c = $r->connection();
     $r->content_type('text/html');      &Apache::loncommon::content_type($r,'text/html');
     &Apache::loncommon::no_cache($r);      &Apache::loncommon::no_cache($r);
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
Line 149  sub handler { Line 150  sub handler {
  '<a name="$anchor"><img src="'.$iconpath.'whitespace1.gif"'.   '<a name="$anchor"><img src="'.$iconpath.'whitespace1.gif"'.
  ' border="0" /></td>';   ' border="0" /></td>';
     $colspan=" colspan='2' ";      $colspan=" colspan='2' ";
               my $cl=&mt('Close');
             $closebutton=<<END;              $closebutton=<<END;
 <input type="button" name="close" value='CLOSE' onClick="self.close()">  <input type="button" name="close" value='$cl' onClick="self.close()">
 END  END
         }          }
  elsif ($ENV{'form.catalogmode'} eq 'groupimport') {   elsif ($ENV{'form.catalogmode'} eq 'groupimport') {
Line 158  END Line 160  END
  '<a name="$anchor"><img src="'.$iconpath.'whitespace1.gif"'.   '<a name="$anchor"><img src="'.$iconpath.'whitespace1.gif"'.
  ' border="0" /></td>';   ' border="0" /></td>';
     $colspan=" colspan='2' ";      $colspan=" colspan='2' ";
       my $cl=&mt('Close');
               my $gi=&mt('Group Import');
             $closebutton=<<END;              $closebutton=<<END;
 <input type="button" name="close" value='CLOSE' onClick="self.close()">  <input type="button" name="close" value='$cl' onClick="self.close()">
 END  END
             $groupimportbutton=<<END;              $groupimportbutton=<<END;
 <input type="button" name="groupimport" value='GROUP IMPORT'  <input type="button" name="groupimport" value='$gi'
 onClick="javascript:select_group()">  onClick="javascript:select_group()">
 END  END
         }          }
Line 320  END Line 324  END
 <script type="text/javascript">  <script type="text/javascript">
 $catalogmodefunctions  $catalogmodefunctions
 function openWindow(url, wdwName, w, h, toolbar,scrollbar,locationbar) {  function openWindow(url, wdwName, w, h, toolbar,scrollbar,locationbar) {
     var options = "width=" + w + ",height=" + h + ",";      var xpos = (screen.width-w)/2;
       xpos = (xpos < 0) ? '0' : xpos;
       var ypos = (screen.height-h)/2-30;
       ypos = (ypos < 0) ? '0' : ypos;
       var options = "width=" + w + ",height=" + h + ",screenx="+xpos+",screeny="+ypos+",";
     options += "resizable=yes,scrollbars="+scrollbar+",status=no,";      options += "resizable=yes,scrollbars="+scrollbar+",status=no,";
     options += "menubar=no,toolbar="+toolbar+",location="+locationbar+",directories=no";      options += "menubar=no,toolbar="+toolbar+",location="+locationbar+",directories=no";
     var newWin = window.open(url, wdwName, options);      var newWin = window.open(url, wdwName, options);
Line 333  function gothere(val) { Line 341  function gothere(val) {
   
 </head>  </head>
 ENDHEADER  ENDHEADER
 $r->print(&Apache::loncommon::bodytag('Browse Resources'));  my ($headerdom)=($uri=~/^\/res\/(\w+)\//);
   $r->print(&Apache::loncommon::bodytag('Browse Resources',undef,undef,undef,
         $headerdom));
 # - Evaluate actions from previous page (both cumulatively and chronologically)  # - Evaluate actions from previous page (both cumulatively and chronologically)
         if ($ENV{'form.catalogmode'} eq 'groupimport') {          if ($ENV{'form.catalogmode'} eq 'groupimport') {
     my $acts=$ENV{'form.acts'};      my $acts=$ENV{'form.acts'};
Line 391  $r->print(&Apache::loncommon::bodytag('B Line 401  $r->print(&Apache::loncommon::bodytag('B
     }      }
  }   }
 # ------------------------------- output state of file attributes to be showing  # ------------------------------- output state of file attributes to be showing
   #                                 All versions has to the last item
   #                                 since it does not take an extra col
    my %lt=&Apache::lonlocal::texthash(
      'ti' => 'Title',
      'si' => 'Size',
      'la' => 'Last access',
      'lm' => 'Last modified',
      'st' => 'Statistics',
      'au' => 'Author',
      'kw' => 'Keywords',
      'la' => 'Language',
      'sr' => 'Show resource',
      'av' => 'All versions',
      'ud' => 'Update Display'
      );
  $r->print(<<END);   $r->print(<<END);
 <form method="post" name="fileattr" action="$uri"  <form method="post" name="fileattr" action="$uri"
  enctype="application/x-www-form-urlencoded">   enctype="application/x-www-form-urlencoded">
 <b><font color="#666666">Display file attributes</font></b><br />  <b><font color="#666666">Display file attributes</font></b><br />
 <table border=0><tr>  <table border=0><tr>
 <td><input type="checkbox" name="attr0" value="1" $attrchk[0] /> Title</td>  <td><input type="checkbox" name="attr0" value="1" $attrchk[0] /> $lt{'ti'}</td>
 <td><input type="checkbox" name="attr1" value="1" $attrchk[1] /> Size</td>  <td><input type="checkbox" name="attr1" value="1" $attrchk[1] /> $lt{'si'}</td>
 <td><input type="checkbox" name="attr2" value="1" $attrchk[2] /> Last access</td>  <td><input type="checkbox" name="attr2" value="1" $attrchk[2] /> $lt{'la'}</td>
 <td><input type="checkbox" name="attr3" value="1" $attrchk[3] /> Last modified</td>  <td><input type="checkbox" name="attr3" value="1" $attrchk[3] /> $lt{'lm'}</td>
 <td><input type="checkbox" name="attr8" value="1" $attrchk[8] /> Statistics</td></tr><tr>  <td><input type="checkbox" name="attr8" value="1" $attrchk[8] /> $lt{'st'}</td>
 <td><input type="checkbox" name="attr4" value="1" $attrchk[4] /> Author</td>  </tr><tr>
 <td><input type="checkbox" name="attr5" value="1" $attrchk[5] /> Keywords</td>  <td><input type="checkbox" name="attr4" value="1" $attrchk[4] /> $lt{'au'}</td>
 <td><input type="checkbox" name="attr6" value="1" $attrchk[6] /> Language</td>  <td><input type="checkbox" name="attr5" value="1" $attrchk[5] /> $lt{'kw'}</td>
 <td><input type="checkbox" name="attr7" value="1" $attrchk[7] /> Show Resource</td>  <td><input type="checkbox" name="attr6" value="1" $attrchk[6] /> $lt{'la'}</td>
 <td><input type="checkbox" name="attr9" value="1" $attrchk[9] /> All versions</td>  <td><input type="checkbox" name="attr7" value="1" $attrchk[7] /> $lt{'sr'}</td>
   <td><input type="checkbox" name="attr9" value="1" $attrchk[9] /> $lt{'av'}</td>
 <td>&nbsp;</td>  <td>&nbsp;</td>
 </tr></table>  </tr></table>
 <input type="hidden" name="dirPointer" value="on" />  <input type="hidden" name="dirPointer" value="on" />
 <input type="hidden" name="acts" value="" />  <input type="hidden" name="acts" value="" />
 <input type="submit" name="attrs" value="Review" />&nbsp;  <input type="submit" name="attrs" value="$lt{'ud'}" />
 <input type="submit" name="attrs" value="Refresh" />  
 $closebutton  $closebutton
 $groupimportbutton  $groupimportbutton
 </form>  </form>
Line 424  END Line 449  END
 #        $r->print(&writedebug("Only:@Only")) if (@Only);  #        $r->print(&writedebug("Only:@Only")) if (@Only);
         $r->print("<table width='100\%' border=0><tr><td bgcolor=#777777>\n");          $r->print("<table width='100\%' border=0><tr><td bgcolor=#777777>\n");
  $r->print("<table width='100\%' border=0><tr bgcolor=$titleclr>\n");   $r->print("<table width='100\%' border=0><tr bgcolor=$titleclr>\n");
  $r->print("<td $colspan><b>Name</b></td>\n");   $r->print("<td $colspan><b>".&mt('Name')."</b></td>\n");
  $r->print("<td><b>Title</b></td>\n")    $r->print("<td><b>".&mt('Title')."</b></td>\n") 
     if ($hash{'display_attrs_0'} == 1);      if ($hash{'display_attrs_0'} == 1);
  $r->print("<td align=right><b>Size (bytes) ".   $r->print("<td align=right><b>".&mt("Size")." (".&mt("bytes").") ".
   "</b></td>\n") if ($hash{'display_attrs_1'} == 1);    "</b></td>\n") if ($hash{'display_attrs_1'} == 1);
  $r->print("<td><b>Last accessed</b></td>\n")    $r->print("<td><b>".&mt("Last accessed")."</b></td>\n") 
     if ($hash{'display_attrs_2'} == 1);      if ($hash{'display_attrs_2'} == 1);
  $r->print("<td><b>Last modified</b></td>\n")   $r->print("<td><b>".&mt("Last modified")."</b></td>\n")
     if ($hash{'display_attrs_3'} == 1);      if ($hash{'display_attrs_3'} == 1);
  $r->print("<td><b>Author(s)</b></td>\n")   $r->print("<td><b>".&mt("Author(s)")."</b></td>\n")
     if ($hash{'display_attrs_4'} == 1);      if ($hash{'display_attrs_4'} == 1);
  $r->print("<td><b>Keywords</b></td>\n")   $r->print("<td><b>".&mt("Keywords")."</b></td>\n")
     if ($hash{'display_attrs_5'} == 1);      if ($hash{'display_attrs_5'} == 1);
  $r->print("<td><b>Language</b></td>\n")   $r->print("<td><b>".&mt("Language")."</b></td>\n")
     if ($hash{'display_attrs_6'} == 1);      if ($hash{'display_attrs_6'} == 1);
  $r->print("<td><b>Resource</b></td>\n")   $r->print("<td><b>".&mt("Resource")."</b></td>\n")
     if ($hash{'display_attrs_7'} == 1);      if ($hash{'display_attrs_7'} == 1);
  $r->print("<td><b>Usage Statistics <br />(Courses/Network Hits)</b></td>\n")   $r->print("<td><b>".&mt("Usage Statistics")." <br />(".
     &mt("Courses/Network Hits").")</b></td>\n")
     if ($hash{'display_attrs_8'} == 1);      if ($hash{'display_attrs_8'} == 1);
  $r->print('</tr>');   $r->print('</tr>');
   
Line 544  sub scanDir { Line 570  sub scanDir {
  my $fext = pop @fileparts;   my $fext = pop @fileparts;
  my $ov = pop @fileparts;   my $ov = pop @fileparts;
  my $fname = join ('.',@fileparts,$fext);   my $fname = join ('.',@fileparts,$fext);
  next if (grep /\Q$fname\E/,@list and $ov =~ /\d+/);   next if (grep /\Q$fname\E/,@list and $ov =~ /^\d+$/);
     }      }
  }   }
   
  if ($dom eq 'domain') {   if ($dom eq 'domain') {
     $compuri = join('',$strip,'/');  # dom list has /res/<domain name>      # dom list has full path /res/<domain name>/ already
     $curdir = $compuri;      $curdir='';
       $compuri = (split(/\&/,$line))[0];
  } else {   } else {
     # user, dir & file have name only, i.e., w/o path      # user, dir & file have name only, i.e., w/o path
     $compuri = join('',$startdir,$strip,'/');      $compuri = join('',$startdir,$strip,'/');
Line 578  sub get_list { Line 605  sub get_list {
     my @list;      my @list;
     (my $luri = $uri) =~ s/\//_/g;      (my $luri = $uri) =~ s/\//_/g;
   
     if ($ENV{'form.attrs'} eq 'Refresh') {      if ($ENV{'form.attrs'} eq &mt('Update Display')) {
  foreach (keys %hash) {   foreach (keys %hash) {
     delete $hash{$_} if ($_ =~ /^dirlist_files_/);      delete $hash{$_} if ($_ =~ /^dirlist_files_/);
     }      }
Line 657  sub display_line { Line 684  sub display_line {
     my @pathcom = split (/\//,$filecom[0]);      my @pathcom = split (/\//,$filecom[0]);
     my $listname = $pathcom[scalar(@pathcom)-1];      my $listname = $pathcom[scalar(@pathcom)-1];
     my $fnptr = $filecom[3]&$dirptr;      my $fnptr = $filecom[3]&$dirptr;
     my $msg = 'View '.$filecom[0].' resources';      my $msg = &mt('View').' '.$filecom[0].' '.&mt('resources');
     $msg = 'Close '.$filecom[0].' directory' if $diropen eq 'opened';      $msg = &mt('Close').' '.$filecom[0].' '.&mt('directory') if $diropen eq 'opened';
   
     my $tabtag='</td>';      my $tabtag='</td>';
     my $i=0;      my $i=0;
Line 687  sub display_line { Line 714  sub display_line {
  $r->print ('<input src="'.$iconpath.'arrow_up.gif"');   $r->print ('<input src="'.$iconpath.'arrow_up.gif"');
  $r->print (' name="'.$msg.'" height="22" type="image" border="0">'.   $r->print (' name="'.$msg.'" height="22" type="image" border="0">'.
    "\n");     "\n");
  $r->print("Up $tabtag</tr></form>\n");   $r->print(&mt("Up")." $tabtag</tr></form>\n");
  return OK;   return OK;
     }      }
 # Do we have permission to look at this?  # Do we have permission to look at this?
Line 700  sub display_line { Line 727  sub display_line {
     if ($ENV{'form.dirPointer'} eq "on");      if ($ENV{'form.dirPointer'} eq "on");
  $r->print("<tr valign='$valign' bgcolor=$fileclr>$extrafield");   $r->print("<tr valign='$valign' bgcolor=$fileclr>$extrafield");
  $r->print("<td>");   $r->print("<td>");
  &begin_form ($r,$filecom[0].'/');   &begin_form ($r,$filecom[0]);
  my $anchor = $filecom[0].'/';   my $anchor = $filecom[0];
  $anchor =~ s/\///g;   $anchor =~ s/\///g;
  $r->print ('<a name="'.$anchor.'">');   $r->print ('<a name="'.$anchor.'">');
  $r->print ('<input type="hidden" name="acts" value="">');   $r->print ('<input type="hidden" name="acts" value="">');
Line 710  sub display_line { Line 737  sub display_line {
  $r->print (' name="'.$msg.'" height="22" type="image" border="0">'.   $r->print (' name="'.$msg.'" height="22" type="image" border="0">'.
    "\n");     "\n");
  $r->print ('<a href="javascript:gothere(\''.$filecom[0].   $r->print ('<a href="javascript:gothere(\''.$filecom[0].
    '/\')"><img src="'.$iconpath.'server.gif"');     '\')"><img src="'.$iconpath.'server.gif"');
  $r->print (' border="0" /></a>'."\n");   $r->print (' border="0" /></a>'."\n");
  $r->print ("Domain - $listname ");   $r->print (&mt("Domain")." - $listname ");
  if ($Apache::lonnet::domaindescription{$listname}) {   if ($Apache::lonnet::domaindescription{$listname}) {
     $r->print("(".$Apache::lonnet::domaindescription{$listname}.      $r->print("(".$Apache::lonnet::domaindescription{$listname}.
       ")");        ")");
Line 750  sub display_line { Line 777  sub display_line {
 # display file  # display file
     if ($fnptr == 0 and $filecom[3] ne '') {      if ($fnptr == 0 and $filecom[3] ne '') {
  my $filelink = $startdir.$filecom[0];   my $filelink = $startdir.$filecom[0];
    next if &Apache::lonnet::metadata($filelink,'obsolete');
  my @file_ext = split (/\./,$listname);   my @file_ext = split (/\./,$listname);
  my $curfext = $file_ext[-1];   my $curfext = $file_ext[-1];
         if (@Omit) {          if (@Omit) {
Line 828  sub display_line { Line 856  sub display_line {
    " TARGET=_self>$listname</a> ");     " TARGET=_self>$listname</a> ");
   
  $r->print (" (<a href=\"javascript:openWindow('".$filelink.   $r->print (" (<a href=\"javascript:openWindow('".$filelink.
    ".meta', 'metadatafile', '400', '450', 'no', 'yes','no')\"; ".     ".meta', 'metadatafile', '500', '550', 'no', 'yes','no')\"; ".
    "TARGET=_self>metadata</a>) ") if ($metafile == 1);     "TARGET=_self>metadata</a>) ") if ($metafile == 1);
   
  $r->print("</td>\n");   $r->print("</td>\n");
Line 886  sub display_line { Line 914  sub display_line {
         }          }
  if ($hash{'display_attrs_8'} == 1) {   if ($hash{'display_attrs_8'} == 1) {
     my (%stat) = &Apache::lonmeta::dynamicmeta($filelink) if ($metafile == 1);      my (%stat) = &Apache::lonmeta::dynamicmeta($filelink) if ($metafile == 1);
     my $stat = ($stat{'course'} eq '' ? '' : $stat{'course'}).      my $stat = (exists($stat{'course'}) ? $stat{'course'} : '').
  (($stat{'course'} ne '' || $stat{'count'} ne '') ? '/' : '').   ((exists($stat{'course'}) || exists($stat{'count'})) ? '/' : '').
  ($stat{'count'} eq '' ? '' : $stat{'count'});   (exists($stat{'count'}) ? $stat{'count'} : '');
     $r->print('<td align=center> '.($stat eq '' ? '&nbsp;' : $stat).      $r->print('<td align=center> '.($stat eq '' ? '&nbsp;' : $stat).
       ' </td>'."\n");        ' </td>'."\n");
  }   }

Removed from v.1.70  
changed lines
  Added in v.1.77


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