--- loncom/interface/portfolio.pm 2010/11/11 23:58:05 1.230
+++ loncom/interface/portfolio.pm 2011/10/17 12:41:30 1.233
@@ -1,7 +1,7 @@
# The LearningOnline Network
# portfolio browser
#
-# $Id: portfolio.pm,v 1.230 2010/11/11 23:58:05 raeburn Exp $
+# $Id: portfolio.pm,v 1.233 2011/10/17 12:41:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -379,22 +379,24 @@ sub display_directory {
my $href_edit_location="/editupload/$udom/$uname/$port_path".$current_path;
my @dir_lines;
my %versioned;
- foreach my $dir_line (sort
- {
- my ($afile)=split('&',$a,2);
- my ($bfile)=split('&',$b,2);
- return (lc($afile) cmp lc($bfile));
- } (@$dir_list)) {
- my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$dir_line,16);
- $filename =~ s/\s+$//;
- my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename);
- if ($version) {
- my $fullpath = &prepend_group($current_path.$fname.'.'.$extension);
- push(@{ $versioned{$fullpath} },
- [$filename,$dom,$testdir,$size,$mtime,$obs,]);
- } else {
- push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]);
- }
+ if (ref($dir_list) eq 'ARRAY') {
+ foreach my $dir_line (sort
+ {
+ my ($afile)=split('&',$a,2);
+ my ($bfile)=split('&',$b,2);
+ return (lc($afile) cmp lc($bfile));
+ } (@{$dir_list})) {
+ my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$dir_line,16);
+ $filename =~ s/\s+$//;
+ my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename);
+ if ($version) {
+ my $fullpath = &prepend_group($current_path.$fname.'.'.$extension);
+ push(@{ $versioned{$fullpath} },
+ [$filename,$dom,$testdir,$size,$mtime,$obs,]);
+ } else {
+ push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]);
+ }
+ }
}
my $zerobyte;
foreach my $dir_line (@dir_lines) {
@@ -1964,7 +1966,7 @@ sub upload {
return;
}
- my (%allfiles,%codebase,$mode);
+ my (%allfiles,%codebase,$mode,$mimetype);
if ($env{'form.'.$formname.'.filename'} =~ m/(\.htm|\.html|\.shtml)$/i) {
if ($env{'form.parserflag'}) {
$mode = 'parse';
@@ -1974,10 +1976,12 @@ sub upload {
if ($state eq 'existingfile') {
$context = $state;
}
+ my $subdir = $port_path.$env{'form.currentpath'};
+ $subdir =~ s{(/)$}{};
my ($result,$timestamp) =
- &Apache::lonnet::userfileupload($formname,$context,
- $port_path.$env{'form.currentpath'},
- $mode,\%allfiles,\%codebase);
+ &Apache::lonnet::userfileupload($formname,$context,$subdir,
+ $mode,\%allfiles,\%codebase,undef,undef,
+ undef,undef,undef,undef,\$mimetype);
if ($state eq 'existingfile') {
my $group_elem;
my $rootdir = $r->dir_config('lonDaemons').'/tmp/overwrites';
@@ -2063,14 +2067,20 @@ END
,$result,&display_file(undef,$fname)).'
');
$r->print(&done('Back',$url));
} else {
- if (%allfiles) {
- if (!&suppress_embed_prompt()) {
- &print_dependency_form($r,$url,\%allfiles,\%codebase);
+ if (!&suppress_embed_prompt()) {
+ if ($mimetype eq 'text/html') {
+ if (keys(%allfiles) > 0) {
+ &print_dependency_form($r,$url,\%allfiles,\%codebase,$result);
+ return;
+ } else {
+ $r->print('
'.&mt('Completed upload of the file.').'
'.
+ &mt('No embedded items identified.').'
'.&mt("Completed upload of the file. This file contained references to other files. You must upload the referenced files or else the uploaded file may not work properly.").'
'. - ''.&mt("Please select the locations from which the referenced files are to be uploaded.").'
'. - $embedded. - 'Or '.&done('Return to directory',$url).'
'); + if ($num || $pathchg) { + $r->print(''.&mt("Completed upload of the file. This file contained references to other files. You must upload the referenced files or else the uploaded file may not work properly.").'
'. + ''.&mt("Please select the locations from which the referenced files are to be uploaded.").'
'. + $embedded. + ''.&mt('or').'
'.&done('Return to directory',$url)); + } else { + $r->print(''.&mt("Completed upload of the file. This file contained references to other files.").'
'. + $embedded. + ''.&done('Return to directory',$url).'
'); + } } else { $r->print(&done(undef,$url)); } @@ -2118,7 +2131,7 @@ sub overwrite { my $formname = 'existingfile'; my $port_path = &get_port_path(); my $fname = &Apache::lonnet::clean_filename($env{'form.filename'}); - my (%allfiles,%codebase,$mode); + my (%allfiles,%codebase,$mode,$mimetype); unless (&suppress_embed_prompt()) { if ($env{'form.parserflag'}) { if ($fname =~ /\.s?html?$/i) { @@ -2134,24 +2147,29 @@ sub overwrite { return; } $env{'form.'.$formname.'.filename'} = $fname; + my $subdir = $port_path.$env{'form.currentpath'}; + $subdir =~ s{(/)$}{}; my $result= - &Apache::lonnet::userfileupload($formname,'overwrite', - $port_path.$env{'form.currentpath'}, - $mode,\%allfiles,\%codebase); + &Apache::lonnet::userfileupload($formname,'overwrite',$subdir,$mode, + \%allfiles,\%codebase,undef,undef,undef, + undef,undef,undef,\$mimetype); if ($result !~ m|^/uploaded/|) { $r->print(''.&mt('An error occurred ([_1]) while trying to overwrite [_2].' ,$result,&display_file(undef,$fname)).''.&mt('Overwriting completed.').'
'.
+ &mt('No embedded items identified.').'