--- loncom/interface/portfolio.pm 2004/08/24 07:29:51 1.28
+++ loncom/interface/portfolio.pm 2004/08/25 17:30:49 1.32
@@ -161,7 +161,7 @@ sub displayActions {
my $dirptr=16384;
sub display_directory {
- my ($r,$current_path,$dir_list)=@_;
+ my ($r,$current_path,$is_empty,$dir_list)=@_;
my $iconpath= $r->dir_config('lonIconsURL') . "/";
$r->print('
');
$r->print('');
@@ -180,7 +180,7 @@ sub display_directory {
$r->print($displayOut);
$r->print(' |
');
my @tree = split (/\//,$current_path);
- $r->print(''.&make_anchor('/','/'));
+ $r->print(''.&make_anchor('portfolio','/').'/');
if (@tree > 1){
my $newCurrentPath = '';
for (my $i = 1; $i< @tree; $i++){
@@ -194,6 +194,17 @@ sub display_directory {
&Apache::lonhtmlcommon::select_recent('portfolio','currentpath',
'this.form.submit();'));
$r->print("");
+ if ($is_empty) {
+ $displayOut = '';
+
+ $r->print($displayOut);
+ return;
+ }
$r->print(''.
'Actions | | Name | Size | Last Modified |
');
my $href_location="/uploaded/$ENV{'user.domain'}/$ENV{'user.name'}/portfolio/$current_path/";
@@ -294,12 +305,44 @@ sub delete_confirmed {
$ENV{'form.currentpath'}.
$ENV{'form.selectfile'});
if ($result ne 'ok') {
- $r->print(' An errror occured ('.$result.
+ $r->print(' An error occured ('.$result.
') while trying to delete '.&display_file().'
');
}
$r->print(&done());
}
+sub delete_dir {
+ my ($r)=@_;
+ &open_form($r);
+ $r->print(''.&mt('Delete').' '.&display_file().'?
');
+ &close_form($r);
+}
+
+sub delete_dir_confirmed {
+ my ($r)=@_;
+ my $directory_name = $ENV{'form.currentpath'};
+ $directory_name =~ m/\/$/;
+ $directory_name = $`;
+ my $result=&Apache::lonnet::removeuserfile($ENV{'user.name'},
+ $ENV{'user.domain'},'portfolio'.
+ $directory_name);
+
+ if ($result ne 'ok') {
+ $r->print(' An error occured (dir) ('.$result.
+ ') while trying to delete '.$directory_name.'
');
+ } else {
+ my @dirs = split m!/!, $directory_name;
+
+# $directory_name =~ m/^(\/*\/)(\/*.)$/;
+ $directory_name='/';
+ for (my $i=1; $i < (@dirs - 1); $i ++){
+ $directory_name .= $dirs[$i].'/';
+ }
+ $ENV{'form.currentpath'} = $directory_name;
+ }
+ $r->print(&done());
+}
+
sub rename {
my ($r)=@_;
&open_form($r);
@@ -385,6 +428,10 @@ sub handler {
&delete_confirmed($r);
} elsif ($ENV{'form.action'} eq 'delete') {
&delete($r);
+ } elsif ($ENV{'form.action'} eq 'deletedir' && $ENV{'form.confirmed'}) {
+ &delete_dir_confirmed($r);
+ } elsif ($ENV{'form.action'} eq 'deletedir'){
+ &delete_dir($r);
} elsif ($ENV{'form.action'} eq 'rename' && $ENV{'form.confirmed'}) {
&rename_confirmed($r);
} elsif ($ENV{'form.action'} eq 'rename') {
@@ -406,15 +453,10 @@ sub handler {
# need to know if directory is empty so it can be removed if desired
my $is_empty=(@dir_list == 2);
-
- &display_directory($r,$current_path,\@dir_list);
-
+ &display_directory($r,$current_path,$is_empty,\@dir_list);
+ $r->print("