version 1.52, 2002/08/21 17:18:08
|
version 1.63, 2003/03/19 14:50:32
|
Line 34
|
Line 34
|
# 05/9-05/19/2001 H. K. Ng |
# 05/9-05/19/2001 H. K. Ng |
# 05/21/2001 H. K. Ng |
# 05/21/2001 H. K. Ng |
# 05/23/2001 H. K. Ng |
# 05/23/2001 H. K. Ng |
# 5/31,6/1,6/2,6/15 Scott Harrison |
|
# 6/26,7/8 H. K. Ng |
# 6/26,7/8 H. K. Ng |
# 8/6,8/7,8/10 Scott Harrison |
|
# 8/14 H. K. Ng |
# 8/14 H. K. Ng |
# 8/28,10/15,11/28,11/29 Scott Harrison |
|
# 11/30 Matthew Hall |
# 11/30 Matthew Hall |
# 12/11,12/13 Scott Harrison |
|
# YEAR=2002 |
# YEAR=2002 |
# 1/17 Scott Harrison |
|
# 6/29/2002 H. K. Ng |
# 6/29/2002 H. K. Ng |
# |
# |
### |
### |
Line 373 $r->print(&Apache::loncommon::bodytag('B
|
Line 368 $r->print(&Apache::loncommon::bodytag('B
|
|
|
# ---------------------------------- get state of file attributes to be showing |
# ---------------------------------- get state of file attributes to be showing |
if ($ENV{'form.attrs'} ne '') { |
if ($ENV{'form.attrs'} ne '') { |
for (my $i=0; $i<=7; $i++) { |
for (my $i=0; $i<=8; $i++) { |
delete $hash{'display_attrs_'.$i}; |
delete $hash{'display_attrs_'.$i}; |
if ($ENV{'form.attr'.$i} == 1) { |
if ($ENV{'form.attr'.$i} == 1) { |
$attrchk[$i] = 'checked'; |
$attrchk[$i] = 'checked'; |
Line 381 $r->print(&Apache::loncommon::bodytag('B
|
Line 376 $r->print(&Apache::loncommon::bodytag('B
|
} |
} |
} |
} |
} else { |
} else { |
for (my $i=0; $i<=7; $i++) { |
for (my $i=0; $i<=8; $i++) { |
$attrchk[$i] = 'checked' if $hash{'display_attrs_'.$i} == 1; |
$attrchk[$i] = 'checked' if $hash{'display_attrs_'.$i} == 1; |
} |
} |
} |
} |
Line 395 $r->print(&Apache::loncommon::bodytag('B
|
Line 390 $r->print(&Apache::loncommon::bodytag('B
|
<td><input type="checkbox" name="attr1" value="1" $attrchk[1] /> Size</td> |
<td><input type="checkbox" name="attr1" value="1" $attrchk[1] /> Size</td> |
<td><input type="checkbox" name="attr2" value="1" $attrchk[2] /> Last access</td> |
<td><input type="checkbox" name="attr2" value="1" $attrchk[2] /> Last access</td> |
<td><input type="checkbox" name="attr3" value="1" $attrchk[3] /> Last modified</td> |
<td><input type="checkbox" name="attr3" value="1" $attrchk[3] /> Last modified</td> |
</tr><tr> |
<td><input type="checkbox" name="attr8" value="1" $attrchk[8] /> All versions</td></tr><tr> |
<td><input type="checkbox" name="attr4" value="1" $attrchk[4] /> Author</td> |
<td><input type="checkbox" name="attr4" value="1" $attrchk[4] /> Author</td> |
<td><input type="checkbox" name="attr5" value="1" $attrchk[5] /> Keywords</td> |
<td><input type="checkbox" name="attr5" value="1" $attrchk[5] /> Keywords</td> |
<td><input type="checkbox" name="attr6" value="1" $attrchk[6] /> Language</td> |
<td><input type="checkbox" name="attr6" value="1" $attrchk[6] /> Language</td> |
<td><input type="checkbox" name="attr7" value="1" $attrchk[7] /> All versions</td> |
<td><input type="checkbox" name="attr7" value="1" $attrchk[7] /> Show Resource</td> |
|
<td> </td> |
</tr></table> |
</tr></table> |
<input type="hidden" name="dirPointer" value="on" /> |
<input type="hidden" name="dirPointer" value="on" /> |
<input type="hidden" name="acts" value="" /> |
<input type="hidden" name="acts" value="" /> |
Line 432 END
|
Line 428 END
|
if ($hash{'display_attrs_5'} == 1); |
if ($hash{'display_attrs_5'} == 1); |
$r->print("<td><b>Language</b></td>\n") |
$r->print("<td><b>Language</b></td>\n") |
if ($hash{'display_attrs_6'} == 1); |
if ($hash{'display_attrs_6'} == 1); |
|
$r->print("<td><b>Resource</b></td>\n") |
|
if ($hash{'display_attrs_7'} == 1); |
$r->print('</tr>'); |
$r->print('</tr>'); |
|
|
# ----------------- read in what directories have previously been set to "open" |
# ----------------- read in what directories have previously been set to "open" |
Line 514 sub scanDir {
|
Line 512 sub scanDir {
|
my %dupdirs = %dirs; |
my %dupdirs = %dirs; |
my @list=&get_list($r,$startdir); |
my @list=&get_list($r,$startdir); |
foreach my $line (@list) { |
foreach my $line (@list) { |
my ($strip,$dom,$foo,$testdir,$foo)=split(/\&/,$line,5); |
my ($strip,$dom,undef,$testdir,undef)=split(/\&/,$line,5); |
next if $strip =~ /.*\.meta$/; |
next if $strip =~ /.*\.meta$/; |
my (@fileparts) = split(/\./,$strip); |
my (@fileparts) = split(/\./,$strip); |
if ($hash{'display_attrs_7'} != 1) { |
if ($hash{'display_attrs_8'} != 1) { |
if (scalar(@fileparts) >= 3) { |
if (scalar(@fileparts) >= 3) { |
my $fext = pop @fileparts; |
my $fext = pop @fileparts; |
my $ov = pop @fileparts; |
my $ov = pop @fileparts; |
my $fname = join ('.',@fileparts,$fext); |
my $fname = join ('.',@fileparts,$fext); |
next if (grep /$fname/,@list and $ov =~ /\d+/); |
next if (grep /\Q$fname\E/,@list and $ov =~ /\d+/); |
} |
} |
} |
} |
|
|
Line 539 sub scanDir {
|
Line 537 sub scanDir {
|
while (my ($key,$val)= each %dupdirs) { |
while (my ($key,$val)= each %dupdirs) { |
if ($key eq $compuri and $val eq "open") { |
if ($key eq $compuri and $val eq "open") { |
$diropen = "opened"; |
$diropen = "opened"; |
delete $dupdirs{key},$dirs{$key}; |
delete($dupdirs{$key}); |
|
delete($dirs{$key}); |
} |
} |
} |
} |
} |
} |
Line 625 sub match_ext {
|
Line 624 sub match_ext {
|
# ------------------------------- displays one line in appropriate table format |
# ------------------------------- displays one line in appropriate table format |
sub display_line { |
sub display_line { |
my ($r,$diropen,$line,$indent,$startdir,$hashref,@list)=@_; |
my ($r,$diropen,$line,$indent,$startdir,$hashref,@list)=@_; |
my (@pathfn, $fndir, $fnptr); |
my (@pathfn, $fndir); |
my $dirptr=16384; |
my $dirptr=16384; |
my $fileclr="#ffffe6"; |
my $fileclr="#ffffe6"; |
my $iconpath= $r->dir_config('lonIconsURL') . '/'; |
my $iconpath= $r->dir_config('lonIconsURL') . '/'; |
Line 640 sub display_line {
|
Line 639 sub display_line {
|
my $tabtag='</td>'; |
my $tabtag='</td>'; |
my $i=0; |
my $i=0; |
|
|
while ($i<=6) { |
while ($i<=7) { |
$tabtag=join('',$tabtag,"<td> </td>") |
$tabtag=join('',$tabtag,"<td> </td>") |
if $hash{'display_attrs_'.$i} == 1; |
if $hash{'display_attrs_'.$i} == 1; |
$i++; |
$i++; |
} |
} |
|
|
|
my $valign = ($hash{'display_attrs_7'} == 1 ? 'top' : 'bottom'); |
|
|
# display uplink arrow |
# display uplink arrow |
if ($filecom[1] eq 'viewOneUp') { |
if ($filecom[1] eq 'viewOneUp') { |
$r->print("<tr bgcolor=$fileclr>$extrafield"); |
$r->print("<tr bgcolor=$fileclr>$extrafield"); |
$r->print("<td valign=bottom>\n"); |
$r->print("<td valign=$valign>\n"); |
$r->print ('<form method="post" name="dirpathUP" action="'.$startdir. |
$r->print ('<form method="post" name="dirpathUP" action="'.$startdir. |
'/" '. |
'/" '. |
'onSubmit="return rep_dirpath(\'UP\','. |
'onSubmit="return rep_dirpath(\'UP\','. |
Line 671 sub display_line {
|
Line 672 sub display_line {
|
$r->print ('<input type="hidden" name="dirPointer" value="on">'."\n") |
$r->print ('<input type="hidden" name="dirPointer" value="on">'."\n") |
if ($ENV{'form.dirPointer'} eq "on"); |
if ($ENV{'form.dirPointer'} eq "on"); |
$r->print("<tr bgcolor=$fileclr>$extrafield"); |
$r->print("<tr bgcolor=$fileclr>$extrafield"); |
$r->print("<td valign=bottom>"); |
$r->print("<td valign=$valign>"); |
&begin_form ($r,$filecom[0].'/'); |
&begin_form ($r,$filecom[0].'/'); |
my $anchor = $filecom[0].'/'; |
my $anchor = $filecom[0].'/'; |
$anchor =~ s/\///g; |
$anchor =~ s/\///g; |
Line 684 sub display_line {
|
Line 685 sub display_line {
|
$r->print ('<a href="javascript:gothere(\''.$filecom[0]. |
$r->print ('<a href="javascript:gothere(\''.$filecom[0]. |
'/\')"><img src="'.$iconpath.'server.gif"'); |
'/\')"><img src="'.$iconpath.'server.gif"'); |
$r->print (' border="0" /></a>'."\n"); |
$r->print (' border="0" /></a>'."\n"); |
$r->print("Domain - $listname (". |
$r->print ("Domain - $listname "); |
$Apache::lonnet::domaindescription{$listname}.") $tabtag</tr></form>\n"); |
if ($Apache::lonnet::domaindescription{$listname}) { |
|
$r->print("(".$Apache::lonnet::domaindescription{$listname}. |
|
")"); |
|
} |
|
$r->print (" $tabtag</tr></form>\n"); |
return OK; |
return OK; |
|
|
# display user directory |
# display user directory |
} |
} |
if ($filecom[1] eq 'user') { |
if ($filecom[1] eq 'user') { |
$r->print("<tr bgcolor=$fileclr>$extrafield"); |
$r->print("<tr bgcolor=$fileclr>$extrafield"); |
$r->print("<td valign=bottom nowrap>\n"); |
$r->print("<td valign=$valign nowrap>\n"); |
my $curdir = $startdir.$filecom[0].'/'; |
my $curdir = $startdir.$filecom[0].'/'; |
my $anchor = $curdir; |
my $anchor = $curdir; |
$anchor =~ s/\///g; |
$anchor =~ s/\///g; |
Line 707 sub display_line {
|
Line 712 sub display_line {
|
$r->print ('<a href="javascript:gothere(\''.$curdir.'\')"><img src='. |
$r->print ('<a href="javascript:gothere(\''.$curdir.'\')"><img src='. |
$iconpath.'quill.gif border="0" name="'.$msg. |
$iconpath.'quill.gif border="0" name="'.$msg. |
'" height="22" /></a>'); |
'" height="22" /></a>'); |
$r->print ($listname.$tabtag.'</tr></form>'."\n"); |
my $domain=(split(m|/|,$startdir))[2]; |
|
my $plainname=&Apache::loncommon::plainname($listname,$domain); |
|
$r->print ($listname); |
|
if (defined($plainname) && $plainname) { $r->print(" ($plainname) "); } |
|
$r->print ($tabtag.'</tr></form>'."\n"); |
return OK; |
return OK; |
} |
} |
|
|
Line 732 sub display_line {
|
Line 741 sub display_line {
|
$iconname = $curfext.".gif" unless |
$iconname = $curfext.".gif" unless |
(!defined($embstyle) || $embstyle eq 'unk' || $embstyle eq 'hdn'); |
(!defined($embstyle) || $embstyle eq 'unk' || $embstyle eq 'hdn'); |
# |
# |
$r->print("<tr bgcolor=$fileclr><td nowrap valign='bottom'>"); |
$r->print("<tr bgcolor=$fileclr><td nowrap valign='$valign'>"); |
my $metafile = grep /^$filecom[0]\.meta\&/, @list; |
my $metafile = grep /^\Q$filecom[0]\E\.meta\&/, @list; |
my $title; |
my $title; |
if ($ENV{'form.catalogmode'} eq 'interactive') { |
if ($ENV{'form.catalogmode'} eq 'interactive') { |
$title=$listname; |
$title=$listname; |
Line 746 sub display_line {
|
Line 755 sub display_line {
|
$titleesc,"','",$filelink,"')\">"); |
$titleesc,"','",$filelink,"')\">"); |
$r->print("<img src='",$iconpath,"select.gif' border='0' /></a>". |
$r->print("<img src='",$iconpath,"select.gif' border='0' /></a>". |
"\n"); |
"\n"); |
$r->print("</td><td valign='bottom' nowrap>"); |
$r->print("</td><td valign='$valign' nowrap>"); |
} |
} |
elsif ($ENV{'form.catalogmode'} eq 'groupimport') { |
elsif ($ENV{'form.catalogmode'} eq 'groupimport') { |
$title=$listname; |
$title=$listname; |
Line 765 sub display_line {
|
Line 774 sub display_line {
|
$r->print("<input type='hidden' name='title"."' ". |
$r->print("<input type='hidden' name='title"."' ". |
"value='$titleesc'>\n"); |
"value='$titleesc'>\n"); |
$r->print("</form>\n"); |
$r->print("</form>\n"); |
$r->print("</td><td valign='bottom' nowrap>"); |
$r->print("</td><td valign='$valign' nowrap>"); |
$hash{"pre_${fnum}_link"}=$filelink; |
$hash{"pre_${fnum}_link"}=$filelink; |
$hash{"pre_${fnum}_title"}=$titleesc; |
$hash{"pre_${fnum}_title"}=$titleesc; |
$fnum++; |
$fnum++; |
Line 800 sub display_line {
|
Line 809 sub display_line {
|
if ($hash{'display_attrs_0'} == 1) { |
if ($hash{'display_attrs_0'} == 1) { |
my $title = &Apache::lonnet::metadata($filelink,'title') |
my $title = &Apache::lonnet::metadata($filelink,'title') |
if ($metafile == 1); |
if ($metafile == 1); |
$r->print('<td valign=bottom> '.($title eq '' ? ' ' : $title). |
$r->print('<td valign=$valign> '.($title eq '' ? ' ' : $title). |
' </td>'."\n"); |
' </td>'."\n"); |
} |
} |
$r->print('<td align=right valign=bottom> ', |
$r->print('<td align=right valign=$valign> ', |
$filecom[8]," </td>\n") |
$filecom[8]," </td>\n") |
if $hash{'display_attrs_1'} == 1; |
if $hash{'display_attrs_1'} == 1; |
$r->print('<td valign=bottom> '. |
$r->print('<td valign=$valign> '. |
(localtime($filecom[9]))." </td>\n") |
(localtime($filecom[9]))." </td>\n") |
if $hash{'display_attrs_2'} == 1; |
if $hash{'display_attrs_2'} == 1; |
$r->print('<td valign=bottom> '. |
$r->print('<td valign=$valign> '. |
(localtime($filecom[10]))." </td>\n") |
(localtime($filecom[10]))." </td>\n") |
if $hash{'display_attrs_3'} == 1; |
if $hash{'display_attrs_3'} == 1; |
|
|
if ($hash{'display_attrs_4'} == 1) { |
if ($hash{'display_attrs_4'} == 1) { |
my $author = &Apache::lonnet::metadata($filelink,'author') |
my $author = &Apache::lonnet::metadata($filelink,'author') |
if ($metafile == 1); |
if ($metafile == 1); |
$r->print('<td valign=bottom> '.($author eq '' ? ' ' : $author). |
$r->print('<td valign=$valign> '.($author eq '' ? ' ' : $author). |
" </td>\n"); |
" </td>\n"); |
} |
} |
if ($hash{'display_attrs_5'} == 1) { |
if ($hash{'display_attrs_5'} == 1) { |
my $keywords = &Apache::lonnet::metadata($filelink,'keywords') |
my $keywords = &Apache::lonnet::metadata($filelink,'keywords') |
if ($metafile == 1); |
if ($metafile == 1); |
# $keywords = ' ' if (!$keywords); |
# $keywords = ' ' if (!$keywords); |
$r->print('<td valign=bottom> '.($keywords eq '' ? ' ' : $keywords). |
$r->print('<td valign=$valign> '.($keywords eq '' ? ' ' : $keywords). |
" </td>\n"); |
" </td>\n"); |
} |
} |
if ($hash{'display_attrs_6'} == 1) { |
if ($hash{'display_attrs_6'} == 1) { |
my $lang = &Apache::lonnet::metadata($filelink,'language') |
my $lang = &Apache::lonnet::metadata($filelink,'language') |
if ($metafile == 1); |
if ($metafile == 1); |
$lang = &Apache::loncommon::languagedescription($lang); |
$lang = &Apache::loncommon::languagedescription($lang); |
$r->print('<td valign=bottom> '.($lang eq '' ? ' ' : $lang). |
$r->print('<td valign=$valign> '.($lang eq '' ? ' ' : $lang). |
" </td>\n"); |
" </td>\n"); |
} |
} |
|
if ($hash{'display_attrs_7'} == 1) { |
|
my $output=''; |
|
my $embstyle=&Apache::loncommon::fileembstyle($curfext); |
|
if ($embstyle eq 'ssi') { |
|
$output=&Apache::lonnet::ssi_body($filelink); |
|
$output='<font size="-2">'.$output.'</font>'; |
|
} elsif ($embstyle eq 'img') { |
|
$output='<img src="'.$filelink.'" />'; |
|
} elsif ($filelink=~/^\/res\/(\w+)\/(\w+)\//) { |
|
$output='<img src="http://'. |
|
$Apache::lonnet::hostname{&Apache::lonnet::homeserver($2,$1)}. |
|
'/cgi-bin/thumbnail.gif?url='.$filelink.'" />'; |
|
} |
|
$r->print('<td valign=$valign> '.($output eq '' ? ' ':$output). |
|
" </td>\n"); |
|
} |
$r->print("</tr>\n"); |
$r->print("</tr>\n"); |
} |
} |
|
|
Line 843 sub display_line {
|
Line 868 sub display_line {
|
my $curdir = $startdir.$filecom[0].'/'; |
my $curdir = $startdir.$filecom[0].'/'; |
my $anchor = $curdir; |
my $anchor = $curdir; |
$anchor =~ s/\///g; |
$anchor =~ s/\///g; |
$r->print("<tr bgcolor=$fileclr>$extrafield<td valign=bottom>"); |
$r->print("<tr bgcolor=$fileclr>$extrafield<td valign=$valign>"); |
&begin_form ($r,$curdir); |
&begin_form ($r,$curdir); |
my $indentm1 = $indent-1; |
my $indentm1 = $indent-1; |
if ($indentm1 < 11 and $indentm1 > 0) { |
if ($indentm1 < 11 and $indentm1 > 0) { |
Line 918 sub setvalues {
|
Line 943 sub setvalues {
|
|
|
1; |
1; |
|
|
|
sub cleanup { |
|
if (tied(%hash)){ |
|
&Apache::lonnet::logthis('Cleanup indexer: hash'); |
|
unless (untie(%hash)) { |
|
&Apache::lonnet::logthis('Failed cleanup indexer: hash'); |
|
} |
|
} |
|
} |
|
|
=head1 NAME |
=head1 NAME |
|
|
Apache::lonindexer - mod_perl module for cross server filesystem browsing |
Apache::lonindexer - mod_perl module for cross server filesystem browsing |