--- loncom/interface/portfolio.pm 2006/07/19 15:31:05 1.138 +++ loncom/interface/portfolio.pm 2006/08/04 21:44:19 1.145 @@ -1,7 +1,7 @@ # The LearningOnline Network # portfolio browser # -# $Id: portfolio.pm,v 1.138 2006/07/19 15:31:05 albertel Exp $ +# $Id: portfolio.pm,v 1.145 2006/08/04 21:44:19 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -60,6 +60,7 @@ sub group_form_data { $env{'form.ref'}.'" />'; } } + return $output; } # receives a file name and path stub from username/userfiles/portfolio/ @@ -148,7 +149,7 @@ TABLE sub display_directory_line { my ($r,$select_mode,$fullpath, $filename, $mtime, $size, $css_class, $line, $access_controls, $curr_access, $now, $version_flag, - $href_location, $url, $current_path, $access_admin_text)=@_; + $href_location, $url, $current_path, $access_admin_text, $versions)=@_; # my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$line,16); $r->print(''); $r->print($line); @@ -220,7 +221,7 @@ sub display_directory { my @dir_lines; my @version_lines; my %versioned; - foreach my $line (sort + foreach my $dir_line (sort { my ($afile)=split('&',$a,2); my ($bfile)=split('&',$b,2); @@ -228,7 +229,7 @@ sub display_directory { } (@$dir_list)) { #$strip holds directory/file name #$dom - my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$line,16); + my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$dir_line,16); $filename =~ s/\s+$//; my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename); if ($version) { @@ -238,8 +239,8 @@ sub display_directory { push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]); } } - foreach my $line (@dir_lines) { - my ($filename,$dom,$testdir,$size,$mtime,$obs) = @$line; + foreach my $dir_line (@dir_lines) { + my ($filename,$dom,$testdir,$size,$mtime,$obs) = @$dir_line; my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename); if (($filename ne '.') && ($filename ne '..') && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/)) { my %version_flag; @@ -293,7 +294,7 @@ sub display_directory { my $cat=''.&mt('Catalog Information').
                             ''; $line .= 'Rename'; - $line .= ''.$version_flag{$filename}.''.$cat.''; + $line .= ''.''.$cat.''; } $line .= ''; } @@ -331,27 +332,20 @@ sub display_directory { $curr_access = join('+ ',@allaccesses); } } - &display_directory_line($r,$select_mode,$fullpath, $filename, $mtime, $size, $css_class, $line, \%access_controls, $curr_access, - $now, \%version_flag, $href_location, $url, $current_path, $access_admin_text); -# $r->print(''); -# $r->print($line); -# $r->print(''); -# $r->print(''.$version_flag{$filename}.''. -# $filename.''); -# $r->print(''.$size.''); -# $r->print(''.&Apache::lonlocal::locallocaltime($mtime).''); -# if ($select_mode ne 'true') { -# $r->print(''. -# &mt($curr_access).'   '); -# $r->print(''.$access_admin_text.''); -# } -# $r->print(''.$/); + &display_directory_line($r,$select_mode,$fullpath, $filename, $mtime, $size, $css_class, $line, + \%access_controls, $curr_access,$now, \%version_flag, $href_location, + $url, $current_path, $access_admin_text); if ($show_versions) { - &display_directory_line($r,$select_mode,$fullpath, $css_class, $line, \%access_controls, - $now, \%version_flag, $href_location, $url, $current_path, $access_admin_text); - + foreach my $dir_line (@version_lines) { + my ($v_filename,$dom,$testdir,$size,$mtime,$obs) = @$dir_line; + my ($v_fname,$version,$v_extension) = &Apache::grades::file_name_version_ext($v_filename); + $line = ' '; + if (($v_fname eq $fname)&&($v_extension eq $extension)) { + &display_directory_line($r,$select_mode,$fullpath, $v_filename, $mtime, $size, + $css_class, $line, \%access_controls, $curr_access, $now, + \%version_flag, $href_location, $url, $current_path, $access_admin_text, 1); + } + } } } } @@ -578,8 +572,13 @@ sub display_access { $uname); my %access_controls = &Apache::lonnet::get_access_controls($current_permissions,$group,$file_name); my $aclcount = keys(%access_controls); - my $header = '

'.&mt('Allowing others to retrieve portfolio file: [_1]',$port_path.$env{'form.currentpath'}.$env{'form.access'}).'

'; + my $header = '

'.&mt('Allowing others to retrieve file: [_1]',$port_path.$env{'form.currentpath'}.$env{'form.access'}).'

'; my $info .= &mt('Access to this file by others can be set to be one or more of the following types: public, passphrase-protected or conditional.').'
'; + + if ($group eq '') { + $info .= (&mt("Direct others to the 'Display file listing' link (shown when there are viewable files) on your personal information page:
http://$ENV{'SERVER_NAME'}/adm/$udom/$uname/aboutme")); + } + if ($can_setacl) { &open_form($r,$url); $r->print($header.$info); @@ -754,7 +753,7 @@ sub update_access { } } my $file_name = $env{'form.currentpath'}.$env{'form.selectfile'}; - $r->print('

'.&mt('Allowing others to retrieve portfolio file: [_1]', + $r->print('

'.&mt('Allowing others to retrieve file: [_1]', $port_path.$file_name).'

'."\n"); $file_name = &prepend_group($file_name); my ($uname,$udom) = &get_name_dom(); @@ -1477,7 +1476,6 @@ sub upload { } } $fname=&Apache::lonnet::clean_filename($fname); - my $portfolio_root=&get_portfolio_root(); my ($uname,$udom) = &get_name_dom(); my $port_path = &get_port_path(); @@ -1491,10 +1489,6 @@ sub upload { $file_name = $env{'form.currentpath'}.$file_name; $file_name = &prepend_group($file_name); $found_file = 1; - # FIXME I think this is incorrect, prepend_group took care of this? - if (defined($group)) { - $file_name = $group.'/'.$file_name; - } if (&Apache::lonnet::is_locked($file_name,$udom,$uname) eq 'true') { $locked_file = 1; } @@ -1601,7 +1595,10 @@ sub createdir { } sub get_portfolio_root { - my ($uname,$udom) = &get_name_dom(); + my ($udom,$uname) = @_; + if (!defined($uname) || !defined($udom)) { + ($uname,$udom) = &get_name_dom(); + } my $path; if (defined($env{'form.group'})) { $path = '/userfiles/groups/'.$env{'form.group'}.'/portfolio';