--- loncom/interface/lonindexer.pm 2001/06/15 19:05:26 1.10
+++ loncom/interface/lonindexer.pm 2001/06/26 21:11:18 1.12
@@ -12,6 +12,7 @@
# 06/01/2001 Scott Harrison
# 06/02/2001 Scott Harrison
# 06/15/2001 Scott Harrison
+# 06/26/2001 H. K. Ng
package Apache::lonindexer;
@@ -50,7 +51,6 @@ sub handler {
my $lonhost = $r->dir_config('lonHostID');
my $tabdir = $r->dir_config('lonTabDir');
-# my $iconpath='/res/adm/pages/indexericons/';
my $fileclr='#ffffe6';
# -------------------------------------- see if called from an interactive mode
map {
@@ -182,11 +182,11 @@ ENDHEADER
my (@attrchk,@openpath);
my $uri=$r->uri;
- $r->print("
The LearningOnline With CAPA Network Directory Browser
\n");
+ $r->print('
The LearningOnline With CAPA Network Directory Browser
'."\n");
- my $diropen = "/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_indexer.db";
+ my $diropendb = "/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_indexer.db";
- if (tie(%hash,'GDBM_File',$diropen,&GDBM_WRCREAT,0640)) {
+ if (tie(%hash,'GDBM_File',$diropendb,&GDBM_WRCREAT,0640)) {
if ($ENV{'form.attrs'} ne "") {
for (my $i=0; $i<=5; $i++) {
@@ -256,11 +256,23 @@ END
$dirs{$uri} = 'open';
}
}
-
- my $toplevel = "/res/";
+
+ my $bredir = $ENV{'form.dirPointer'};
+ my $toplevel;
+ $uri = $uri.'/' if $uri !~ /.*\/$/;
+ if ($uri eq "/res/" or $bredir ne "on") {
+ $hash{'top.level'} = $uri;
+ $toplevel = $uri;
+ } elsif ($bredir eq "on") {
+ if ($hash{'top.level'} eq "/res/") {
+ $toplevel = "/res/";
+ } else {
+ $toplevel = $uri;
+ }
+ }
my $indent = 0;
&scanDir ($r,$toplevel,$indent);
-
+
$r->print("");
$r->print("");
@@ -290,20 +302,20 @@ sub scanDir {
$compuri = join('',$strip,"/"); # domain list has /res/
$curdir = $compuri;
} else {
- $compuri = join('',$startdir,$strip,"/"); # user, dir & file having name only, i.e., w/o path
+ $compuri = join('',$startdir,$strip,"/"); # user, dir & file have name only, i.e., w/o path
$curdir = $startdir;
}
- my $diropen = 0;
+ my $diropen = "closed";
if (($dirptr&$testdir) or ($dom =~ /^(domain|user)$/)) {
while (my ($key,$val)= each %dupdirs) {
if ($key eq $compuri and $val eq "open") {
- $diropen = 1;
+ $diropen = "opened";
delete $dupdirs{key},$dirs{$key};
}
}
}
&display_line($r,$diropen,$line,$indent,$curdir,@list);
- &scanDir ($r,$compuri,$indent) if $diropen == 1;
+ &scanDir ($r,$compuri,$indent) if $diropen eq "opened";
}
$indent--;
}
@@ -339,7 +351,7 @@ sub match_ext {
my $dirptr=16384;
my $tabdir = $r->dir_config('lonTabDir');
- my $fn = $tabdir."/filetypes.tab";
+ my $fn = $tabdir.'/filetypes.tab';
if (-e $fn) {
my $FH=Apache::File->new($fn);
my @content=<$FH>;
@@ -376,21 +388,18 @@ sub display_line{
my $dirptr=16384;
my $fileclr="#ffffe6";
my $iconpath= $r->dir_config('lonIconsURL') . "/";
-# my $iconpath="/res/adm/pages/indexericons/";
my @filecom = split (/\&/,$line);
my @pathcom = split (/\//,$filecom[0]);
my $listname = $pathcom[scalar(@pathcom)-1];
my $fnptr = $filecom[3]&$dirptr;
my $msg = 'View '.$filecom[0].' resources';
- $msg = 'Close '.$filecom[0].' directory' if $diropen == 1;
+ $msg = 'Close '.$filecom[0].' directory' if $diropen eq "opened";
my $tabtag="";
my $i=0;
while ($i<=5) {
-# my $key="form.attr".$i;
-# $tabtag=join('',$tabtag,"