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

raeburn raeburn@source.lon-capa.org
Sat, 03 Jan 2009 19:34:21 -0000


raeburn		Sat Jan  3 19:34:21 2009 EDT

  Modified files:              
    /loncom/interface	portfolio.pm 
  Log:
  Bug 5861.
  - &display_usage() provides information about quota usage (in MB). 
  - Link to item: "Portfolio About" moved.
  
  
Index: loncom/interface/portfolio.pm
diff -u loncom/interface/portfolio.pm:1.205 loncom/interface/portfolio.pm:1.206
--- loncom/interface/portfolio.pm:1.205	Sat Jan  3 19:28:53 2009
+++ loncom/interface/portfolio.pm	Sat Jan  3 19:34:21 2009
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # portfolio browser
 #
-# $Id: portfolio.pm,v 1.205 2009/01/03 19:28:53 raeburn Exp $
+# $Id: portfolio.pm,v 1.206 2009/01/03 19:34:21 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -80,7 +80,7 @@
 
 my $dirptr=16384;
 sub display_common {
-    my ($r,$url,$current_path,$is_empty,$dir_list,$can_upload)=@_;
+    my ($r,$url,$current_path,$is_empty,$dir_list,$can_upload,$group)=@_;
     my $namespace = &get_namespace();
     my $port_path = &get_port_path();
     if ($can_upload) {
@@ -98,10 +98,8 @@
         my $escuri = &HTML::Entities::encode($r->uri,'&<>"');
 	my $help_fileupload = &Apache::loncommon::help_open_topic('Portfolio AddFiles');
 	my $help_createdir = &Apache::loncommon::help_open_topic('Portfolio CreateDirectory');
-		
-	# FIXME: This line should be deleted once Portfolio uses breadcrumbs
-	$r->print(&Apache::loncommon::help_open_topic('Portfolio About', &mt('Help on the portfolio')));
-
+        my $help_portfolio = &Apache::loncommon::help_open_topic('Portfolio About', &mt('Help on the portfolio'));
+        $r->print(&display_usage($group));
         my $parse_check;
         if (!&suppress_embed_prompt()) {
             $parse_check = <<"END";
@@ -114,7 +112,7 @@
 END
         }
 
-        $r->print('<div>');
+        $r->print('<div>'.$help_portfolio);
         # Upload File
         $r->print('<div class="LC_left_float">'
                  .'<form method="post" enctype="multipart/form-data" action="'.$escuri.'">'
@@ -185,6 +183,48 @@
     $r->print("</form>");
 }
 
+sub display_usage {
+    my ($group) = @_;
+    my $disk_quota = &get_quota($group);
+    my $getpropath = 1;
+    my $portfolio_root = &get_portfolio_root();
+    my ($uname,$udom) = &get_name_dom($group);
+    my $current_disk_usage =
+         &Apache::lonnet::diskusage($udom,$uname,$portfolio_root,$getpropath);
+    my $usage = $current_disk_usage/1000;
+    my $quota = $disk_quota/1000;
+    my $percent;
+    if ($disk_quota == 0) {
+        $percent = 100.0;
+    } else {
+        $percent = 100*($current_disk_usage/$disk_quota);
+    }
+    $usage = sprintf("%.2f",$usage);
+    $quota = sprintf("%.2f",$quota);
+    $percent = sprintf("%.0f",$percent);
+    my ($color,$cssclass);
+    if ($percent <= 60) {
+        $color = '#00A000';
+    } elsif ($percent > 60 && $percent < 90) {
+        $color = '#FFD300';
+        $cssclass = 'class="LC_warning"';
+    } elsif( $percent >= 90) {
+        $color = '#FF0000';
+        $cssclass = 'class="LC_error"';
+    }
+    my $prog_width = $percent;
+    if ($prog_width > 100) {
+        $prog_width = 100;
+    }
+    my $disk_meter = '
+  <div id="meter1" align="left" '.$cssclass.'>'.&mt('Currently using [_1] of the [_2] available.',$usage.' MB <span style="font-weight:bold;">('.$percent.'%)</span>',$quota.' MB')."\n".
+'   <div id="meter2" style="display:block; margin-top:5px; margin-bottom:5px; margin-left:0px; margin-right:0px; width:400px; border:1px solid #000000; height:10px;">'."\n".
+'    <div id="meter3" style="display:block; background-color:'.$color.'; width:'.$prog_width.'%; height:10px; color:#000000; margin:0px;"></div>'."\n".
+'   </div>'."\n".
+'  </div>';
+    return $disk_meter;
+}
+
 sub display_directory_line {
     my ($r,$select_mode, $filename, $mtime, $size, $css_class,
 	$line, $access_controls, $curr_access, $now, $version_flag,
@@ -2404,7 +2444,7 @@
 	# need to know if directory is empty so it can be removed if desired
 	my $is_empty=(@dir_list == 2);
 	&display_common($r,$url,$current_path,$is_empty,\@dir_list,
-			$can_upload);
+			$can_upload,$group);
         &display_directory($r,$url,$current_path,$is_empty,\@dir_list,$group,
                            $can_upload,$can_modify,$can_delete,$can_setacl);
 	$r->print(&Apache::loncommon::end_page());