--- loncom/interface/portfolio.pm	2006/06/28 19:56:59	1.125
+++ loncom/interface/portfolio.pm	2006/07/02 23:15:47	1.127
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # portfolio browser
 #
-# $Id: portfolio.pm,v 1.125 2006/06/28 19:56:59 albertel Exp $
+# $Id: portfolio.pm,v 1.127 2006/07/02 23:15:47 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -297,17 +297,17 @@ sub display_directory {
 			      &mt($curr_access).'   ');
 		    $r->print('<a href="'.$url.'?access='.$filename.
 			      '&amp;currentpath='.$current_path.$groupecho.
-			      '">'.$access_admin_text.'</a></span>');
+			      '">'.$access_admin_text.'</a></span></td>');
 		}
-		$r->print('</td></tr>'.$/);
+		$r->print('</tr>'.$/);
             }
         }
     }
     if ($select_mode eq 'true') {
         $r->print('</table>
-            <input type="hidden" name="continue" value="true">
-            <input type="hidden" name="fieldname" value="'.$env{'form.fieldname'}.'">
-            <input type="hidden" name="mode" value="selectfile">
+            <input type="hidden" name="continue" value="true" />
+            <input type="hidden" name="fieldname" value="'.$env{'form.fieldname'}.'" />
+            <input type="hidden" name="mode" value="selectfile" />
             <input type="submit" name="submit" value="Select checked files, and continue selecting." /><br />
             <input type="button" name="doit" onClick= "finishSelect();" value="Select checked files, and close window" />
             <input type="hidden" name="currentpath" value="'.$current_path.'" />
@@ -1433,6 +1433,14 @@ sub upload {
     my $fname=$env{'form.uploaddoc.filename'};
     my $filesize = (length($env{'form.uploaddoc'})) / 1000; #express in k (1024?)
     my $disk_quota = 20000; # expressed in k
+    if (defined($group)) {
+        my $grp_quota = &get_group_quota($group); # quota expressed in k 
+        if ($grp_quota ne '') {
+            $disk_quota = $grp_quota;
+        } else {
+            $disk_quota = 0;
+        }
+    }
     $fname=&Apache::lonnet::clean_filename($fname);
 
     my $portfolio_root=&get_portfolio_root($group);
@@ -1484,6 +1492,7 @@ sub upload {
         }
     }
 }
+
 sub lock_info {
     my ($r,$url,$group) = @_;
     my ($uname,$udom) = &get_name_dom($group);
@@ -1566,6 +1575,23 @@ sub get_portfolio_root {
     return (&Apache::loncommon::propath($udom,$uname).$path);
 }
 
+sub get_group_quota {
+    my ($group) = @_;
+    my $group_quota; 
+    my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+    my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+    my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum,$group);
+    if (%curr_groups) {
+        my %group_info =  &Apache::longroup::get_group_settings(
+                                                    $curr_groups{$group});
+        $group_quota = $group_info{'quota'}; #expressed in Mb
+        if ($group_quota) {
+            $group_quota = 1000 * $group_quota; #expressed in k
+        } 
+    }
+    return $group_quota;
+} 
+
 sub get_dir_list {
     my ($portfolio_root,$group) = @_;
     my ($uname,$udom) = &get_name_dom($group);
@@ -1694,17 +1720,24 @@ sub handler {
             $earlyout = 1;
         }
         if ($earlyout) { return OK; }
-        if (&Apache::lonnet::allowed('agf',$env{'request.course.id'}.'/'.$group)) {
-            $can_setacl = 1;
-        }
-        if (&Apache::lonnet::allowed('ugf',$env{'request.course.id'}.'/'.$group)) {
-            $can_upload = 1;
-        }
-        if (&Apache::lonnet::allowed('mgf',$env{'request.course.id'}.'/'.$group)) {
+        if (&Apache::lonnet::allowed('mdg',$env{'request.course.id'})) {
             $can_modify = 1;
-        }
-        if (&Apache::lonnet::allowed('dgf',$env{'request.course.id'}.'/'.$group)) {
             $can_delete = 1;
+            $can_upload = 1;
+            $can_setacl = 1;
+        } else {
+            if (&Apache::lonnet::allowed('agf',$env{'request.course.id'}.'/'.$group)) {
+                $can_setacl = 1;
+            }
+            if (&Apache::lonnet::allowed('ugf',$env{'request.course.id'}.'/'.$group)) {
+                $can_upload = 1;
+            }
+            if (&Apache::lonnet::allowed('mgf',$env{'request.course.id'}.'/'.$group)) {
+                $can_modify = 1;
+            }
+            if (&Apache::lonnet::allowed('dgf',$env{'request.course.id'}.'/'.$group)) {
+                $can_delete = 1;
+            }
         }
     } else {
         ($uname,$udom) = &get_name_dom();