version 1.1065, 2012/04/05 13:32:15
|
version 1.1066, 2012/04/06 01:23:11
|
Line 10658 sub process_extracted_files {
|
Line 10658 sub process_extracted_files {
|
(my $count,undef) = &get_extracted($docudom,$docuname,$currdir,\%is_dir,\%children, |
(my $count,undef) = &get_extracted($docudom,$docuname,$currdir,\%is_dir,\%children, |
\%parent,\@contents,\%dirorder,\%titles); |
\%parent,\@contents,\%dirorder,\%titles); |
} |
} |
my (%referrer,%orphaned,%todelete,%newdest,%newseqid); |
my (%referrer,%orphaned,%todelete,%todeletedir,%newdest,%newseqid); |
if ($numitems) { |
if ($numitems) { |
for (my $i=1; $i<=$numitems; $i++) { |
for (my $i=1; $i<=$numitems; $i++) { |
my $path = $env{'form.archive_content_'.$i}; |
my $path = $env{'form.archive_content_'.$i}; |
Line 10666 sub process_extracted_files {
|
Line 10666 sub process_extracted_files {
|
if ($env{'form.archive_'.$i} eq 'discard') { |
if ($env{'form.archive_'.$i} eq 'discard') { |
if ($prefix ne '' && $path ne '') { |
if ($prefix ne '' && $path ne '') { |
if (-e $prefix.$path) { |
if (-e $prefix.$path) { |
$todelete{$prefix.$path} = 1; |
if ((@archdirs > 0) && |
|
(grep(/^\Q$i\E$/,@archdirs))) { |
|
$todeletedir{$prefix.$path} = 1; |
|
} else { |
|
$todelete{$prefix.$path} = 1; |
|
} |
} |
} |
} |
} |
} elsif ($env{'form.archive_'.$i} eq 'display') { |
} elsif ($env{'form.archive_'.$i} eq 'display') { |
Line 10802 sub process_extracted_files {
|
Line 10807 sub process_extracted_files {
|
if (keys(%todelete)) { |
if (keys(%todelete)) { |
foreach my $key (keys(%todelete)) { |
foreach my $key (keys(%todelete)) { |
unlink($key); |
unlink($key); |
unless ($ishome) { |
} |
#FIXME Need to notify homeserver to delete files. |
} |
} |
if (keys(%todeletedir)) { |
|
foreach my $key (keys(%todeletedir)) { |
|
rmdir($key); |
|
} |
|
} |
|
foreach my $dir (sort(keys(%is_dir))) { |
|
if (($pathtocheck ne '') && ($dir ne '')) { |
|
&cleanup_empty_dirs($prefix."$pathtocheck/$dir"); |
} |
} |
} |
} |
} else { |
} else { |
Line 10820 sub process_extracted_files {
|
Line 10832 sub process_extracted_files {
|
return $output; |
return $output; |
} |
} |
|
|
|
sub cleanup_empty_dirs { |
|
my ($path) = @_; |
|
if (($path ne '') && (-d $path)) { |
|
if (opendir(my $dirh,$path)) { |
|
my @dircontents = grep(!/^\./,readdir($dirh)); |
|
my $numitems = 0; |
|
foreach my $item (@dircontents) { |
|
if (-d "$path/$item") { |
|
&recurse_dirs("$path/$item"); |
|
if (-e "$path/$item") { |
|
$numitems ++; |
|
} |
|
} else { |
|
$numitems ++; |
|
} |
|
} |
|
if ($numitems == 0) { |
|
rmdir($path); |
|
} |
|
closedir($dirh); |
|
} |
|
} |
|
return; |
|
} |
|
|
=pod |
=pod |
|
|
=item * &get_turnedin_filepath() |
=item * &get_turnedin_filepath() |