--- loncom/interface/portfolio.pm 2006/07/05 22:29:05 1.130 +++ loncom/interface/portfolio.pm 2006/07/08 01:20:40 1.132 @@ -1,7 +1,7 @@ # The LearningOnline Network # portfolio browser # -# $Id: portfolio.pm,v 1.130 2006/07/05 22:29:05 banghart Exp $ +# $Id: portfolio.pm,v 1.132 2006/07/08 01:20:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,6 +36,7 @@ use Apache::lonfeedback; use Apache::lonlocal; use Apache::lonnet; use Apache::longroup; +use Apache::lonhtmlcommon; use HTML::Entities; use LONCAPA; @@ -183,6 +184,7 @@ sub display_directory { my $href_location="/uploaded/$udom/$uname/$port_path".$current_path; my $href_edit_location="/editupload/$udom/$uname/$port_path".$current_path; my @dir_lines; + my @version_lines; my %versioned; foreach my $line (sort { @@ -196,17 +198,23 @@ sub display_directory { $filename =~ s/\s+$//; my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename); if ($version) { + push(@version_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]); $versioned{$fname.'.'.$extension} .= $version.","; + } else { + push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]); } - push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]); } foreach my $line (@dir_lines) { my ($filename,$dom,$testdir,$size,$mtime,$obs) = @$line; my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename); if (($filename ne '.') && ($filename ne '..') && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/)) { my %version_flag; + my $show_versions; + if ($env{'form.showversions'} eq $filename) { + $show_versions = 'true'; + } if (exists($versioned{$filename})) { - $version_flag{$filename} = ''.&mt('closed folder').''; + $version_flag{$filename} = ''.&mt('closed folder').''; } else { $version_flag{$filename} = ''; } @@ -1668,14 +1676,32 @@ sub missing_priv { return; } +sub coursegrp_portfolio_header { + my ($cdom,$cnum,$group,$grp_desc)=@_; + my $gpterm = &Apache::loncommon::group_term(); + my $ucgpterm = $gpterm; + $ucgpterm =~ s/^(\w)/uc($1)/e; + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>"/adm/$cdom/$cnum/$group/smppg", + text=>"$ucgpterm: $grp_desc", + title=>"Go to group's home page"}, + {href=>"//?group=$group", + text=>"Group Portfolio", + title=>"Display group portfolio"},); + my $output = &Apache::lonhtmlcommon::breadcrumbs( + &mt('[_1] portfolio files - [_2]',$gpterm,$grp_desc)); + return $output; +} + + sub handler { # this handles file management my $r = shift; &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['selectfile','currentpath','meta','lockinfo','currentfile','action', 'fieldname','mode','rename','continue','group','access','setnum', - 'cnum','cdom','type','setroles']); - my ($uname,$udom,$portfolio_root,$url,$group,$caller,$title); + 'cnum','cdom','type','setroles','showversions']); + my ($uname,$udom,$portfolio_root,$url,$group,$caller,$title,$grp_desc); if ($r->uri =~ m|^(/adm/)([^/]+)|) { $url = $1.$2; $caller = $2; @@ -1699,6 +1725,9 @@ sub handler { my %curr_groups = &Apache::longroup::coursegroups($udom,$uname, $group); if (%curr_groups) { + my %grp_content = &Apache::longroup::get_group_settings( + $curr_groups{$group}); + $grp_desc = &unescape($grp_content{'description'}); if (($view_permission) || (&Apache::lonnet::allowed('rgf', $env{'request.course.id'}.'/'.$group))) { $portfolio_root = &get_portfolio_root($group); @@ -1848,6 +1877,10 @@ sub handler { if ($env{'form.currentpath'}) { $current_path = $env{'form.currentpath'}; } + if ($caller eq 'coursegrp_portfolio') { + &Apache::lonhtmlcommon::clear_breadcrumbs(); + $r->print(&coursegrp_portfolio_header($udom,$uname,$group,$grp_desc)); + } my @dir_list=&get_dir_list($portfolio_root,$group); if ($dir_list[0] eq 'no_such_dir'){ # two main reasons for this: