[LON-CAPA-cvs] cvs: loncom /interface portfolio.pm
banghart
lon-capa-cvs@mail.lon-capa.org
Sun, 12 Dec 2004 01:35:44 -0000
banghart Sat Dec 11 20:35:44 2004 EDT
Modified files:
/loncom/interface portfolio.pm
Log:
Multiple file delete now works.
Index: loncom/interface/portfolio.pm
diff -u loncom/interface/portfolio.pm:1.64 loncom/interface/portfolio.pm:1.65
--- loncom/interface/portfolio.pm:1.64 Sat Dec 11 14:54:22 2004
+++ loncom/interface/portfolio.pm Sat Dec 11 20:35:44 2004
@@ -185,7 +185,7 @@
$r->print('</tr>');
} else {
$r->print('<tr bgcolor="#CCCCFF">');
- $r->print('<td><input type="checkbox" name="selectedfile" value="'.$filename.'"');
+ $r->print('<td><input type="checkbox" name="selectfile" value="'.$filename.'"');
if ($$checked_files{$filename} eq 'selected') {
$r->print("CHECKED");
&Apache::lonnet::logthis("checked");
@@ -214,12 +214,15 @@
sub open_form {
my ($r)=@_;
+ my @files=&Apache::loncommon::get_env_multiple('form.selectfile');
$r->print('<form method="post" action="/adm/portfolio">');
$r->print('<input type="hidden" name="action" value="'.
$ENV{'form.action'}.'" />');
$r->print('<input type="hidden" name="confirmed" value="1" />');
- $r->print('<input type="hidden" name="selectfile" value="'.
- $ENV{'form.selectfile'}.'" />');
+ foreach (@files) {
+ $r->print('<input type="hidden" name="selectfile" value="'.
+ $_.'" />');
+ }
$r->print('<input type="hidden" name="currentpath" value="'.
$ENV{'form.currentpath'}.'" />');
}
@@ -239,9 +242,19 @@
sub display_file {
my ($path,$filename)=@_;
+ my $display_file_text;
if (!defined($path)) { $path=$ENV{'form.currentpath'}; }
- if (!defined($filename)) { $filename=$ENV{'form.selectfile'}; }
- return '<tt>'.$path.$filename.'</tt>';
+ if (!defined($filename)) {
+ $filename=$ENV{'form.selectfile'};
+ $display_file_text = '<tt>'.$path.$filename.'</tt>';
+ } elsif (ref($filename) eq "ARRAY") {
+ foreach (@$filename) {
+ $display_file_text .= '<tt>'.$path.$_.'</tt>';
+ }
+ } elsif (ref($filename) eq "SCALAR") {
+ $display_file_text = '<tt>'.$path.$filename.'</tt>';
+ }
+ return $display_file_text;
}
sub done {
@@ -256,25 +269,31 @@
my ($r)=@_;
my @check;
my $file_name = $ENV{'form.currentpath'}.$ENV{'form.selectfile'};
+ my @files=&Apache::loncommon::get_env_multiple('form.selectfile');
if (&Apache::lonnet::is_locked($file_name,$ENV{'user.domain'},$ENV{'user.name'} ) eq 'true') {
$r->print ("The file is locked and cannot be deleted.<br />");
$r->print(&done());
} else {
&open_form($r);
- $r->print('<p>'.&mt('Delete').' '.&display_file().'?</p>');
+ $r->print('<p>'.&mt('Delete').' '.&display_file(undef,\@files).'?</p>');
&close_form($r);
}
}
sub delete_confirmed {
my ($r)=@_;
- my $result=&Apache::lonnet::removeuserfile($ENV{'user.name'},
+ my @files=&Apache::loncommon::get_env_multiple('form.selectfile');
+ my $result;
+ foreach my $delete_file (@files) {
+ &Apache::lonnet::logthis("trying to delete $delete_file");
+ $result=&Apache::lonnet::removeuserfile($ENV{'user.name'},
$ENV{'user.domain'},'portfolio'.
$ENV{'form.currentpath'}.
- $ENV{'form.selectfile'});
- if ($result ne 'ok') {
+ $delete_file);
+ if ($result ne 'ok') {
$r->print('<font color="red"> An error occured ('.$result.
- ') while trying to delete '.&display_file().'</font><br />');
+ ') while trying to delete '.&display_file(undef, $delete_file).'</font><br />');
+ }
}
$r->print(&done());
}
@@ -354,7 +373,7 @@
if ($ENV{'form.continue'} eq 'true') {
# here we update the selections for the currentpath
# eventually, have to handle removing those not checked, but . . .
- my @items=&Apache::loncommon::get_env_multiple('form.selectedfile');
+ my @items=&Apache::loncommon::get_env_multiple('form.selectfile');
&Apache::lonnet::save_selected_files($ENV{'user.name'}, $ENV{'form.currentpath'}, @items);
} else {
if ($ENV{'form.currentpath'} eq '/') {