--- loncom/publisher/lonupload.pm 2010/10/27 01:04:15 1.50
+++ loncom/publisher/lonupload.pm 2010/12/26 03:09:11 1.53
@@ -2,7 +2,7 @@
# The LearningOnline Network with CAPA
# Handler to upload files into construction space
#
-# $Id: lonupload.pm,v 1.50 2010/10/27 01:04:15 raeburn Exp $
+# $Id: lonupload.pm,v 1.53 2010/12/26 03:09:11 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -70,7 +70,7 @@ Start page output
=item *
-output relevant interface phase (phaseone or phasetwo or phasethree)
+output relevant interface phase (phaseone, phasetwo, phasethree or phasefour)
=item *
@@ -99,6 +99,11 @@ as overwriting an existing file).
Interface for handling secondary uploads of embedded objects
in an html file.
+=item phasefour()
+
+Interface for handling optional renaming of links to embedded
+objects.
+
=item upfile_store()
Store contents of uploaded file into temporary space. Invoked
@@ -351,25 +356,32 @@ sub check_extension {
&Apache::lonnet::extract_embedded_items($target,\%allfiles,\%codebase);
if (keys(%allfiles) > 0) {
my ($currentpath) = ($url =~ m{^(.+)/[^/]+$});
- my $state = <
'.&mt('Completed upload of the file. This file contained references to other files.').'
'. - ''.&mt('Please select the locations from which the referenced files are to be uploaded.').'
'. - $embedded; - } - if ($mode eq 'testbank') { - $returnflag = 'embedded'; - $result .= ''.&mt('Or [_1]continue[_2] the testbank import without these files','','').'
'; + $result .= ''.&mt('Completed upload of the file.').' '.&mt('This file contained references to other files.').'
'. + ''.&mt('Please select the locations from which the referenced files are to be uploaded.').'
'. + $embedded; + if ($mode eq 'testbank') { + $returnflag = 'embedded'; + $result .= ''.&mt('Or [_1]continue[_2] the testbank import without these files.','','').'
'; + } + } else { + $result .= ''.&mt('Completed upload of the file.').'
'.$embedded; + if ($pathchg) { + if ($mode eq 'testbank') { + $returnflag = 'embedded'; + $result .= ''.&mt('Or [_1]continue[_2] the testbank import without modifying the references(s).','','').'
'; + } + } + } } } } @@ -389,18 +401,59 @@ STATE sub phasethree { my ($r,$fn,$uname,$udom,$mode) = @_; + my $action = '/adm/upload'; + if ($mode eq 'testbank') { + $action = '/adm/testbank'; + } elsif ($mode eq 'imsimport') { + $action = '/adm/imsimport'; + } + my $dir_root = '/home/'.$uname.'/public_html'; + my $url_root = '/priv/'.$uname; + my $path = &File::Basename::dirname($fn); + my $filename = &HTML::Entities::encode($env{'form.filename'},'<>&"'); + my $state = &embedded_form_elems('modify_orightml',$filename,$mode). + ''; + my ($result,$returnflag) = + &Apache::loncommon::upload_embedded($mode,$path,$uname,$udom, + $dir_root,$url_root,undef, + undef,undef,$state,$action); + if ($mode ne 'imsimport' && $mode ne 'testbank') { + $result .= '' + $r->print('
' .&mt('Co-Author [_1]',$uname.':'.$udom) .'
' ); } - - if ($env{'form.phase'} eq 'three') { - my $output = &phasethree($r,$fn,$uname,$udom,'author'); + if ($env{'form.phase'} eq 'four') { + my $output = &phasefour($r,$fn,$uname,$udom,'author'); + $r->print($output); + } elsif ($env{'form.phase'} eq 'three') { + my ($output,$rtnflag) = &phasethree($r,$fn,$uname,$udom,'author'); $r->print($output); } elsif ($env{'form.phase'} eq 'two') { my ($output,$returnflag) = &phasetwo($r,$fn,$uname,$udom);