version 1.230, 2010/11/11 23:58:05
|
version 1.231, 2010/11/28 00:04:05
|
Line 1964 sub upload {
|
Line 1964 sub upload {
|
return; |
return; |
} |
} |
|
|
my (%allfiles,%codebase,$mode); |
my (%allfiles,%codebase,$mode,$mimetype); |
if ($env{'form.'.$formname.'.filename'} =~ m/(\.htm|\.html|\.shtml)$/i) { |
if ($env{'form.'.$formname.'.filename'} =~ m/(\.htm|\.html|\.shtml)$/i) { |
if ($env{'form.parserflag'}) { |
if ($env{'form.parserflag'}) { |
$mode = 'parse'; |
$mode = 'parse'; |
Line 1974 sub upload {
|
Line 1974 sub upload {
|
if ($state eq 'existingfile') { |
if ($state eq 'existingfile') { |
$context = $state; |
$context = $state; |
} |
} |
|
my $subdir = $port_path.$env{'form.currentpath'}; |
|
$subdir =~ s{(/)$}{}; |
my ($result,$timestamp) = |
my ($result,$timestamp) = |
&Apache::lonnet::userfileupload($formname,$context, |
&Apache::lonnet::userfileupload($formname,$context,$subdir, |
$port_path.$env{'form.currentpath'}, |
$mode,\%allfiles,\%codebase,undef,undef, |
$mode,\%allfiles,\%codebase); |
undef,undef,undef,undef,\$mimetype); |
if ($state eq 'existingfile') { |
if ($state eq 'existingfile') { |
my $group_elem; |
my $group_elem; |
my $rootdir = $r->dir_config('lonDaemons').'/tmp/overwrites'; |
my $rootdir = $r->dir_config('lonDaemons').'/tmp/overwrites'; |
Line 2063 END
|
Line 2065 END
|
,$result,&display_file(undef,$fname)).'</span><br />'); |
,$result,&display_file(undef,$fname)).'</span><br />'); |
$r->print(&done('Back',$url)); |
$r->print(&done('Back',$url)); |
} else { |
} else { |
if (%allfiles) { |
if (!&suppress_embed_prompt()) { |
if (!&suppress_embed_prompt()) { |
if ($mimetype eq 'text/html') { |
&print_dependency_form($r,$url,\%allfiles,\%codebase); |
if (keys(%allfiles) > 0) { |
|
&print_dependency_form($r,$url,\%allfiles,\%codebase,$result); |
|
return; |
|
} else { |
|
$r->print('<p>'.&mt('Completed upload of the file.').'<br />'. |
|
&mt('No embedded items identified.').'</p>'); |
|
} |
} |
} |
} else { |
} |
$r->print(&done(undef,$url)); |
$r->print(&done(undef,$url)); |
} |
|
} |
} |
|
return; |
} |
} |
|
|
sub hidden_elems { |
sub hidden_elems { |
Line 2088 END
|
Line 2096 END
|
} |
} |
|
|
sub print_dependency_form { |
sub print_dependency_form { |
my ($r,$url,$allfiles,$codebase) = @_; |
my ($r,$url,$allfiles,$codebase,$result) = @_; |
my $state = <<STATE; |
my $container = &HTML::Entities::encode($result,'<>"&'); |
<input type="hidden" name="action" value="upload_embedded" /> |
my $state = &embedded_form_elems($container); |
<input type="hidden" name="currentpath" value="$env{'form.currentpath'}" /> |
my ($embedded,$num,$pathchg) = &Apache::loncommon::ask_for_embedded_content($url,$state,$allfiles,$codebase, |
<input type="hidden" name="fieldname" value="$env{'form.fieldname'}" /> |
|
<input type="hidden" name="mode" value="$env{'form.mode'}" /> |
|
STATE |
|
if ($env{'form.group'} ne '') { |
|
$state .= '<input type="hidden" name="group" value="'.$env{'form.group'}.'" />'."\n"; |
|
} |
|
my $embedded = &Apache::loncommon::ask_for_embedded_content($url,$state,$allfiles,$codebase, |
|
{'error_on_invalid_names' => 1, |
{'error_on_invalid_names' => 1, |
'ignore_remote_references' => 1,}); |
'ignore_remote_references' => 1,}); |
if ($embedded) { |
if ($embedded) { |
$r->print('<h2>'.&mt("Reference Warning").'</h2>'. |
if ($num || $pathchg) { |
'<p>'.&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.").'</p>'. |
$r->print('<h3>'.&mt("Reference Warning").'</h3>'); |
'<p>'.&mt("Please select the locations from which the referenced files are to be uploaded.").'</p>'. |
} else { |
$embedded. |
$r->print('<h3>'.&mt("Reference Information").'</h3>'); |
'<p>Or '.&done('Return to directory',$url).'</p>'); |
} |
|
if ($num) { |
|
$r->print('<p>'.&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.").'</p>'. |
|
'<p>'.&mt("Please select the locations from which the referenced files are to be uploaded.").'</p>'. |
|
$embedded. |
|
'<p>'.&mt('or').'</p>'.&done('Return to directory',$url)); |
|
} else { |
|
$r->print('<p>'.&mt("Completed upload of the file. This file contained references to other files.").'</p>'. |
|
$embedded. |
|
'<p>'.&done('Return to directory',$url).'</p>'); |
|
} |
} else { |
} else { |
$r->print(&done(undef,$url)); |
$r->print(&done(undef,$url)); |
} |
} |
Line 2118 sub overwrite {
|
Line 2129 sub overwrite {
|
my $formname = 'existingfile'; |
my $formname = 'existingfile'; |
my $port_path = &get_port_path(); |
my $port_path = &get_port_path(); |
my $fname = &Apache::lonnet::clean_filename($env{'form.filename'}); |
my $fname = &Apache::lonnet::clean_filename($env{'form.filename'}); |
my (%allfiles,%codebase,$mode); |
my (%allfiles,%codebase,$mode,$mimetype); |
|
my $mode; |
unless (&suppress_embed_prompt()) { |
unless (&suppress_embed_prompt()) { |
if ($env{'form.parserflag'}) { |
if ($env{'form.parserflag'}) { |
if ($fname =~ /\.s?html?$/i) { |
if ($fname =~ /\.s?html?$/i) { |
Line 2134 sub overwrite {
|
Line 2146 sub overwrite {
|
return; |
return; |
} |
} |
$env{'form.'.$formname.'.filename'} = $fname; |
$env{'form.'.$formname.'.filename'} = $fname; |
|
my $subdir = $port_path.$env{'form.currentpath'}; |
|
$subdir =~ s{(/)$}{}; |
my $result= |
my $result= |
&Apache::lonnet::userfileupload($formname,'overwrite', |
&Apache::lonnet::userfileupload($formname,'overwrite',$subdir,$mode, |
$port_path.$env{'form.currentpath'}, |
\%allfiles,\%codebase,undef,undef,undef, |
$mode,\%allfiles,\%codebase); |
undef,undef,undef,\$mimetype); |
if ($result !~ m|^/uploaded/|) { |
if ($result !~ m|^/uploaded/|) { |
$r->print('<span class="LC_error">'.&mt('An error occurred ([_1]) while trying to overwrite [_2].' |
$r->print('<span class="LC_error">'.&mt('An error occurred ([_1]) while trying to overwrite [_2].' |
,$result,&display_file(undef,$fname)).'</span><br />'); |
,$result,&display_file(undef,$fname)).'</span><br />'); |
$r->print(&after_overwrite(&mt('Back'),$url)); |
$r->print(&after_overwrite(&mt('Back'),$url)); |
} else { |
} else { |
if (%allfiles) { |
if ($mode eq 'parse') { |
if (!&suppress_embed_prompt()) { |
if ($mimetype eq 'text/html') { |
&print_dependency_form($r,$url,\%allfiles,\%codebase); |
if (keys(%allfiles) > 0) { |
} else { |
&print_dependency_form($r,$url,\%allfiles,\%codebase,$result); |
$r->print(&after_overwrite(undef,$url)); |
return; |
|
} else { |
|
$r->print('<p>'.&mt('Overwriting completed.').'<br />'. |
|
&mt('No embedded items identified.').'</p>'); |
|
} |
} |
} |
} else { |
|
$r->print(&after_overwrite(undef,$url)); |
|
} |
} |
|
$r->print(&after_overwrite(undef,$url)); |
} |
} |
return; |
return; |
} |
} |
Line 2427 sub suppress_embed_prompt {
|
Line 2444 sub suppress_embed_prompt {
|
return $suppress_prompt; |
return $suppress_prompt; |
} |
} |
|
|
|
sub embedded_form_elems { |
|
my ($container) = @_; |
|
my $state = <<STATE; |
|
<input type="hidden" name="currentpath" value="$env{'form.currentpath'}" /> |
|
<input type="hidden" name="fieldname" value="$env{'form.fieldname'}" /> |
|
<input type="hidden" name="mode" value="$env{'form.mode'}" /> |
|
<input type="hidden" name="container" value="$container" /> |
|
STATE |
|
if ($env{'form.group'} ne '') { |
|
$state .= '<input type="hidden" name="group" value="'.$env{'form.group'}.'" />'."\n"; |
|
} |
|
return $state; |
|
} |
|
|
sub handler { |
sub handler { |
# this handles file management |
# this handles file management |
Line 2573 sub handler {
|
Line 2603 sub handler {
|
my $getpropath = 1; |
my $getpropath = 1; |
my $current_disk_usage = |
my $current_disk_usage = |
&Apache::lonnet::diskusage($udom,$uname,$portfolio_root,$getpropath); |
&Apache::lonnet::diskusage($udom,$uname,$portfolio_root,$getpropath); |
$r->print( |
my $container = &HTML::Entities::encode($env{'form.container'},'<>&"'); |
|
my $state = &embedded_form_elems($container). |
|
'<input type="hidden" name="action" value="modify_orightml" />'; |
|
my ($result,$flag) = |
&Apache::loncommon::upload_embedded('portfolio',$port_path,$uname,$udom, |
&Apache::loncommon::upload_embedded('portfolio',$port_path,$uname,$udom, |
$group,$portfolio_root,$group,$disk_quota,$current_disk_usage)); |
$group,$portfolio_root,$group,$disk_quota,$current_disk_usage,$state,$url); |
$r->print(&done(undef,$url)); |
$r->print($result.&done('Return to directory',$url)); |
|
} else { |
|
&missing_priv($r,$url,'upload'); |
|
} |
|
} elsif ($env{'form.action'} eq 'modify_orightml') { |
|
if ($can_upload) { |
|
$r->print(&Apache::loncommon::modify_html_refs('portfolio',$port_path,$uname,$udom,$group,$portfolio_root,$group)); |
|
$r->print(&done('Return to directory',$url)); |
} else { |
} else { |
&missing_priv($r,$url,'upload'); |
&missing_priv($r,$url,'upload'); |
} |
} |
Line 2651 sub handler {
|
Line 2691 sub handler {
|
my $formname = 'existingfile'; |
my $formname = 'existingfile'; |
my $fname = &Apache::lonnet::clean_filename($env{'form.filename'}); |
my $fname = &Apache::lonnet::clean_filename($env{'form.filename'}); |
$env{'form.'.$formname.'.filename'} = $fname; |
$env{'form.'.$formname.'.filename'} = $fname; |
&Apache::lonnet::userfileupload($formname,'canceloverwrite', |
my $subdir = $port_path.$env{'form.currentpath'}; |
$port_path.$env{'form.currentpath'}); |
$subdir =~ s{(/)$}{}; |
|
&Apache::lonnet::userfileupload($formname,'canceloverwrite',$subdir); |
} |
} |
} |
} |
my $current_path='/'; |
my $current_path='/'; |