version 1.1, 2001/04/01 02:58:51
|
version 1.2, 2001/04/03 18:12:57
|
Line 20 use Apache::File;
|
Line 20 use Apache::File;
|
use File::Copy; |
use File::Copy; |
use Apache::Constants qw(:common :http :methods); |
use Apache::Constants qw(:common :http :methods); |
|
|
|
sub phaseone { |
|
my ($r,$fn,$uname,$udom)=@_; |
|
my $docroot=$r->dir_config('lonDocRoot'); |
|
|
|
my $resdir=$docroot.'/res/'.$udom.'/'.$uname.$fn; |
|
$resdir=~s/\/[^\/]+$/\//; |
|
|
|
$fn=~/^\/(.+)\.(\w+)$/; |
|
my $main=$1; |
|
my $suffix=$2; |
|
|
|
my $filename; |
|
opendir(DIR,$resdir); |
|
while ($filename=readdir(DIR)) { |
|
if ($filename=~/^$main\.(\d+)\.$suffix$/) { |
|
$r->print($resdir.' = '.$filename.'<br>'); |
|
} |
|
} |
|
closedir(DIR); |
|
} |
|
|
sub handler { |
sub handler { |
|
|
Line 29 sub handler {
|
Line 49 sub handler {
|
|
|
if ($ENV{'form.filename'}) { |
if ($ENV{'form.filename'}) { |
$fn=$ENV{'form.filename'}; |
$fn=$ENV{'form.filename'}; |
$fn=~s/^http\:\/\/[^\/]+\/\~(\w+)/\/home\/$1\/public_html/; |
$fn=~s/^http\:\/\/[^\/]+\/\~(\w+)//; |
$fn=~s/\/[^\/]+$//; |
|
} else { |
} else { |
$fn=$r->filename(); |
$r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}. |
|
' unspecified filename for retrieval', $r->filename); |
|
return HTTP_NOT_FOUND; |
} |
} |
|
|
|
|
unless ($fn) { |
unless ($fn) { |
$r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}. |
$r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}. |
' trying to publish empty directory', $r->filename); |
' trying to retrieve non-existing file', $r->filename); |
return HTTP_NOT_FOUND; |
return HTTP_NOT_FOUND; |
} |
} |
|
|
Line 55 sub handler {
|
Line 75 sub handler {
|
$r->print( |
$r->print( |
'<body bgcolor="#FFFFFF"><img align=right src=/adm/lonIcons/lonlogos.gif>'); |
'<body bgcolor="#FFFFFF"><img align=right src=/adm/lonIcons/lonlogos.gif>'); |
|
|
my $thisdisfn=$fn; |
|
$thisdisfn=~s/^\/home\/$uname\/public_html//; |
|
|
|
$r->print('<h1>Construction Space Directory <tt>'.$thisdisfn.'</tt></h1>'); |
$r->print('<h1>Retrieve previous versions of <tt>'.$fn.'</tt></h1>'); |
|
|
my $docroot=$r->dir_config('lonDocRoot'); |
|
|
|
my $resdir=$docroot.'/res/'.$udom.'/'.$uname.$thisdisfn; |
|
my $linkdir='/~'.$uname.$thisdisfn; |
|
|
|
my $filename; |
|
opendir(DIR,$fn); |
|
while ($filename=readdir(DIR)) { |
|
$filename=~/\.(\w+)$/; |
|
if (($1 ne 'meta') && ($1 ne 'save') && ($1 ne 'log')) { |
|
$r->print($resdir.' - '.$linkdir.' = '.$filename.'<br>'); |
|
} |
|
} |
|
closedir(DIR); |
|
|
|
|
if ($ENV{'form.phase'} eq 'two') { |
|
} else { |
|
&phaseone($r,$fn,$uname,$udom); |
|
} |
|
|
$r->print('</body></html>'); |
$r->print('</body></html>'); |
return OK; |
return OK; |