version 1.3, 2000/08/03 21:19:44
|
version 1.4, 2000/08/04 19:24:12
|
Line 3
|
Line 3
|
# (Login Screen |
# (Login Screen |
# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14 Gerd Kortemeyer) |
# 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 |
# 11/23 Gerd Kortemeyer |
|
# 07/20-08/04 H.K. Ng |
# |
# |
package Apache::lonindexer; |
package Apache::lonindexer; |
|
|
Line 40 ENDHEADER
|
Line 41 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 59 ENDHEADER
|
Line 59 ENDHEADER
|
</tr></table> |
</tr></table> |
<input type=hidden name=openuri value="$ENV{'form.openuri'}"> |
<input type=hidden name=openuri value="$ENV{'form.openuri'}"> |
<input type="submit" name="dirlistattr" value="Review"> |
<input type="submit" name="dirlistattr" value="Review"> |
|
<input type="submit" name="dirlistattr" value="Refresh"> |
</form> |
</form> |
END |
END |
my $titleclr="#ddffff"; |
my $titleclr="#ddffff"; |
Line 72 END
|
Line 73 END
|
$r->print("<td bgcolor=$titleclr><b>Last modified</b></td>\n") 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.level'} eq "") { |
|
my %dirlevel; |
|
$dirlevel{'dirlist.level'}='-2'; |
|
&Apache::lonnet::appenv(%dirlevel); |
|
} else { |
|
$ENV{'dirlist.level'}='-2'; |
|
} |
|
if ($ENV{'form.openuri'} =~ /$uri\&/) { |
if ($ENV{'form.openuri'} =~ /$uri\&/) { |
my @pathcom = split(/\//,$uri); |
my @pathcom = split(/\//,$uri); |
pop @pathcom; |
pop @pathcom; |
my $splituri = join ('/',@pathcom); |
my $splituri = join ('/',@pathcom); |
$uri = join ('',$splituri,"/"); |
$uri = join ('',$splituri,"/"); |
} |
} |
|
|
|
|
|
my $openuri = $ENV{'form.openuri'}; |
|
# $r->print ("<hr>openuri=$openuri<br>"); |
|
$openuri =~ s/$uri(.*)\&//g; |
|
# $r->print ("<hr>parsed openuri=$openuri<br>"); |
|
@openpath = split(/\&/,$openuri); |
|
# $r->print ("<hr>open path=@openpath<br>"); |
|
push @openpath, $uri; |
|
# $r->print ("<hr>append current uri to open path=@openpath<br>"); |
|
@openpath = sort @openpath; |
|
# $r->print ("<hr>sorted open path=@openpath<br>"); |
|
|
|
|
|
my $indent = -1; |
&display_line ($r,1,"/res/".$domain."&domain"); |
&display_line ($r,1,"/res/".$domain."&domain"); |
# $domain="/res/".$domain."/"; |
&branch ($r,"/res/".$domain."/",$indent,@openpath); |
&branch($r,"/res/".$domain."/",$uri); |
|
|
|
$r->print("</table>"); |
$r->print("</table>"); |
$r->print("</td></tr></table>"); |
$r->print("</td></tr></table>"); |
Line 101 END
|
Line 109 END
|
# print "Dir list<br>".join('<br>',@packlist)."<br>"; |
# print "Dir list<br>".join('<br>',@packlist)."<br>"; |
|
|
sub branch { |
sub branch { |
my ($r,$uri,$calluri)=@_; |
my ($r,$uri,$indent,@openuri)=@_; |
my ($line,@list); |
my ($calluri,$line,@list); |
my ($domusr,$foo,$strip,$testdir,$compuri,$chkdir,$diropen); |
my ($domusr,$foo,$strip,$testdir,$compuri,$chkdir,$diropen); |
my $dirptr=16384; |
my $dirptr=16384; |
$ENV{'dirlist.level'}++; |
$indent++; |
|
|
@list=&get_list($r,$uri); |
foreach $calluri (@openuri) { |
foreach $line (@list) { |
@list=&get_list($r,$uri); |
chomp $line; |
foreach $line (@list) { |
|
chomp $line; |
($strip,$domusr,$foo,$testdir,$foo)=split(/\&/,$line,5); |
|
$compuri=join("",$strip,"/"); |
|
$chkdir=$testdir&$dirptr; |
|
if ($domusr eq "domain" or $domusr eq "user") { |
|
$chkdir = $dirptr; |
|
$testdir = $dirptr; |
|
} |
|
$diropen = 0; |
|
$diropen = 1 if ($compuri eq $calluri); |
|
&display_line($r,$diropen,$line); |
|
|
|
&branch($r,$compuri,$calluri) if ($calluri =~ $compuri and $calluri=~/^$uri/ and $chkdir == $dirptr and $testdir ne ""); |
($strip,$domusr,$foo,$testdir,$foo)=split(/\&/,$line,5); |
|
$compuri=join("",$strip,"/"); |
|
$chkdir=$testdir&$dirptr; |
|
if ($domusr eq "domain" or $domusr eq "user") { |
|
$chkdir = $dirptr; |
|
$testdir = $dirptr; |
|
} |
|
$diropen = 0; |
|
$diropen = 1 if ($compuri eq $calluri); |
|
&display_line($r,$diropen,$line,$indent); |
|
|
|
my @securi; |
|
push @securi,$calluri; |
|
&branch($r,$compuri,$indent,@securi) if ($calluri =~ $compuri and $calluri=~/^$uri/ and $chkdir == $dirptr and $testdir ne ""); |
|
} |
} |
} |
$ENV{'dirlist.level'}--; |
$indent--; |
} |
} |
|
|
# ------ get complete list based on the uri ------ |
# ------ get complete list based on the uri ------ |
Line 133 sub get_list {
|
Line 145 sub get_list {
|
my @list; |
my @list; |
my $luri=$uri; |
my $luri=$uri; |
$luri=~s/\//_/g; |
$luri=~s/\//_/g; |
|
unlink "/home/httpd/perl/tmp/$ENV{'user.name'}_dirlist*.tmp" if ($ENV{'form.dirlistattr'} eq "Refresh"); |
my $dirlist = "/home/httpd/perl/tmp/$ENV{'user.name'}_dirlist$luri.tmp"; |
my $dirlist = "/home/httpd/perl/tmp/$ENV{'user.name'}_dirlist$luri.tmp"; |
if (-e $dirlist) { |
if (-e $dirlist) { |
my $FH = Apache::File->new($dirlist); |
my $FH = Apache::File->new($dirlist); |
Line 214 sub match_ext {
|
Line 227 sub match_ext {
|
} |
} |
|
|
sub display_line{ |
sub display_line{ |
my ($r,$diropen,$line)=@_; |
my ($r,$diropen,$line,$indent)=@_; |
my (@pathfn, $fndir, $fnptr); |
my (@pathfn, $fndir, $fnptr); |
my $dirptr=16384; |
my $dirptr=16384; |
my $fileclr="#ffffe6"; |
my $fileclr="#ffffe6"; |
Line 224 sub display_line{
|
Line 237 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 $indent = $ENV{'dirlist.level'}; |
|
|
|
my $tabtag="</td>"; |
my $tabtag="</td>"; |
my $nextline; |
my $nextline; |
Line 252 sub display_line{
|
Line 264 sub display_line{
|
$r->print("<td bgcolor=$fileclr valign=bottom>\n"); |
$r->print("<td bgcolor=$fileclr valign=bottom>\n"); |
&begin_form ($r,$filecom[0]); |
&begin_form ($r,$filecom[0]); |
my $count = 0; |
my $count = 0; |
while ($count <= $ENV{'dirlist.level'}) { |
while ($count <= $indent) { |
$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 ("<input src=\"$iconpath"); |
$r->print ("<input src=\"$iconpath"); |
$r->print ("right.gif\"") if $diropen == 0; |
$r->print ("folder_pointer_closed.gif\"") if $diropen == 0; |
$r->print ("down.gif\"") if $diropen == 1; |
$r->print ("folder_pointer_opened.gif\"") if $diropen == 1; |
$r->print (" name=\"submit\" height=\"22\" type=\"image\" border=\"0\">\n"); |
$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></form>\n"); |
$r->print("$listname $tabtag</tr></form>\n"); |
Line 271 sub display_line{
|
Line 283 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.level'}) { |
while ($count <= $indent) { |
$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++; |
} |
} |
Line 292 sub display_line{
|
Line 304 sub display_line{
|
&begin_form ($r,$filecom[0]); |
&begin_form ($r,$filecom[0]); |
|
|
my $count = 0; |
my $count = 0; |
while ($count <= $ENV{'dirlist.level'}) { |
while ($count <= $indent) { |
$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 ("<input src=\"$iconpath"); |
$r->print ("<input src=\"$iconpath"); |
$r->print ("right.gif\"") if $diropen == 0; |
$r->print ("folder_pointer_closed.gif\"") if $diropen == 0; |
$r->print ("down.gif\"") if $diropen == 1; |
$r->print ("folder_pointer_opened.gif\"") if $diropen == 1; |
$r->print (" name=\"submit\" height=\"22\" type=\"image\" border=\"0\">\n"); |
$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_closed.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_opened.gif border=0>\n") if $diropen == 1; |
$r->print("$listname $tabtag</tr></form>\n"); |
$r->print("$listname $tabtag</tr></form>\n"); |
} |
} |
} |
} |
Line 311 sub begin_form {
|
Line 323 sub begin_form {
|
my ($r,$uri) = @_; |
my ($r,$uri) = @_; |
my $currenturi = $r->uri; |
my $currenturi = $r->uri; |
my $openuri = $ENV{'form.openuri'}; |
my $openuri = $ENV{'form.openuri'}; |
if ($ENV{'form.openuri'} =~ /$currenturi\&/) { |
if ($ENV{'form.openuri'} =~ /$currenturi(.*)\&/) { |
$openuri =~ s/$currenturi\&//; |
$openuri =~ s/$currenturi(.*)\&//g; |
} else { |
} else { |
$currenturi = join ('',$currenturi,"&"); |
$currenturi = join ('',$currenturi,"&"); |
$openuri = join ('&',$ENV{'form.openuri'},$currenturi); |
$openuri = join ('&',$ENV{'form.openuri'},$currenturi); |
Line 342 sub display_env {
|
Line 354 sub display_env {
|
|
|
1; |
1; |
__END__ |
__END__ |
|
|
|
|
|
|
|
|