--- loncom/publisher/lonretrieve.pm 2011/10/31 01:30:38 1.45
+++ loncom/publisher/lonretrieve.pm 2011/10/31 17:27:10 1.46
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to retrieve an old version of a file
#
-# $Id: lonretrieve.pm,v 1.45 2011/10/31 01:30:38 raeburn Exp $
+# $Id: lonretrieve.pm,v 1.46 2011/10/31 17:27:10 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -108,14 +108,12 @@ use LONCAPA();
# ------------------------------------ Interface for selecting previous version
sub phaseone {
my ($r,$fn,$uname,$udom)=@_;
- my $docroot=$r->dir_config('lonDocRoot');
- my $urldir='/res/'.$udom.'/'.$uname.$fn;
- $urldir=~s/\/[^\/]+$/\//;
+ my $urldir = "/res/$udom/$uname".$fn;
+ my $resfn = $r->dir_config('lonDocRoot').$urldir;
- my $resfn=$docroot.'/res/'.$udom.'/'.$uname.$fn;
- my $resdir=$resfn;
- $resdir=~s/\/[^\/]+$/\//;
+ $urldir =~ s{[^/]+$}{};
+ my $resdir = $r->dir_config('lonDocRoot').$urldir;
my ($main,$suffix,$is_meta) = &get_file_info($fn);
@@ -207,16 +205,19 @@ sub phaseone {
my $dir = &Apache::loncommon::authorspace()
.&File::Basename::dirname($fn)
.'/';
- $r->print(&Apache::lonhtmlcommon::start_funclist()
- .&Apache::lonhtmlcommon::add_item_funclist(
- ''
- .&mt('Back to Resource')
- .'')
- .&Apache::lonhtmlcommon::add_item_funclist(
- ''
- .&mt('Back to Directory')
- .'')
- .&Apache::lonhtmlcommon::end_funclist()
+ $r->print('
'
+ .&Apache::loncommon::head_subbox(
+ &Apache::lonhtmlcommon::start_funclist()
+ .&Apache::lonhtmlcommon::add_item_funclist(
+ ''
+ .&mt('Back to Resource')
+ .'')
+ .&Apache::lonhtmlcommon::add_item_funclist(
+ ''
+ .&mt('Back to Directory')
+ .'')
+ .&Apache::lonhtmlcommon::end_funclist()
+ )
);
}
@@ -233,13 +234,13 @@ sub phasetwo {
my ($main,$suffix,$is_meta) = &get_file_info($fn);
my $logfile;
- my $ctarget=$r->dir_config('lonDocRoot').'/priv/'.$udom.'/'.$uname.$fn;
+ my $ctarget=$r->dir_config('lonDocRoot')."/priv/$udom/$uname".$fn;
my $vfn=$fn;
if ($version ne 'new') {
$vfn=~s/\.(\Q$suffix\E)$/\.$version\.$1/;
}
- my $csource=$r->dir_config('lonDocRoot').'/res/'.$udom.'/'.$uname.$vfn;
+ my $csource=$r->dir_config('lonDocRoot')."/res/$udom/$uname".$vfn;
my $logname = $ctarget;
if ($is_meta) { $logname =~ s/\.meta$//; }
@@ -302,7 +303,7 @@ sub handler {
if ($env{'form.filename'}) {
$fn=$env{'form.filename'};
- $fn=~s/^https?\:\/\/[^\/]+//;
+ $fn =~ s{^https?\://[^/]+}{};
} else {
$r->log_reason($env{'user.name'}.' at '.$env{'user.domain'}.
' unspecified filename for retrieval', $r->filename);
@@ -328,8 +329,6 @@ sub handler {
return HTTP_NOT_ACCEPTABLE;
}
- $fn=~s{/priv/$LONCAPA::domain_re/$LONCAPA::username_re}{};
-
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
@@ -344,12 +343,18 @@ sub handler {
'href' => '',
});
+ my $londocroot = $r->dir_config('lonDocRoot');
+ my $trailfile = $fn;
+ $trailfile =~ s{^/(priv/)}{$londocroot/$1};
+
$r->print(&Apache::loncommon::start_page('Retrieve Published Resources')
.&Apache::lonhtmlcommon::breadcrumbs()
.&Apache::loncommon::head_subbox(
- &Apache::loncommon::CSTR_pageheader()) # FIXME crumbs broken?
+ &Apache::loncommon::CSTR_pageheader($trailfile))
);
+ $fn=~s{/priv/$LONCAPA::domain_re/$LONCAPA::username_re}{};
+
$r->print('
' .&mt('Retrieve previous versions of [_1]' ,''.$fn.'')