--- loncom/publisher/lonupload.pm 2008/12/12 02:42:49 1.38.2.1
+++ loncom/publisher/lonupload.pm 2009/07/06 13:30:49 1.48
@@ -2,7 +2,7 @@
# The LearningOnline Network with CAPA
# Handler to upload files into construction space
#
-# $Id: lonupload.pm,v 1.38.2.1 2008/12/12 02:42:49 raeburn Exp $
+# $Id: lonupload.pm,v 1.48 2009/07/06 13:30:49 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -28,6 +28,92 @@
#
###
+=head1 NAME
+
+Apache::lonupload - upload files into construction space
+
+=head1 SYNOPSIS
+
+Invoked by /etc/httpd/conf/srm.conf:
+
+
+ PerlAccessHandler Apache::lonacc
+ SetHandler perl-script
+ PerlHandler Apache::lonupload
+ ErrorDocument 403 /adm/login
+ ErrorDocument 404 /adm/notfound.html
+ ErrorDocument 406 /adm/unauthorized.html
+ ErrorDocument 500 /adm/errorhandler
+
+
+=head1 INTRODUCTION
+
+This module uploads a file sitting on a client computer into
+library server construction space.
+
+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 *
+
+Initialize variables
+
+=item *
+
+Start page output
+
+=item *
+
+output relevant interface phase (phaseone or phasetwo or phasethree)
+
+=item *
+
+(phase one is to specify upload file; phase two is to handle conditions
+subsequent to specification--like overwriting an existing file; phase three
+is to handle processing of secondary uploads - of embedded objects in an
+html file).
+
+=back
+
+=head1 OTHER SUBROUTINES
+
+=over
+
+=item phaseone()
+
+Interface for specifying file to upload.
+
+=item phasetwo()
+
+Interface for handling post-conditions about uploading (such
+as overwriting an existing file).
+
+=item phasethree()
+
+Interface for handling secondary uploads of embedded objects
+in an html file.
+
+=item upfile_store()
+
+Store contents of uploaded file into temporary space. Invoked
+by phaseone subroutine.
+
+=item check_extension()
+
+Checks if filename extension is permitted and checks type
+ of file - if html file, calls parser to check for embedded objects.
+ Invoked by phasetwo subroutine.
+
+=back
+
+=cut
+
package Apache::lonupload;
use strict;
@@ -99,33 +185,33 @@ sub phaseone {
&upfile_store.'" />'.
''.&mt('Save uploaded file as [_1]',
- '/priv/'.$uname.'/'.
+ "/priv/$uname/".
'').
' '.
' '.&mt('Choose file type:').'
'.&Apache::loncommon::help_open_topic("Uploading_File_Options").'
');
- $r->print('');
+ $r->print('');
# Check for bad extension and warn user
if ($fn=~/\.(\w+)$/ &&
(&Apache::loncommon::fileembstyle($1) eq 'hdn')) {
- $r->print('
'
- .&mt('The extension on this file, [_1], is reserved internally by LON-CAPA.','"'.$1.'"' ).
- .' '.&mt('Please change the extension.')
+ $r->print('
'
+ .&mt('The extension on this file, [_1], is reserved internally by LON-CAPA.','"'.$1.'"')
+ .' '.&mt('Please change the extension.')
.'
'
- .&mt('The extension on this file, [_1], is not recognized by LON-CAPA.','"'.$1.'"')
- .' '.&mt('Please change the extension.')
- .'
');
+ $r->print('
'
+ .&mt('The extension on this file, [_1], is not recognized by LON-CAPA.','"'.$1.'"')
+ .' '.&mt('Please change the extension.')
+ .'
');
}
} else {
$r->print(''.&mt('Illegal filename.').'');
@@ -335,7 +421,7 @@ function verifyForm() {
my $fn;
if ($env{'form.filename'}) {
$fn=$env{'form.filename'};
- $fn=~s/^http\:\/\/[^\/]+\///;
+ $fn=~s/^https?\:\/\/[^\/]+\///;
$fn=~s/^\///;
$fn=~s{(~|priv/)($LONCAPA::username_re)}{};
$fn=~s/\/+/\//g;
@@ -354,12 +440,23 @@ function verifyForm() {
$javascript = "\n";
+ # Breadcrumbs
+ my $brcrum = [{'href' => &Apache::loncommon::authorspace(),
+ 'text' => 'Construction Space'},
+ {'href' => '/adm/upload',
+ 'text' => 'Upload file to Construction Space'}];
$r->print(&Apache::loncommon::start_page('Upload file to Construction Space',
- $javascript));
+ $javascript,
+ {'bread_crumbs' => $brcrum,})
+ .&Apache::loncommon::head_subbox(
+ &Apache::loncommon::CSTR_pageheader())
+ );
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
- $r->print('
'.&mt('Co-Author').': '.$uname.
- &mt(' at ').$udom.'
');
+ $r->print('
'
+ .&mt('Co-Author [_1]',$uname.':'.$udom)
+ .'
'
+ );
}
if ($env{'form.phase'} eq 'three') {
@@ -379,88 +476,4 @@ function verifyForm() {
1;
__END__
-=head1 NAME
-
-Apache::lonupload - upload files into construction space
-
-=head1 SYNOPSIS
-
-Invoked by /etc/httpd/conf/srm.conf:
-
-
- PerlAccessHandler Apache::lonacc
- SetHandler perl-script
- PerlHandler Apache::lonupload
- ErrorDocument 403 /adm/login
- ErrorDocument 404 /adm/notfound.html
- ErrorDocument 406 /adm/unauthorized.html
- ErrorDocument 500 /adm/errorhandler
-
-
-=head1 INTRODUCTION
-
-This module uploads a file sitting on a client computer into
-library server construction space.
-
-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 *
-
-Initialize variables
-
-=item *
-
-Start page output
-
-=item *
-output relevant interface phase (phaseone or phasetwo or phasethree)
-
-=item *
-
-(phase one is to specify upload file; phase two is to handle conditions
-subsequent to specification--like overwriting an existing file; phase three
-is to handle processing of secondary uploads - of embedded objects in an
-html file).
-
-=back
-
-=head1 OTHER SUBROUTINES
-
-=over 4
-
-=item *
-
-phaseone() : Interface for specifying file to upload.
-
-=item *
-
-phasetwo() : Interface for handling post-conditions about uploading (such
-as overwriting an existing file).
-
-=item *
-
-phasethree() : Interface for handling secondary uploads of embedded objects
-in an html file.
-
-=item *
-
-upfile_store() : Store contents of uploaded file into temporary space. Invoked
-by phaseone subroutine.
-
-=item *
-
-check_extension() : Checks if filename extension is permitted and checks type
- of file - if html file, calls parser to check for embedded objects.
- Invoked by phasetwo subroutine.
-
-=back
-
-=cut