[LON-CAPA-cvs] cvs: loncom /interface portfolio.pm

banghart lon-capa-cvs@mail.lon-capa.org
Tue, 09 Nov 2004 21:51:14 -0000


banghart		Tue Nov  9 16:51:14 2004 EDT

  Modified files:              
    /loncom/interface	portfolio.pm 
  Log:
  	Cannot rename or delete locked files. (Still need to improve
  	user interface to remove delete and rename options for locked
  	files.)
  
  
Index: loncom/interface/portfolio.pm
diff -u loncom/interface/portfolio.pm:1.54 loncom/interface/portfolio.pm:1.55
--- loncom/interface/portfolio.pm:1.54	Wed Nov  3 16:02:49 2004
+++ loncom/interface/portfolio.pm	Tue Nov  9 16:51:14 2004
@@ -72,7 +72,6 @@
     }
     $r->print('</font>');
     &Apache::lonhtmlcommon::store_recent('portfolio',$current_path,$current_path);
-    #Fixme -- remove from recent those paths that are deleted
     $r->print('<br /><form method=post action="/adm/portfolio">'.
 	      &Apache::lonhtmlcommon::select_recent('portfolio','currentpath',
 						    'this.form.submit();'));
@@ -250,9 +249,19 @@
 
 sub delete {
     my ($r)=@_;
-    &open_form($r);
-    $r->print('<p>'.&mt('Delete').' '.&display_file().'?</p>');
-    &close_form($r);
+    my @check;
+    my $file_name = $ENV{'form.currentpath'}.$ENV{'form.selectfile'};
+    push @check, $file_name;
+    my %locked = &Apache::lonnet::get('file_permissions',\@check,
+                                        $ENV{'user.domain'},$ENV{'user.name'});
+    if (ref($locked{$file_name}) eq 'ARRAY') {
+        $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>');
+        &close_form($r);
+    }
 } 
 
 sub delete_confirmed {
@@ -305,10 +314,20 @@
 
 sub rename {
     my ($r)=@_;
-    &open_form($r);
-    $r->print('<p>'.&mt('Rename').' '.&display_file().' to 
-               <input name="filenewname" type="input" size="50" />?</p>');
-    &close_form($r);
+    my @check;
+    my $file_name = $ENV{'form.currentpath'}.$ENV{'form.selectfile'};
+    push @check, $file_name;
+    my %locked = &Apache::lonnet::get('file_permissions',\@check,
+                                        $ENV{'user.domain'},$ENV{'user.name'});
+    if (ref($locked{$file_name}) eq 'ARRAY') {
+        $r->print ("The file is locked and cannot be renamed.<br />");
+        $r->print(&done());
+    } else {
+        &open_form($r);
+        $r->print('<p>'.&mt('Rename').' '.&display_file().' to 
+                   <input name="filenewname" type="input" size="50" />?</p>');
+        &close_form($r);
+    }
 }
 
 sub rename_confirmed {