--- loncom/publisher/lonretrieve.pm 2006/09/19 21:47:29 1.32
+++ loncom/publisher/lonretrieve.pm 2008/11/20 18:03:55 1.36
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to retrieve an old version of a file
#
-# $Id: lonretrieve.pm,v 1.32 2006/09/19 21:47:29 albertel Exp $
+# $Id: lonretrieve.pm,v 1.36 2008/11/20 18:03:55 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -28,6 +28,71 @@
#
###
+=head1 NAME
+
+Apache::lonretrieve - retrieves an old version of a file
+
+=head1 SYNOPSIS
+
+Invoked by /etc/httpd/conf/srm.conf:
+
+
+ PerlAccessHandler Apache::lonacc
+ SetHandler perl-script
+ PerlHandler Apache::lonretrieve
+ ErrorDocument 403 /adm/login
+ ErrorDocument 404 /adm/notfound.html
+ ErrorDocument 406 /adm/unauthorized.html
+ ErrorDocument 500 /adm/errorhandler
+
+
+=head1 INTRODUCTION
+
+This module retrieves an old published version of a file.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 HANDLER SUBROUTINE
+
+This routine is called by Apache and mod_perl.
+
+=over 4
+
+=item *
+
+Get query string for limited number of parameters
+
+=item *
+
+Start page output
+
+=item *
+
+print phase relevant output
+
+=item *
+
+(phase one is to select version; phase two retrieves version)
+
+=back
+
+=head1 OTHER SUBROUTINES
+
+=over 4
+
+=item *
+
+phaseone() : Interface for selecting previous version.
+
+=item *
+
+phasetwo() : Interface for presenting specified version.
+
+=back
+
+=cut
+
package Apache::lonretrieve;
use strict;
@@ -38,6 +103,7 @@ use Apache::loncacc;
use Apache::loncommon();
use Apache::lonlocal;
use Apache::lonnet;
+use LONCAPA();
# ------------------------------------ Interface for selecting previous version
sub phaseone {
@@ -125,15 +191,20 @@ sub phaseone {
}
$r->print(&Apache::loncommon::end_data_table_row().
&Apache::loncommon::end_data_table().
- '
'.
- ''.
- &mt('Retrieval of an old version will overwrite the file currently in construction space').'
'.
- '');
+ '
'.''.
+ &mt('Retrieval of an old version will overwrite the file currently in construction space.').'
');
+ if (!$is_meta) {
+ $r->print(''.''.
+ &mt('This will only retrieve the resource. If you want to retrieve the metadata, you will need to do that separately.').
+ '
');
+ }
+ $r->print('');
} else {
- $r->print(''.&mt('No previous versions published.').'
');
+ $r->print(''.&mt('No previous versions published.').'
');
}
- $r->print(''.&mt('Back to').' '.$fn.
- '
');
+ $r->print(''
+ .&mt('Back to [_1]',''.$fn.'')
+ .'
');
}
# ---------------------------------- Interface for presenting specified version
@@ -161,25 +232,32 @@ sub phasetwo {
if ($is_meta) { $logname =~ s/\.meta$//; }
$logname = $ctarget.'.log';
unless ($logfile=Apache::File->new('>>'.$logname)) {
- $r->print(
- ''.&mt('No write permission to user directory, FAIL').'');
+ $r->print(''
+ .&mt('No write permission to user directory, FAIL')
+ .'');
}
print $logfile
"\n\n================= Retrieve ".localtime()." ================\n".
"Version: $version\nSource: $csource\nTarget: $ctarget\n";
$r->print(''.&mt('Copying file').': ');
if (copy($csource,$ctarget)) {
- $r->print('ok
');
+ $r->print(''
+ .&mt('ok')
+ .'');
print $logfile "Copied sucessfully.\n\n";
} else {
my $error=$!;
- $r->print('fail, '.$error.'
');
+ $r->print(''
+ .&mt('Copy failed: [_1]',$error)
+ .'');
print $logfile "Copy failed: $error\n\n";
}
- $r->print(''.&mt('Back to').' '.$fn.'');
+ $r->print('
'
+ .''
+ .&mt('Back to [_1]',$fn)
+ .'
');
} else {
- $r->print(''.&mt('Please pick a version to retrieve').'');
+ $r->print('
'.&mt('Please pick a version to retrieve:').'
');
&phaseone($r,$fn,$uname,$udom);
}
}
@@ -238,7 +316,7 @@ sub handler {
return HTTP_NOT_ACCEPTABLE;
}
- $fn=~s/\/\~(\w+)//;
+ $fn=~s{/~($LONCAPA::username_re)}{};
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
@@ -246,7 +324,10 @@ sub handler {
$r->print(&Apache::loncommon::start_page('Retrieve Published Resources'));
- $r->print(''.&mt('Retrieve previous versions of').' '.$fn.'
');
+ $r->print(''
+ .&mt('Retrieve previous versions of [_1]'
+ ,''.$fn.'')
+ .'
');
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
$r->print(''.&mt('Co-Author').': '.$uname.
@@ -268,67 +349,4 @@ sub handler {
1;
__END__
-=head1 NAME
-
-Apache::lonretrieve - retrieves an old version of a file
-
-=head1 SYNOPSIS
-
-Invoked by /etc/httpd/conf/srm.conf:
-
- PerlAccessHandler Apache::lonacc
- SetHandler perl-script
- PerlHandler Apache::lonretrieve
- ErrorDocument 403 /adm/login
- ErrorDocument 404 /adm/notfound.html
- ErrorDocument 406 /adm/unauthorized.html
- ErrorDocument 500 /adm/errorhandler
-
-
-=head1 INTRODUCTION
-
-This module retrieves an old published version of a file.
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 HANDLER SUBROUTINE
-
-This routine is called by Apache and mod_perl.
-
-=over 4
-
-=item *
-
-Get query string for limited number of parameters
-
-=item *
-
-Start page output
-
-=item *
-
-print phase relevant output
-
-=item *
-
-(phase one is to select version; phase two retrieves version)
-
-=back
-
-=head1 OTHER SUBROUTINES
-
-=over 4
-
-=item *
-
-phaseone() : Interface for selecting previous version.
-
-=item *
-
-phasetwo() : Interface for presenting specified version.
-
-=back
-
-=cut