--- loncom/interface/lonindexer.pm 2001/06/02 16:57:35 1.9
+++ loncom/interface/lonindexer.pm 2001/07/08 18:31:10 1.13
@@ -11,6 +11,9 @@
# 05/31/2001 Scott Harrison
# 06/01/2001 Scott Harrison
# 06/02/2001 Scott Harrison
+# 06/15/2001 Scott Harrison
+# 06/26/2001 H. K. Ng
+# 07/08/2001 H. K. Ng
package Apache::lonindexer;
@@ -40,7 +43,7 @@ sub handler {
$r->send_http_header;
return OK if $r->header_only;
$fnum=0;
- my $iconpath= $r->dir_config('lonIconsURL');
+ my $iconpath= $r->dir_config('lonIconsURL') . "/";
my $domain = $r->dir_config('lonDefDomain');
my $role = $r->dir_config('lonRole');
my $loadlim = $r->dir_config('lonLoadLim');
@@ -49,7 +52,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 {
@@ -181,11 +183,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++) {
@@ -212,6 +214,7 @@ ENDHEADER
Keywords
Language
+
$hidden
@@ -255,11 +258,28 @@ END
$dirs{$uri} = 'open';
}
}
-
- my $toplevel = "/res/";
+
+ my $bredir = $ENV{'form.dirPointer'};
+ my $toplevel;
my $indent = 0;
- &scanDir ($r,$toplevel,$indent);
+ $uri = $uri.'/' if $uri !~ /.*\/$/;
+ if ($bredir ne "on") {
+ $hash{'top.level'} = $uri;
+ $toplevel = $uri;
+ } else {
+ $toplevel = $hash{'top.level'};
+ }
+ if ($toplevel ne "/res/"){
+ my (@uri_com) = split(/\//,$uri);
+ pop @uri_com;
+ my $upone = join('/',@uri_com);
+ my @list = qw (0);
+ &display_line ($r,'opened',$upone.'&viewOneUp',0,$upone,@list);
+ $indent = 1;
+ }
+ &scanDir ($r,$toplevel,$indent);
+
$r->print("");
$r->print("");
@@ -289,20 +309,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--;
}
@@ -338,7 +358,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>;
@@ -374,50 +394,60 @@ sub display_line{
my (@pathfn, $fndir, $fnptr);
my $dirptr=16384;
my $fileclr="#ffffe6";
- my $iconpath="/res/adm/pages/indexericons/";
+ my $iconpath= $r->dir_config('lonIconsURL') . "/";
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,"
") if $ENV{$key} == 1;
$tabtag=join('',$tabtag,"
") if $hash{'display_attrs_'.$i} == 1;
$i++;
}
+ if ($filecom[1] eq "viewOneUp") {
+ $r->print("
$extrafield");
+ $r->print("
\n");
+ $r->print ('
\n");
+ return OK;
+ }
if ($filecom[1] eq "domain") {
+ $r->print (''."\n") if ($ENV{'form.dirPointer'} eq "on");
$r->print("