--- loncom/interface/portfolio.pm 2006/06/28 23:38:09 1.126
+++ 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.126 2006/06/28 23:38:09 raeburn 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,14 +198,26 @@ sub display_directory {
$filename =~ s/\s+$//;
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename);
if ($version) {
- $versioned{$fname} .= $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} = '';
+ } else {
+ $version_flag{$filename} = '';
+ }
if ($dirptr&$testdir) {
my $colspan='colspan="2"';
if ($select_mode eq 'true'){
@@ -211,18 +225,12 @@ sub display_directory {
}
$r->print('
| ');
$r->print('Go to ... | ');
- $r->print(''.&make_anchor($url,$filename.'/',$current_path.$filename.'/',$env{'form.mode'},$env{"form.fieldname"},$env{'form.continue'},$group).' | ');
+ $r->print(''.$version_flag{$filename}.&make_anchor($url,$filename.'/',$current_path.$filename.'/',$env{'form.mode'},$env{"form.fieldname"},$env{'form.continue'},$group).' | ');
$r->print('
');
} else {
my $css_class = 'LC_browser_file';
my $line;
- my $version_flag;
- if (exists($versioned{$fname})) {
- $version_flag = "*";
- } else {
- $version_flag = "";
- }
- my $fullpath = $current_path.$filename;
+ my $fullpath = $current_path.$filename;
$fullpath = &prepend_group($fullpath,$group);
if ($select_mode eq 'true') {
$line='';
$line .= 'Rename';
- $line .= ' | '.$cat.'';
+ $line .= ' | '.$version_flag{$filename}.''.$cat.'';
}
$line .= ' | ';
}
@@ -288,7 +296,7 @@ sub display_directory {
}
}
$r->print(' | ');
- $r->print(''.
+ $r->print(' | '.$version_flag{$filename}.''.
$filename.' | ');
$r->print(''.$size.' | ');
$r->print(''.&Apache::lonlocal::locallocaltime($mtime).' | ');
@@ -297,17 +305,17 @@ sub display_directory {
&mt($curr_access).' ');
$r->print(''.$access_admin_text.'');
+ '">'.$access_admin_text.'');
}
- $r->print(''.$/);
+ $r->print(''.$/);
}
}
}
if ($select_mode eq 'true') {
$r->print('
-
-
-
+
+
+
@@ -1408,11 +1416,7 @@ ENDSMP
fileList = fileList + document.forms.checkselect.currentpath.value + document.forms.checkselect[i].value + "," ;
}
}
- opener.document.forms.lonhomework.
-ENDSMP
- $javascript .= $env{'form.fieldname'};
- $javascript .= (<
@@ -1672,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;
@@ -1703,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);
@@ -1852,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: