--- loncom/interface/portfolio.pm 2006/08/08 19:36:54 1.149
+++ 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.149 2006/08/08 19:36:54 banghart Exp $
+# $Id: portfolio.pm,v 1.155 2006/08/12 22:41:53 banghart Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -72,7 +72,7 @@ sub make_anchor {
foreach my $field_name (keys(%$anchor_fields)) {
$anchor .= $field_name.'='.$$anchor_fields{$field_name}.'&';
}
- $anchor =~ s\&$\\;
+ $anchor =~ s/&$//;
$anchor .= &group_args();
$anchor .= '">'.$inner_text.'';
return $anchor;
@@ -132,8 +132,7 @@ sub display_common {
TABLE
}
my @tree = split (/\//,$current_path);
- my %anchor_fields = ();
- %anchor_fields = (
+ my %anchor_fields = (
'selectfile' => $port_path,
'currentpath' => '/',
'mode' => $env{"form.mode"},
@@ -145,8 +144,7 @@ TABLE
my $newCurrentPath = '';
for (my $i = 1; $i< @tree; $i++){
$newCurrentPath .= $tree[$i].'/';
- my %anchor_fields = ();
- %anchor_fields = (
+ my %anchor_fields = (
'selectfile' => $tree[$i],
'currentpath' => '/',
'mode' => $env{"form.mode"},
@@ -171,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('.') | ');
- $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('
'.$/);
}
@@ -268,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} = ' ';
@@ -283,8 +318,7 @@ sub display_directory {
}
$r->print(' | ');
$r->print('Go to ... | ');
- my %anchor_fields = ();
- %anchor_fields = (
+ my %anchor_fields = (
'selectfile' => $filename.'/',
'currentpath' => $current_path.$filename.'/',
'mode' => $env{"form.mode"},
@@ -306,7 +340,10 @@ sub display_directory {
$line.=' />';
} else {
if (exists $locked_files{$fullpath}) {
- $line.='Locked | ';
+ my %anchor_fields = (
+ 'lockinfo' => $current_path.$filename
+ );
+ $line.=''.&make_anchor($url,\%anchor_fields,'Locked').' | ';
$css_class= 'LC_browser_file_locked';
} else {
if (!$can_modify) {
@@ -320,8 +357,13 @@ sub display_directory {
if ($can_modify) {
my $cat='
';
- $line .= 'Rename';
- $line .= ''.''.$cat.'';
+ my %anchor_fields = (
+ 'rename' => $filename,
+ currentpath => $current_path
+ );
+ $line .= &make_anchor($url,\%anchor_fields,'Rename');
+ $line .= ' | '.&make_anchor($href_edit_location.$filename.'.meta',undef,$cat);
+ # ''.$cat.'';
}
$line .= ' | ';
}
@@ -459,12 +501,12 @@ sub done {
unless (defined $message) {
$message='Done';
}
- my $result = '';
+ my %anchor_fields = (
+ 'currentpath' => $env{'form.currentpath'},
+ 'fieldname' => $env{'form.fieldname'},
+ 'mode' => $env{'form.mode'}
+ );
+ my $result = ''.&make_anchor($url,\%anchor_fields,&mt($message)).'
';
return $result;
}
@@ -600,8 +642,12 @@ sub display_access {
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 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.').'
- '.&mt('Public files are available to anyone without the need for login.').'
- '.&mt('Passphrase-protected files do not require log-in, but will require the viewer to enter the passphrase you set.').'
- '.&mt('Conditional files are accessible to logged-in users with accounts in the LON-CAPA network, who satisfy the conditions you set.').'
'.&mt('The conditions can include affiliation with a particular course or group, or a user account in a specific domain.').'
'.&mt('Alternatively access can be granted to people with specific LON-CAPA usernames and domains.').'
';
-
+ 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.');
+ $info .= '
- '.&mt('Public files are available to anyone without the need for login.');
+ $info .= '
- '.&mt('Passphrase-protected files do not require log-in, but will require the viewer to enter the passphrase you set.');
+ $info .= '
- '.&mt('Conditional files are accessible to logged-in users with accounts in the LON-CAPA network, who satisfy the conditions you set.').'
';
+ $info .= &mt('The conditions can include affiliation with a particular course or group, or a user account in a specific domain.').'
';
+ $info .= &mt('Alternatively access can be granted to people with specific LON-CAPA usernames and domains.').'
';
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"));
}
@@ -646,8 +692,10 @@ sub view_access_settings {
} else {
$r->print(&mt('No access control settings currently exist for this file.
' ));
}
- $r->print('
'.&mt('Return to directory listing').'');
+ my %anchor_fields = (
+ 'currentpath' => $env{'form.currentpath'}
+ );
+ $r->print('
'.&make_anchor($url, \%anchor_fields, &mt('Return to directory listing')));
return;
}
@@ -871,12 +919,13 @@ sub update_access {
}
&close_form($r,$url);
} else {
- $r->print('
'.
- &mt('Display all access settings for this file').''.
- ' '.
- ''.&mt('Return to directory listing').'');
+ my %anchor_fields = (
+ 'currentpath' => $env{'form.currentpath'},
+ 'access' => $env{'form.selectfile'}
+ );
+ $r->print('
'.&make_anchor($url, \%anchor_fields, &mt('Display all access settings for this file')));
+ delete $anchor_fields{'access'};
+ $r->print(' '.&make_anchor($url,\%anchor_fields,&mt('Return to directory listing')));
}
return;
}
@@ -1568,13 +1617,24 @@ sub lock_info {
} else {
$filetext = ''.$file_name.'';
}
- $r->print(&mt('[_1] was submitted in response to problem: ',
+ if ($$array_item[(@$array_item - 1)] eq 'graded') {
+ $r->print(&mt('[_1] was submitted in response to problem: ',
+ $filetext).
+ ''.&Apache::lonnet::gettitle($$array_item[0]).
+ '
');
+ my %course_description = &Apache::lonnet::coursedescription($$array_item[1]);
+ $r->print(&mt('In the course: [_1]
',
+ $course_description{'description'}));
+ } elsif ($$array_item[(@$array_item - 1)] eq 'handback') {
+ $r->print(&mt('[_1] was handed back in response to problem: ',
$filetext).
''.&Apache::lonnet::gettitle($$array_item[0]).
'
');
- my %course_description = &Apache::lonnet::coursedescription($$array_item[1]);
- $r->print(&mt('In the course: [_1]
',
+ my %course_description = &Apache::lonnet::coursedescription($$array_item[1]);
+ $r->print(&mt('In the course: [_1]
',
$course_description{'description'}));
+
+ }
# $r->print('the third is '.$$array_item[2].'
');
# $r->print("item is $$array_item[0]
and $$array_item[0]");
}