');
+ $r->print($line); # contains first two cells of table
+ my $lock_info;
+ if ($version_flag) { # versioned can't be versioned, so TRUE when root file
+ $r->print('
');
+ $r->print('
'.$version_flag.'
');
+ } 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($$permissions_hash{$fullpath})) {
+ foreach my $array_item (@{$$permissions_hash{$fullpath}}) {
+ if (ref($array_item) eq 'ARRAY') {
+ if ($$array_item[-1] eq 'handback') {
+ $lock_info = 'Handback';
+ } elsif ($$array_item[-1] eq 'graded') {
+ $lock_info = 'Graded';
+ }
+ }
+ }
+ }
+ if ($lock_info) {
+ my %anchor_fields = ('lockinfo' => $fullpath);
+ if ($versions) { # hold the folder open
+ my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($fullpath);
+ $fname =~ s|^/||;
+ $anchor_fields{'showversions'} = $fname.'.'.$extension;
+ }
+ $lock_info = &make_anchor(undef,\%anchor_fields,$lock_info);
+ }
+ $r->print('
';
return $result;
}
@@ -617,10 +642,14 @@ 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"));
+ $info .= (&mt("A listing of files viewable without log-in is available at: http://$ENV{'SERVER_NAME'}/adm/$udom/$uname/aboutme/portfolio. For logged in users a 'Display file listing' link will also appear (when there are viewable files) on your personal information page: http://$ENV{'SERVER_NAME'}/adm/$udom/$uname/aboutme "));
}
if ($can_setacl) {
@@ -663,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;
}
@@ -888,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;
}
@@ -1577,24 +1609,35 @@ sub lock_info {
$file_name = &prepend_group($file_name);
if (defined($file_name) && defined($$current_permissions{$file_name})) {
foreach my $array_item (@{$$current_permissions{$file_name}}) {
- if (ref($array_item) eq 'ARRAY') {
- my $filetext;
- if (defined($group)) {
- $filetext = ''.$env{'form.lockinfo'}.
- ' (group: '.$group.')';
- } else {
- $filetext = ''.$file_name.'';
- }
- $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'}));
- # $r->print('the third is '.$$array_item[2].' ');
- # $r->print("item is $$array_item[0] and $$array_item[0]");
- }
+ next if (ref($array_item) ne 'ARRAY');
+
+ my $filetext;
+ if (defined($group)) {
+ $filetext = ''.$env{'form.lockinfo'}.
+ ' (group: '.$group.')';
+ } else {
+ $filetext = ''.$file_name.'';
+ }
+
+ my $title =''.&Apache::lonnet::gettitle($$array_item[0]).
+ ' ';
+ if ($$array_item[-1] eq 'graded') {
+ $r->print(&mt('[_1] was submitted in response to problem: [_2]',
+ $filetext,$title));
+ } elsif ($$array_item[-1] eq 'handback') {
+ $r->print(&mt('[_1] was handed back in response to problem: [_2]',
+ $filetext,$title));
+ } else {
+ # submission style lock
+ $r->print(&mt('[_1] was submitted in response to problem: [_2]',
+ $filetext,$title));
+ }
+ my %course_description =
+ &Apache::lonnet::coursedescription($$array_item[1]);
+ if ( $course_description{'description'} ne '') {
+ $r->print(&mt('In the course: [_1] ',
+ $course_description{'description'}));
+ }
}
}
$r->print(&done('Back',$url));
@@ -1640,7 +1683,10 @@ sub createdir {
}
sub get_portfolio_root {
- my ($uname,$udom) = &get_name_dom();
+ my ($udom,$uname) = @_;
+ if (!(defined($udom)) || !(defined($uname))) {
+ ($uname,$udom) = &get_name_dom();
+ }
my $path;
if (defined($env{'form.group'})) {
$path = '/userfiles/groups/'.$env{'form.group'}.'/portfolio';