version 1.175, 2006/12/11 03:43:15
|
version 1.178, 2007/03/20 15:36:14
|
Line 147 TABLE
|
Line 147 TABLE
|
); |
); |
$r->print('<span class="LC_current_location">'.&make_anchor($url,\%anchor_fields,$port_path).'/'); |
$r->print('<span class="LC_current_location">'.&make_anchor($url,\%anchor_fields,$port_path).'/'); |
if (@tree > 1){ |
if (@tree > 1){ |
my $newCurrentPath = ''; |
my $newCurrentPath = '/'; |
for (my $i = 1; $i< @tree; $i++){ |
for (my $i = 1; $i< @tree; $i++){ |
$newCurrentPath .= $tree[$i].'/'; |
$newCurrentPath .= $tree[$i].'/'; |
my %anchor_fields = ( |
my %anchor_fields = ( |
'selectfile' => $tree[$i], |
'selectfile' => $tree[$i], |
'currentpath' => '/', |
'currentpath' => $newCurrentPath, |
'mode' => $env{"form.mode"}, |
'mode' => $env{"form.mode"}, |
'fieldname' => $env{"form.fieldname"}, |
'fieldname' => $env{"form.fieldname"}, |
'continue' => $env{"form.continue"} |
'continue' => $env{"form.continue"} |
Line 1347 sub display_access_row {
|
Line 1347 sub display_access_row {
|
'</th>'); |
'</th>'); |
$colspan ++; |
$colspan ++; |
} elsif ($type eq 'domains') { |
} elsif ($type eq 'domains') { |
@all_doms = &Apache::loncommon::get_domains(); |
@all_doms = sort(&Apache::lonnet::all_domains()); |
} |
} |
$r->print(&Apache::loncommon::end_data_table_header_row()); |
$r->print(&Apache::loncommon::end_data_table_header_row()); |
foreach my $key (@{$items}) { |
foreach my $key (@{$items}) { |
Line 1750 ENDSMP
|
Line 1750 ENDSMP
|
} |
} |
} |
} |
|
|
sub upload { |
|
my ($r,$url,$group)=@_; |
sub check_for_upload { |
my $fname=$env{'form.uploaddoc.filename'}; |
my ($path,$fname,$group,$element) = @_; |
my $filesize = (length($env{'form.uploaddoc'})) / 1000; #express in k (1024?) |
|
my $disk_quota = &get_quota($group); |
my $disk_quota = &get_quota($group); |
$fname=&Apache::lonnet::clean_filename($fname); |
my $filesize = (length($env{'form.'.$element})) / 1000; #express in k (1024?) |
|
|
my $portfolio_root=&get_portfolio_root(); |
my $portfolio_root = &get_portfolio_root(); |
my ($uname,$udom) = &get_name_dom(); |
|
my $port_path = &get_port_path(); |
my $port_path = &get_port_path(); |
|
my ($uname,$udom) = &get_name_dom(); |
# Fixme --- Move the checking for existing file to LOND error return |
# Fixme --- Move the checking for existing file to LOND error return |
my @dir_list=&get_dir_list($portfolio_root); |
my @dir_list=&get_dir_list($portfolio_root,$path); |
my $found_file = 0; |
my $found_file = 0; |
my $locked_file = 0; |
my $locked_file = 0; |
foreach my $line (@dir_list) { |
foreach my $line (@dir_list) { |
my ($file_name)=split(/\&/,$line,2); |
my ($file_name)=split(/\&/,$line,2); |
if ($file_name eq $fname){ |
if ($file_name eq $fname){ |
$file_name = $env{'form.currentpath'}.$file_name; |
$file_name = $path.$file_name; |
$file_name = &prepend_group($file_name); |
$file_name = &prepend_group($file_name); |
$found_file = 1; |
$found_file = 1; |
if (&Apache::lonnet::is_locked($file_name,$udom,$uname) eq 'true') { |
if (&Apache::lonnet::is_locked($file_name,$udom,$uname) eq 'true') { |
Line 1776 sub upload {
|
Line 1775 sub upload {
|
} |
} |
} |
} |
my $current_disk_usage = &Apache::lonnet::diskusage($udom,$uname,$portfolio_root); |
my $current_disk_usage = &Apache::lonnet::diskusage($udom,$uname,$portfolio_root); |
|
|
if (($current_disk_usage + $filesize) > $disk_quota){ |
if (($current_disk_usage + $filesize) > $disk_quota){ |
$r->print('<span class="LC_error">Unable to upload <strong>'.$fname.' (size = '.$filesize.' kilobytes)</strong>. Disk quota will be exceeded.</span>'. |
my $msg = '<span class="LC_error">Unable to upload <strong>'.$fname.' (size = '.$filesize.' kilobytes)</strong>. Disk quota will be exceeded.</span>'. |
'<br />Disk quota is '.$disk_quota.' kilobytes. Your current disk usage is '.$current_disk_usage.' kilobytes.'); |
'<br />Disk quota is '.$disk_quota.' kilobytes. Your current disk usage is '.$current_disk_usage.' kilobytes.'; |
$r->print(&done('Back',$url)); |
return ('will_exceed_quota',$msg); |
} |
} elsif ($found_file) { |
elsif ($found_file){ |
if ($locked_file) { |
if ($locked_file){ |
my $msg = '<span class="LC_error">'.'Unable to upload <strong>'.$fname.'</strong>, a <strong>locked</strong> file by that name was found in <strong>'.$port_path.$path.'</strong></span>'. |
$r->print('<span class="LC_error">'.'Unable to upload <strong>'.$fname.'</strong>, a <strong>locked</strong> file by that name was found in <strong>'.$port_path.$env{'form.currentpath'}.'</strong></span>'. |
'<br />You will be able to rename or delete existing '.$fname.' after a grade has been assigned.'; |
'<br />You will be able to rename or delete existing '.$fname.' after a grade has been assigned.'); |
return ('file_locked',$msg); |
$r->print(&done('Back',$url)); |
} else { |
} else { |
my $msg = '<span class="LC_error">'.'Unable to upload <strong>'.$fname.'</strong>, a file by that name was found in <strong>'.$port_path.$path.'</strong></span>'. |
$r->print('<span class="LC_error">'.'Unable to upload <strong>'.$fname.'</strong>, a file by that name was found in <strong>'.$port_path.$env{'form.currentpath'}.'</strong></span>'. |
'<br />To upload, rename or delete existing '.$fname.' in '.$port_path.$path; |
'<br />To upload, rename or delete existing '.$fname.' in '.$port_path.$env{'form.currentpath'}); |
return ('file_exists',$msg); |
$r->print(&done('Back',$url)); |
} |
} |
} |
} else { |
} |
my $result=&Apache::lonnet::userfileupload('uploaddoc','', |
|
$port_path.$env{'form.currentpath'}); |
sub upload { |
if ($result !~ m|^/uploaded/|) { |
my ($r,$url,$group)=@_; |
$r->print('<span class="LC_error">'.'An errror occured ('.$result. |
my $fname=&Apache::lonnet::clean_filename($env{'form.uploaddoc.filename'}); |
') while trying to upload '.&display_file().'</span><br />'); |
|
$r->print(&done('Back',$url)); |
my ($state,$msg) = &check_for_upload($env{'form.currentpath'}, |
} else { |
$fname,$group,'uploaddoc'); |
$r->print(&done(undef,$url)); |
|
} |
if ($state eq 'will_exceed_quota' |
|
|| $state eq 'file_locked' |
|
|| $state eq 'file_exists' ) { |
|
$r->print($msg.&done('Back',$url)); |
|
return; |
|
} |
|
|
|
my $port_path = &get_port_path(); |
|
my (%allfiles,%codebase,$mode); |
|
if ($env{'form.uploaddoc.filename'} =~ m/(\.htm|\.html|\.shtml)$/i) { |
|
$mode = 'parse'; |
|
|
|
} |
|
my $result= |
|
&Apache::lonnet::userfileupload('uploaddoc','', |
|
$port_path.$env{'form.currentpath'}, |
|
$mode,\%allfiles,\%codebase); |
|
if ($result !~ m|^/uploaded/|) { |
|
$r->print('<span class="LC_error">'.'An errror occured ('.$result. |
|
') while trying to upload '.&display_file().'</span><br />'); |
|
$r->print(&done('Back',$url)); |
|
} else { |
|
if (%allfiles) { |
|
my $state = <<STATE; |
|
<input type="hidden" name="action" value="upload_embedded" /> |
|
<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'}" /> |
|
STATE |
|
$r->print("<p>Completed upload of the file. This file contained references to other files. You can upload these now: </p>"); |
|
$r->print(&Apache::londocs::ask_for_embedded_content('/adm/portfolio',$state,\%allfiles,\%codebase,{'error_on_invalid_names' => 1})); |
|
$r->print('<p>Or '.&done('Return to directory listing',$url).'</p>'); |
|
} else { |
|
$r->print(&done(undef,$url)); |
|
} |
} |
} |
} |
} |
|
|
|
sub upload_embedded { |
|
my ($r,$url,$group)=@_; |
|
for (my $i=0; $i<$env{'form.number_embedded_items'}; $i++) { |
|
next if (!exists($env{'form.embedded_item_'.$i.'.filename'})); |
|
|
|
$env{'form.embedded_orig_'.$i} = |
|
&unescape($env{'form.embedded_orig_'.$i}); |
|
my ($path,$fname) = |
|
($env{'form.embedded_orig_'.$i} =~ m{(.*/)([^/]*)}); |
|
$path = $env{'form.currentpath'}.$path; |
|
$fname = &Apache::lonnet::clean_filename($fname); |
|
|
|
my ($state,$msg) = &check_for_upload($path,$fname,$group, |
|
'embedded_item_'.$i); |
|
|
|
if ($state eq 'will_exceed_quota' |
|
|| $state eq 'file_locked' |
|
|| $state eq 'file_exists' ) { |
|
$r->print($msg); |
|
next; |
|
} |
|
|
|
my $port_path = &get_port_path(); |
|
my $src_path = $env{'form.embedded_orig_'.$i}; |
|
$env{'form.embedded_item_'.$i.'.filename'}=$fname; |
|
|
|
my $result= |
|
&Apache::lonnet::userfileupload('embedded_item_'.$i,'', |
|
$port_path.$path); |
|
if ($result !~ m|^/uploaded/|) { |
|
$r->print('<span class="LC_error">'.'An errror occured ('.$result. |
|
') while trying to upload '.&display_file($path,$fname).'</span><br />'); |
|
next; |
|
} else { |
|
$r->print("<p> Uploaded ". |
|
&display_file($port_path.$path,$fname).'</p>'); |
|
} |
|
} |
|
$r->print(&done(undef,$url)); |
|
} |
|
|
sub lock_info { |
sub lock_info { |
my ($r,$url,$group) = @_; |
my ($r,$url,$group) = @_; |
my ($uname,$udom) = &get_name_dom(); |
my ($uname,$udom) = &get_name_dom(); |
Line 1921 sub get_group_quota {
|
Line 1996 sub get_group_quota {
|
} |
} |
|
|
sub get_dir_list { |
sub get_dir_list { |
my ($portfolio_root) = @_; |
my ($portfolio_root,$path) = @_; |
|
$path ||= $env{'form.currentpath'}; |
my ($uname,$udom) = &get_name_dom(); |
my ($uname,$udom) = &get_name_dom(); |
return &Apache::lonnet::dirlist($env{'form.currentpath'}, |
return &Apache::lonnet::dirlist($path,$udom,$uname,$portfolio_root); |
$udom,$uname,$portfolio_root); |
|
} |
} |
|
|
sub get_name_dom { |
sub get_name_dom { |
Line 2162 sub handler {
|
Line 2237 sub handler {
|
} else { |
} else { |
&missing_priv($r,$url,'upload'); |
&missing_priv($r,$url,'upload'); |
} |
} |
|
} elsif ($env{'form.action'} eq 'upload_embedded') { |
|
if ($can_upload) { |
|
&upload_embedded($r,$url,$group); |
|
} else { |
|
&missing_priv($r,$url,'upload'); |
|
} |
} elsif ($env{'form.action'} eq 'delete' && $env{'form.confirmed'}) { |
} elsif ($env{'form.action'} eq 'delete' && $env{'form.confirmed'}) { |
if ($can_delete) { |
if ($can_delete) { |
&delete_confirmed($r,$url,$group); |
&delete_confirmed($r,$url,$group); |