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,"> </td>") if $ENV{$key} == 1; |
$tabtag=join('',$tabtag,"<td bgcolor=",$fileclr,"> </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__ |
|
|
|
|
|
|
|
|