Diff for /loncom/homework/Attic/lonindexer.pm between versions 1.2 and 1.3

version 1.2, 2000/08/02 12:20:28 version 1.3, 2000/08/03 21:19:44
Line 40  ENDHEADER Line 40  ENDHEADER
     my $iconpath="/res/adm/pages/indexericons/";      my $iconpath="/res/adm/pages/indexericons/";
   
     $r->print("<h2>The LearningOnline Network Directory Browser</h2>\n");      $r->print("<h2>The LearningOnline Network Directory Browser</h2>\n");
   #    $r->print("<hr>Current uri=$uri<br>called uri=$ENV{'form.openuri'}<br>domain=$domain<hr>");
   
     for (my $i=0; $i<=5; $i++) {      for (my $i=0; $i<=5; $i++) {
  $attrchk[$i] = "checked" if $ENV{'form.attr'.$i} == 1;   $attrchk[$i] = "checked" if $ENV{'form.attr'.$i} == 1;
Line 56  ENDHEADER Line 57  ENDHEADER
 <td><input type=checkbox name=attr4 value="1" $attrchk[4]>Keywords</td>  <td><input type=checkbox name=attr4 value="1" $attrchk[4]>Keywords</td>
 <td><input type=checkbox name=attr5 value="1" $attrchk[5]>Language</td>  <td><input type=checkbox name=attr5 value="1" $attrchk[5]>Language</td>
 </tr></table>  </tr></table>
   <input type=hidden name=openuri value="$ENV{'form.openuri'}">
 <input type="submit" name="dirlistattr" value="Review">  <input type="submit" name="dirlistattr" value="Review">
 </form>  </form>
 END  END
     my $titleclr="#ddffff";      my $titleclr="#ddffff";
     my $fileclr="#ffffdd";      my $fileclr="#ffffdd";
   
     $r->print("<table border=0><tr><td bgcolor=#999999>");      $r->print("<table border=0><tr><td bgcolor=#eeeeee>\n");
     $r->print("<table border=0><tr>");      $r->print("<table border=0><tr>\n");
     $r->print("<td bgcolor=$titleclr><b>Name</b></td>\n");      $r->print("<td bgcolor=$titleclr><b>Name</b></td>\n");
     $r->print("<td bgcolor=$titleclr><b>Size (bytes)</b></td>") if ($ENV{'form.attr0'} == 1);      $r->print("<td bgcolor=$titleclr align=right><b>Size (bytes) </b></td>\n") if ($ENV{'form.attr0'} == 1);
     $r->print("<td bgcolor=$titleclr><b>Last accessed</b></td>") if ($ENV{'form.attr1'} == 1);      $r->print("<td bgcolor=$titleclr><b>Last accessed</b></td>\n") if ($ENV{'form.attr1'} == 1);
     $r->print("<td bgcolor=$titleclr><b>Last modified</b></td>") if ($ENV{'form.attr2'} == 1);      $r->print("<td bgcolor=$titleclr><b>Last modified</b></td>\n") if ($ENV{'form.attr2'} == 1);
     $r->print("</tr>");      $r->print("</tr>");
   
     if ($ENV{'dirlist.lvl'} eq "") {      if ($ENV{'dirlist.level'} eq "") {
  my %dirlvl;   my %dirlevel;
  $dirlvl{'dirlist.lvl'}='-2';   $dirlevel{'dirlist.level'}='-2';
  &Apache::lonnet::appenv(%dirlvl);   &Apache::lonnet::appenv(%dirlevel);
     } else {      } else {
  $ENV{'dirlist.lvl'}='-2';   $ENV{'dirlist.level'}='-2';
     }      }
 #    $r->print ("original uri=$uri");      if ($ENV{'form.openuri'} =~ /$uri\&/) {
     my $uri = &get_openpath($uri);   my @pathcom = split(/\//,$uri);
 #    $r->print ("shortened uri=$shorturi");   pop @pathcom;
    my $splituri = join ('/',@pathcom);
     my $domain="/res/";   $uri = join ('',$splituri,"/");
     &branch($r,$domain,$uri);      }
       &display_line ($r,1,"/res/".$domain."&domain");
   #    $domain="/res/".$domain."/";
       &branch($r,"/res/".$domain."/",$uri);
   
     $r->print("</table>");      $r->print("</table>");
     $r->print("</td></tr></table>");      $r->print("</td></tr></table>");
Line 100  sub branch { Line 105  sub branch {
     my ($line,@list);      my ($line,@list);
     my ($domusr,$foo,$strip,$testdir,$compuri,$chkdir,$diropen);      my ($domusr,$foo,$strip,$testdir,$compuri,$chkdir,$diropen);
     my $dirptr=16384;      my $dirptr=16384;
 #    my $calluri=$r->uri;      $ENV{'dirlist.level'}++;
     $ENV{'dirlist.lvl'}++;  
   
     @list=&get_list($uri);      @list=&get_list($r,$uri);
     foreach $line (@list) {      foreach $line (@list) {
  chomp $line;   chomp $line;
   
  ($strip,$domusr,$foo,$testdir,$foo)=split(/\&/,$line,5);   ($strip,$domusr,$foo,$testdir,$foo)=split(/\&/,$line,5);
  $compuri=join("",$strip,"/");   $compuri=join("",$strip,"/");
   
  $chkdir=$testdir&$dirptr;   $chkdir=$testdir&$dirptr;
  if ($domusr eq "domain" or $domusr eq "user") {   if ($domusr eq "domain" or $domusr eq "user") {
     $chkdir = $dirptr;      $chkdir = $dirptr;
Line 121  sub branch { Line 124  sub branch {
   
  &branch($r,$compuri,$calluri) if ($calluri =~ $compuri and $calluri=~/^$uri/ and $chkdir == $dirptr and $testdir ne "");   &branch($r,$compuri,$calluri) if ($calluri =~ $compuri and $calluri=~/^$uri/ and $chkdir == $dirptr and $testdir ne "");
     }      }
     $ENV{'dirlist.lvl'}--;      $ENV{'dirlist.level'}--;
 }  }
   
 # ------ get complete list based on the uri ------  # ------ get complete list based on the uri ------
 sub get_list {  sub get_list {
     my $uri=shift;      my ($r,$uri)=@_;
     my @list;      my @list;
     my $luri=$uri;      my $luri=$uri;
     $luri=~s/\//_/g;      $luri=~s/\//_/g;
Line 139  sub get_list { Line 142  sub get_list {
  my $FH = Apache::File->new(">$dirlist");   my $FH = Apache::File->new(">$dirlist");
  print $FH join("\n",@list);   print $FH join("\n",@list);
     }      }
     return @list=&match_ext(@list);      return @list=&match_ext($r,@list);
 }  }
   
 # ------ get previously opened path, if any ------  # ------ get previously opened path, if any ------
Line 173  sub get_openpath { Line 176  sub get_openpath {
 }  }
   
 sub match_ext {  sub match_ext {
     my @packlist=@_;      my ($r,@packlist)=@_;
     my $line;      my $line;
     my @trimlist;      my @trimlist;
     my $nextline;      my $nextline;
     my @fileext;      my @fileext;
     my $dirptr=16384;      my $dirptr=16384;
   
     my $fn="/home/httpd/lonTabs/filetypes.tab";      my $tabdir  = $r->dir_config('lonTabDir');
       my $fn = $tabdir."/filetypes.tab";
     if (-e $fn) {      if (-e $fn) {
  my $FH=Apache::File->new($fn);   my $FH=Apache::File->new($fn);
  my @content=<$FH>;   my @content=<$FH>;
Line 211  sub match_ext { Line 215  sub match_ext {
   
 sub display_line{  sub display_line{
     my ($r,$diropen,$line)=@_;      my ($r,$diropen,$line)=@_;
     my (@pathfn, $fndir, $fnptr, $disattr);      my (@pathfn, $fndir, $fnptr);
     my $dirptr=16384;      my $dirptr=16384;
     my $fileclr="#ffffdd";      my $fileclr="#ffffe6";
     my $iconpath="/res/adm/pages/indexericons/";      my $iconpath="/res/adm/pages/indexericons/";
   
     my @filecom = split (/\&/,$line);      my @filecom = split (/\&/,$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 $indent = $ENV{'dirlist.lvl'};      my $indent = $ENV{'dirlist.level'};
   
     my $tabtag="</td>";      my $tabtag="</td>";
     my $nextline;      my $nextline;
Line 228  sub display_line{ Line 232  sub display_line{
   
     while ($i<=5) {      while ($i<=5) {
  my $key="form.attr".$i;   my $key="form.attr".$i;
  $i++;  
  $tabtag=join('',$tabtag,"<td bgcolor=",$fileclr,">&nbsp;</td>") if $ENV{$key} == 1;   $tabtag=join('',$tabtag,"<td bgcolor=",$fileclr,">&nbsp;</td>") if $ENV{$key} == 1;
    $i++;
     }      }
   
     if ($filecom[1] eq "domain") {      if ($filecom[1] eq "domain") {
  $r->print("<tr>");   $r->print("<tr>");
  $r->print("<td bgcolor=$fileclr valign=bottom><a href=$filecom[0]/><img src=$iconpath","comp.blue.gif border=0></a>\n");   $r->print("<td bgcolor=$fileclr valign=bottom>");
  $r->print("Domain - $listname $tabtag</tr>");   &begin_form ($r,$filecom[0]);
    $r->print ("<input src=\"$iconpath");
    $r->print ("comp.blue.gif\"");
    $r->print (" name=\"submit\" height=\"22\" type=\"image\" border=\"0\">\n");
    $r->print("Domain - $listname $tabtag</tr></form>\n");
  return OK;   return OK;
     }      }
   
     if ($filecom[1] eq "user") {      if ($filecom[1] eq "user") {
  $r->print("<tr>");   $r->print("<tr>");
  $r->print("<td bgcolor=$fileclr valign=bottom>\n");   $r->print("<td bgcolor=$fileclr valign=bottom>\n");
    &begin_form ($r,$filecom[0]);
  my $count = 0;   my $count = 0;
  while ($count <= $ENV{'dirlist.lvl'}) {   while ($count <= $ENV{'dirlist.level'}) {
     $r->print("<img src=",$iconpath,"white_space_20_22.gif border=0>\n");      $r->print("<img src=",$iconpath,"white_space_20_22.gif border=0>\n");
     $count++;      $count++;
  }   }
  $r->print("<a href=$filecom[0]/><img src=$iconpath");   $r->print ("<input src=\"$iconpath");
  $r->print("right.gif border=0></a>\n") if $diropen == 0;   $r->print ("right.gif\"") if $diropen == 0;
  $r->print("down.gif border=0></a>\n") if $diropen == 1;   $r->print ("down.gif\"") if $diropen == 1;
    $r->print (" name=\"submit\" height=\"22\" type=\"image\" border=\"0\">\n");
  $r->print("<img src=",$iconpath,"quill.gif border=0>\n");   $r->print("<img src=",$iconpath,"quill.gif border=0>\n");
  $r->print("$listname $tabtag</tr>");   $r->print("$listname $tabtag</tr></form>\n");
  return OK;   return OK;
     }      }
   
Line 261  sub display_line{ Line 271  sub display_line{
  my $curfext = $file_ext[scalar(@file_ext)-1];   my $curfext = $file_ext[scalar(@file_ext)-1];
  my $count = 0;   my $count = 0;
  $r->print("<tr><td bgcolor=$fileclr>");   $r->print("<tr><td bgcolor=$fileclr>");
  while ($count <= $ENV{'dirlist.lvl'}) {   while ($count <= $ENV{'dirlist.level'}) {
     $r->print("<img src=",$iconpath,"white_space_20_22.gif border=0>\n");      $r->print("<img src=",$iconpath,"white_space_20_22.gif border=0>\n");
     $count++;      $count++;
  }   }
  $r->print("<img src=",$iconpath,"white_space_20_22.gif border=0>\n");   $r->print("<img src=",$iconpath,"white_space_20_22.gif border=0>\n");
  $r->print("<img src=$iconpath$curfext.gif border=0>\n");   $r->print("<img src=$iconpath$curfext.gif border=0>\n");
  $r->print(" <a href=$filecom[0]>",$listname,"</a> </td>");   $r->print(" <a href=$filecom[0]>",$listname,"</a> </td>\n");
  $r->print("<td bgcolor=$fileclr align=right valign=bottom> ",$filecom[8]," </td>") if $ENV{'form.attr0'} == 1;   $r->print("<td bgcolor=$fileclr align=right valign=bottom> ",$filecom[8]," </td>\n") if $ENV{'form.attr0'} == 1;
  $r->print("<td bgcolor=$fileclr valign=bottom> ".(localtime($filecom[9]))." </td>") if $ENV{'form.attr1'} == 1;   $r->print("<td bgcolor=$fileclr valign=bottom> ".(localtime($filecom[9]))." </td>\n") if $ENV{'form.attr1'} == 1;
  $r->print("<td bgcolor=$fileclr valign=bottom> ".(localtime($filecom[10]))." </td>") if $ENV{'form.attr2'} == 1;   $r->print("<td bgcolor=$fileclr valign=bottom> ".(localtime($filecom[10]))." </td>\n") if $ENV{'form.attr2'} == 1;
  $r->print("</tr>");   $r->print("</tr>\n");
     }      }
   
 # display directory  # display directory
     if ($fnptr == $dirptr) {      if ($fnptr == $dirptr) {
  my @file_ext = split (/\./,$listname);   my @file_ext = split (/\./,$listname);
  my $curfext = $file_ext[scalar(@file_ext)-1];   my $curfext = $file_ext[scalar(@file_ext)-1];
   
  $r->print("<tr><td bgcolor=$fileclr valign=bottom>");   $r->print("<tr><td bgcolor=$fileclr valign=bottom>");
    &begin_form ($r,$filecom[0]);
   
  my $count = 0;   my $count = 0;
  while ($count <= $ENV{'dirlist.lvl'}) {   while ($count <= $ENV{'dirlist.level'}) {
     $r->print("<img src=",$iconpath,"white_space_20_22.gif border=0>\n");      $r->print("<img src=",$iconpath,"white_space_20_22.gif border=0>\n");
     $count++;      $count++;
  }   }
  $r->print("<a href=$filecom[0]/><img src=$iconpath");  
  $r->print("right.gif border=0></a>\n") if $diropen == 0;   $r->print ("<input src=\"$iconpath");
  $r->print("down.gif border=0></a>\n") if $diropen == 1;   $r->print ("right.gif\"") if $diropen == 0;
    $r->print ("down.gif\"") if $diropen == 1;
    $r->print (" name=\"submit\" height=\"22\" type=\"image\" border=\"0\">\n");
  $r->print("<img src=",$iconpath,"folder.gif border=0>\n") if $diropen == 0;   $r->print("<img src=",$iconpath,"folder.gif border=0>\n") if $diropen == 0;
  $r->print("<img src=",$iconpath,"folder.open.gif border=0>\n") if $diropen == 1;   $r->print("<img src=",$iconpath,"folder.open.gif border=0>\n") if $diropen == 1;
  $r->print("$listname $tabtag</tr>");   $r->print("$listname $tabtag</tr></form>\n");
       }
   }
   
   sub begin_form {
       my ($r,$uri) = @_;
       my $currenturi = $r->uri;
       my $openuri = $ENV{'form.openuri'};
       if ($ENV{'form.openuri'} =~ /$currenturi\&/) {
    $openuri =~ s/$currenturi\&//;
       } else {
    $currenturi = join ('',$currenturi,"&");
    $openuri = join ('&',$ENV{'form.openuri'},$currenturi);
    $openuri =~ s/\&+/\&/g;
       }
       $r->print ("<form method=\"post\" name=\"dirpath\" action=\"$uri/\" enctype=\"application/x-www-form-urlencoded\">\n");
       $r->print ("<input type=hidden name=openuri value=\"$openuri\">\n");
   
       for (my $i=0; $i<=5; $i++) {
    $r->print ("<input type=hidden name=attr$i value=\"1\">\n") if $ENV{'form.attr'.$i} == 1;
     }      }
 }  }
   
Line 311  sub display_env { Line 343  sub display_env {
 1;  1;
 __END__  __END__
   
   
   
   

Removed from v.1.2  
changed lines
  Added in v.1.3


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