--- loncom/interface/portfolio.pm 2006/08/06 17:23:56 1.148
+++ loncom/interface/portfolio.pm 2006/08/12 22:41:53 1.155
@@ -1,7 +1,7 @@
# The LearningOnline Network
# portfolio browser
#
-# $Id: portfolio.pm,v 1.148 2006/08/06 17:23:56 banghart Exp $
+# $Id: portfolio.pm,v 1.155 2006/08/12 22:41:53 banghart Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -66,12 +66,15 @@ sub group_form_data {
# receives a file name and path stub from username/userfiles/portfolio/
# returns an anchor tag consisting encoding filename and currentpath
sub make_anchor {
- my ($url, $filename, $current_path, $current_mode, $field_name,
- $continue_select) = @_;
- if ($continue_select ne 'true') {$continue_select = 'false'};
- my $anchor = '';
+ $anchor .= '">'.$inner_text.'';
return $anchor;
}
@@ -129,12 +132,26 @@ sub display_common {
TABLE
}
my @tree = split (/\//,$current_path);
- $r->print(''.&make_anchor($url,$port_path,'/',$env{"form.mode"},$env{"form.fieldname"},$env{"form.continue"}).'/');
+ my %anchor_fields = (
+ 'selectfile' => $port_path,
+ 'currentpath' => '/',
+ 'mode' => $env{"form.mode"},
+ 'fieldname' => $env{"form.fieldname"},
+ 'continue' => $env{"form.continue"}
+ );
+ $r->print(''.&make_anchor($url,\%anchor_fields,$port_path).'/');
if (@tree > 1){
my $newCurrentPath = '';
for (my $i = 1; $i< @tree; $i++){
$newCurrentPath .= $tree[$i].'/';
- $r->print(&make_anchor($url,$tree[$i],'/'.$newCurrentPath, $env{"form.mode"},$env{"form.fieldname"}, $env{"form.continue"}).'/');
+ my %anchor_fields = (
+ 'selectfile' => $tree[$i],
+ 'currentpath' => '/',
+ 'mode' => $env{"form.mode"},
+ 'fieldname' => $env{"form.fieldname"},
+ 'continue' => $env{"form.continue"}
+ );
+ $r->print(&make_anchor($url,\%anchor_fields,$tree[$i]).'/');
}
}
$r->print('');
@@ -152,18 +169,47 @@ sub display_directory_line {
$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);
- $r->print(' '.$/);
}
@@ -249,10 +295,18 @@ sub display_directory {
$show_versions = 'true';
}
if (exists($versioned{$filename})) {
+ my %anchor_fields = (
+ 'selectfile' => $filename,
+ 'continue' => 'false',
+ 'currentpath' => $current_path,
+ );
if ($show_versions) {
- $version_flag{$filename} = '';
+ $version_flag{$filename} = &make_anchor('portfolio',\%anchor_fields,
+ '');
} else {
- $version_flag{$filename} = '';
+ $anchor_fields{'showversions'} = $filename;
+ $version_flag{$filename} = &make_anchor('portfolio',\%anchor_fields,
+ '');
}
} else {
$version_flag{$filename} = ' ';
@@ -264,7 +318,14 @@ sub display_directory {
}
$r->print('');
- $r->print(' '.$$version_flag{$filename}.' '.
- $filename.' ');
+ $r->print($line); # contains first two cells of table
+ $filename = $filename;
+ $filename = &prepend_group($filename);
+ my $lock_info;
+ if ($$version_flag{$filename}) { # versioned can't be versioned, so TRUE when root file
+ $r->print('');
+ $r->print(' '.$$version_flag{$filename}.' ');
+ } else { # this is a graded or handed back file
+ my ($user,$domain) = &get_name_dom();
+ my $permissions_hash = &Apache::lonnet::get_portfile_permissions($domain,$user);
+ if (defined($filename) && defined($$permissions_hash{'/'.$filename})) {
+ foreach my $array_item (@{$$permissions_hash{'/'.$filename}}) {
+ if (ref($array_item) eq 'ARRAY') {
+ if ($$array_item[(@$array_item - 1)] eq 'handback') {
+ $lock_info = 'Handback';
+ } elsif ($$array_item[(@$array_item - 1)] eq 'graded') {
+ $lock_info = 'Graded';
+ }
+ }
+ }
+ }
+ if ($lock_info) {
+ my %anchor_fields = (
+ 'lockinfo' => '/'.$filename
+ );
+ $lock_info = &make_anchor(undef,\%anchor_fields,$lock_info);
+ }
+ $r->print(''.$lock_info.' ');
+ }
+ # $r->print(''.$$version_flag{$filename}.' ');
+ $r->print(' '.&make_anchor($href_location.$filename,undef,$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.' ');
+ my %anchor_fields = (
+ 'access' => $filename,
+ 'currentpath' => $current_path
+ );
+ $r->print(&make_anchor($url, \%anchor_fields, $access_admin_text).'');
}
$r->print(' ');
} else {
my $css_class = 'LC_browser_file';
@@ -279,7 +340,10 @@ sub display_directory {
$line.=' />';
} else {
if (exists $locked_files{$fullpath}) {
- $line.='');
$r->print(' Go to ... ');
- $r->print(''.$version_flag{$filename}.' '.&make_anchor($url,$filename.'/',$current_path.$filename.'/',$env{'form.mode'},$env{"form.fieldname"},$env{'form.continue'}).' ');
+ my %anchor_fields = (
+ 'selectfile' => $filename.'/',
+ 'currentpath' => $current_path.$filename.'/',
+ 'mode' => $env{"form.mode"},
+ 'fieldname' => $env{"form.fieldname"},
+ 'continue' => $env{"form.continue"}
+ );
+ $r->print(''.$version_flag{$filename}.' '.&make_anchor($url,\%anchor_fields,$filename.'/').' ');
$r->print('