--- loncom/publisher/lonupload.pm 2010/02/16 10:26:17 1.49
+++ loncom/publisher/lonupload.pm 2011/11/07 13:38:45 1.53.2.1
@@ -2,7 +2,7 @@
# The LearningOnline Network with CAPA
# Handler to upload files into construction space
#
-# $Id: lonupload.pm,v 1.49 2010/02/16 10:26:17 bisitz Exp $
+# $Id: lonupload.pm,v 1.53.2.1 2011/11/07 13:38:45 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
@@ -350,22 +355,33 @@ sub check_extension {
my (%allfiles,%codebase);
&Apache::lonnet::extract_embedded_items($target,\%allfiles,\%codebase);
if (keys(%allfiles) > 0) {
- 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.")."
". - &Apache::loncommon::ask_for_embedded_content($action,$state,\%allfiles,\%codebase, - {'error_on_invalid_names' => 1, - 'ignore_remote_references' => 1,}); - if ($mode eq 'testbank') { - $returnflag = 'embedded'; - $result .= ''.&mt('Or [_1]continue[_2] the testbank import without these files','','').'
'; + my ($currentpath) = ($url =~ m{^(.+)/[^/]+$}); + my $state = &embedded_form_elems('upload_embedded',$url,$mode); + my ($embedded,$num,$pathchg) = + &Apache::loncommon::ask_for_embedded_content($action,$state,\%allfiles, + \%codebase, + {'error_on_invalid_names' => 1, + 'ignore_remote_references' => 1, + 'current_path' => $currentpath}); + if ($embedded) { + $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).','','').'
'; + } + } + } } } } @@ -385,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);