--- loncom/interface/lonindexer.pm 2001/06/02 16:57:35 1.9
+++ loncom/interface/lonindexer.pm 2001/08/07 14:02:27 1.14
@@ -1,6 +1,8 @@
# The LearningOnline Network with CAPA
+#
# Directory Indexer
# (Login Screen
+#
# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14 Gerd Kortemeyer)
# 11/23 Gerd Kortemeyer
# 07/20-08/04 H.K. Ng
@@ -11,6 +13,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;
@@ -27,7 +32,8 @@ my $hidden;
my $extrafield;
my $fnum;
sub BEGIN {
- my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.'/language.tab');
+ my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
+ '/language.tab');
map {
$_=~/(\w+)\s+([\w\s\-]+)/;
$language{$1}=$2;
@@ -40,7 +46,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 +55,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 {
@@ -64,6 +69,8 @@ sub handler {
$hidden=''; my $closebutton='';
my $groupimportbutton='';
my $colspan='';
+
+ $extrafield='';
if ($ENV{'form.catalogmode'} eq 'interactive') {
$extrafield='
'.
'
The LearningOnline Network With CAPA Directory Browser
-
+
@@ -181,11 +188,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 +219,7 @@ ENDHEADER
Keywords
Language
+
$hidden
@@ -255,11 +263,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 +314,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 +363,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 +399,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("$extrafield");
$r->print("");
&begin_form ($r,$filecom[0].'/');
my $anchor = $filecom[0].'/';
$anchor =~ s/\///g;
- $r->print ("\n print (" name=\"$msg\" height=\"22\" type=\"image\" border=\"0\">\n");
+ $r->print (' ');
+ $r->print (' print (' name="'.$msg.'" height="22" type="image" border="0">'."\n");
+ $r->print (' print (' border="0"> '."\n");
$r->print("Domain - $listname $tabtag \n");
return OK;
}
if ($filecom[1] eq "user") {
$r->print("$extrafield");
- $r->print("\n");
+ $r->print(" \n");
my $curdir = $startdir.$filecom[0].'/';
- &begin_form ($r,$curdir);
my $anchor = $curdir;
$anchor =~ s/\///g;
-# $r->print ("\n \n");
- $r->print (" \n \n");
- $r->print (" print ("folder_pointer_closed.gif\"") if $diropen == 0;
- $r->print ("folder_pointer_opened.gif\"") if $diropen == 1;
- $r->print (" name=\"$msg\" height=\"22\" type=\"image\" border=\"0\">\n");
- $r->print (" \n");
- $r->print ("$listname $tabtag \n");
+ &begin_form ($r,$curdir);
+ $r->print (' '."\n");
+ $r->print (' print (' name="'.$msg.'" height="22" type="image" border="0">'."\n");
+ $r->print (' ');
+ $r->print ($listname.$tabtag.''."\n");
return OK;
}
# display file
@@ -453,9 +488,9 @@ sub display_line{
$fnum++;
}
- if ($indent < 11) {
+ if ($indent > 0 and $indent < 11) {
$r->print(" \n");
- } else {
+ } elsif ($indent >0) {
my $ten = int($indent/10.);
my $rem = $indent%10.0;
my $count = 0;
@@ -467,15 +502,17 @@ sub display_line{
}
$r->print(" \n");
- $r->print(" ",$listname," \n");
+ $r->print (" $listname ");
$r->print (" (metadata ) ") if ($metafile == 1);
$r->print("\n");
-# $r->print(" ",$filecom[8]," \n") if $ENV{'form.attr0'} == 1;
- $r->print(" ",$filecom[8]," \n") if $hash{'display_attrs_0'} == 1;
- $r->print(" ".(localtime($filecom[9]))." \n") if $hash{'display_attrs_1'} == 1;
- $r->print(" ".(localtime($filecom[10]))." \n") if $hash{'display_attrs_2'} == 1;
+ $r->print(" ",$filecom[8]," \n")
+ if $hash{'display_attrs_0'} == 1;
+ $r->print(" ".(localtime($filecom[9]))." \n")
+ if $hash{'display_attrs_1'} == 1;
+ $r->print(" ".(localtime($filecom[10]))." \n")
+ if $hash{'display_attrs_2'} == 1;
if ($hash{'display_attrs_3'} == 1) {
my $author = &Apache::lonnet::metadata($filelink,'author') if ($metafile == 1);
@@ -505,40 +542,35 @@ sub display_line{
$r->print("$extrafield");
&begin_form ($r,$curdir);
my $indentm1 = $indent-1;
- if ($indentm1 < 11) {
+ if ($indentm1 < 11 and $indentm1 > 0) {
$r->print(" \n");
} else {
my $ten = int($indentm1/10.);
my $rem = $indentm1%10.0;
my $count = 0;
while ($count < $ten) {
- $r->print(" \n");
- $count++;
+ $r->print (" \n");
+ $count++;
}
- $r->print(" \n") if $rem > 0;
+ $r->print (" \n") if $rem > 0;
}
- $r->print ("\n print ("folder_pointer_closed.gif\"") if $diropen == 0;
- $r->print ("folder_pointer_opened.gif\"") if $diropen == 1;
- $r->print (" name=\"$msg\" height=\"22\" type=\"image\" border=\"0\">\n");
- $r->print(" \n") if $diropen == 0;
- $r->print(" \n") if $diropen == 1;
- $r->print("$listname $tabtag \n");
+ $r->print (' print (' name="'.$msg.'" height="22" type="image" border="0">'."\n");
+ $r->print (' '."\n");
+ $r->print ("$listname$tabtag\n");
}
}
-#---------------------prints the beginning of a form for directory or file link
+# ------------------- prints the beginning of a form for directory or file link
sub begin_form {
my ($r,$uri) = @_;
my $anchor = $uri;
$anchor =~ s/\///g;
- $r->print ("