--- loncom/interface/portfolio.pm 2008/12/12 15:38:53 1.196.2.1 +++ loncom/interface/portfolio.pm 2009/01/03 19:39:37 1.196.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network # portfolio browser # -# $Id: portfolio.pm,v 1.196.2.1 2008/12/12 15:38:53 raeburn Exp $ +# $Id: portfolio.pm,v 1.196.2.2 2009/01/03 19:39:37 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -80,7 +80,7 @@ sub make_anchor { 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) { @@ -99,10 +99,8 @@ sub display_common { 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,8 @@ sub display_common { END } - $r->print(<<"TABLE"); + $r->print(<<"TABLE"); +$help_portfolio
@@ -140,7 +139,7 @@ $parse_check
- $groupitem + $groupitem @@ -185,6 +184,48 @@ TABLE $r->print("
"); } +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 = ' +
'.&mt('Currently using [_1] of the [_2] available.',$usage.' MB ('.$percent.'%)',$quota.' MB')."\n". +'
'."\n". +'
'."\n". +'
'."\n". +'

'; + return $disk_meter; +} + sub display_directory_line { my ($r,$select_mode, $filename, $mtime, $size, $css_class, $line, $access_controls, $curr_access, $now, $version_flag, @@ -668,7 +709,7 @@ sub rename { } else { &open_form($r,$url); $r->print('

'.&mt('Rename [_1] to [_2]?', &display_file() - , '').'

'); + , '').'

'); &close_form($r,$url); } } @@ -2216,14 +2257,22 @@ sub handler { $r->print(&Apache::loncommon::start_page($title)); } $r->rflush(); - if (!&Apache::lonnet::usertools_access($uname,$udom,'portfolio')) { - $r->print('

'.&mt('No user portfolio available') .'

'. - &mt('This is a result of one of the following:').'
    '. - '
  • '.&mt('The administrator of this domain has disabled portfolio functionality for this specific user.').'
  • '. - '
  • '.&mt('The domain has been configured to disable, by default, portfolio functionality for all users in the domain.').'
  • '. - '
'); - $r->print(&Apache::loncommon::end_page()); - return OK; + if ($caller ne 'coursegrp_portfolio') { + &Apache::lonhtmlcommon::clear_breadcrumbs(); + &Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/portfolio", + text=>"Portfolio Manager"}); + if (!&Apache::lonnet::usertools_access($uname,$udom,'portfolio')) { + $r->print(&Apache::lonhtmlcommon::breadcrumbs()); + $r->print('

'.&mt('No user portfolio available') .'

'. + &mt('This is a result of one of the following:').'
    '. + '
  • '.&mt('The administrator of this domain has disabled portfolio functionality for this specific user.').'
  • '. + '
  • '.&mt('The domain has been configured to disable, by default, portfolio functionality for all users in the domain.').'
  • '. + '
'); + $r->print(&Apache::loncommon::end_page()); + return OK; + } else { + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Portfolio Manager')); + } } my ($blocked,$blocktext) = &Apache::loncommon::blocking_status('port',$uname,$udom); @@ -2360,7 +2409,7 @@ sub handler { # 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());