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

banghart lon-capa-cvs@mail.lon-capa.org
Sat, 11 Dec 2004 19:54:22 -0000


banghart		Sat Dec 11 14:54:22 2004 EDT

  Modified files:              
    /loncom/interface	portfolio.pm 
  Log:
  	Saving work in progress. 
  	Now not offering rename or delete actions if file is locked.
  	Eliminated dropdown action select, replaced with checkbox for
  	delete, and a 'rename' link.
  	Rename works with link.
  	Checkboxes for multiple file delete NOT WORKING yet.
  
  
Index: loncom/interface/portfolio.pm
diff -u loncom/interface/portfolio.pm:1.63 loncom/interface/portfolio.pm:1.64
--- loncom/interface/portfolio.pm:1.63	Mon Dec  6 13:13:10 2004
+++ loncom/interface/portfolio.pm	Sat Dec 11 14:54:22 2004
@@ -83,12 +83,7 @@
     my ($r,$current_path,$is_empty,$dir_list)=@_;
     my $iconpath= $r->dir_config('lonIconsURL') . "/";
     my $display_out;
-    my %locked_files=&Apache::lonnet::dump('file_permissions',
-                                  $ENV{'user.domain'},$ENV{'user.name'});
-    my $locked_file;
-    foreach my $key (keys %locked_files) {
-        $locked_file .= $locked_files{$key}.':';
-    }
+    my %locked_files = &Apache::lonnet::get_marked_as_readonly_hash ($ENV{'user.domain'},$ENV{'user.name'});
     if ($is_empty && ($current_path ne '/')) {
         $display_out = '<form method="post" action="/adm/portfolio">'.
         '<input type="hidden" name="action" value="deletedir" />'.
@@ -103,6 +98,7 @@
     $r->print('<table border="0" cellspacing="2" cellpadding="2">'.
             '<tr><th>Actions</th><th>&nbsp;</th><th>Name</th><th>Size</th><th>Last Modified</th></tr>');
     my $href_location="/uploaded/$ENV{'user.domain'}/$ENV{'user.name'}/portfolio$current_path";
+    $r->print('<form method="post" action="/adm/portfolio">');
     foreach my $line (sort 
 		      { 
 			  my ($afile)=split('&',$a,2);
@@ -120,18 +116,13 @@
                 $r->print('</tr>'); 
             } else {
                 $r->print('<tr bgcolor="#CCCCFF">');
-                $r->print('<td>
-                    <form method="post" action="/adm/portfolio">
-                    <select name="action">
-                        <option value=""></option>
-                        <option value="delete">'.&mt("Delete").'</option>
-                        <option value="rename">'.&mt("Rename").'</option>
-                    </select>
-                    <input type="submit" name="doit" value="Go" />
-                    <input type="hidden" name="selectfile" value="'.$filename.'" />
-                    <input type="hidden" name="currentpath" value="'.$current_path.'" />
-                    </form>
-                    </td>');
+                if (exists $locked_files{$current_path.$filename}){
+                    $r->print('<td>Locked</td>');
+                } else {
+                    $r->print('<td>Delete<input type="checkbox" name="selectfile" value="'.$filename.'" />
+                        <a href="/adm/portfolio?rename='.$filename.'&amp;currentpath='.$current_path.'">Rename</a>                        
+                        </td>');
+                }
                 $r->print('<td><img src="'.$iconpath.'unknown.gif"></td>');
                 $r->print('<td><a href="'.$href_location.$filename.'">'.
 			    $filename.'</a></td>'); 
@@ -146,7 +137,11 @@
 #   $r->print(&display_directory($current_path, $currentFile, @dir_list));
 #    $r->print('</td>><td>');
 #   $r->print(&display_actions($current_path, $currentFile, $isEmpty));
-    $r->print('</table></form>');
+    $r->print('</table>
+    <input type="submit" name="doit" value="Delete Checked Files" />
+    <input type="hidden" name="action" value="delete" />
+    <input type="hidden" name="currentpath" value="'.$current_path.'" />
+    </form>');
 }
 sub display_file_select {
     my ($r,$current_path,$is_empty,$dir_list)=@_;
@@ -321,7 +316,7 @@
 
 sub rename {
     my ($r)=@_;
-    my $file_name = $ENV{'form.currentpath'}.$ENV{'form.selectfile'};
+    my $file_name = $ENV{'form.currentpath'}.$ENV{'form.rename'};
     if (&Apache::lonnet::is_locked($file_name,$ENV{'user.domain'},$ENV{'user.name'}) eq 'true') {
         $r->print ("The file is locked and cannot be renamed.<br />");
         $r->print(&done());
@@ -493,7 +488,7 @@
     $r->rflush();
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                             ['selectfile','currentpath',
-					     'currentfile','action','fieldname','mode']);
+					     'currentfile','action','fieldname','mode','rename']);
 	if (($ENV{'form.storeupl'} eq 'Upload') & (!$ENV{'form.uploaddoc.filename'})){
    	    $r->print('<font color="red"> No file was selected to upload.'.
    	            'To upload a file, click <strong>Browse...</strong>'.
@@ -511,7 +506,9 @@
 	&delete_dir($r);
     } elsif ($ENV{'form.action'} eq 'rename' && $ENV{'form.confirmed'}) {
 	&rename_confirmed($r);
-    } elsif ($ENV{'form.action'} eq 'rename') {
+    } elsif ($ENV{'form.rename'}) {
+        $ENV{'form.selectfile'} = $ENV{'form.rename'};
+        $ENV{'form.action'} = 'rename';
 	&rename($r);
     } elsif ($ENV{'form.createdir'}) {
 	&createdir($r);