'.
- 'Actions Name Size Last Modified Current Access Status ');
+ 'Actions Name Size Last Modified Current Access Status ');
}
$r->print("\n".&group_form_data()."\n");
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 $dir_line (sort
{
@@ -233,8 +280,9 @@ sub display_directory {
$filename =~ s/\s+$//;
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename);
if ($version) {
- push(@version_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]);
- $versioned{$fname.'.'.$extension} .= $version.",";
+ my $fullpath = &prepend_group($current_path.$fname.'.'.$extension);
+ push(@{ $versioned{$fullpath} },
+ [$filename,$dom,$testdir,$size,$mtime,$obs,]);
} else {
push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]);
}
@@ -243,19 +291,33 @@ sub display_directory {
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;
+ my $version_flag;
my $show_versions;
- if ($env{'form.showversions'} eq $filename) {
+ my $fullpath = &prepend_group($current_path.$filename);
+ if ($env{'form.showversions'} =~ /$filename/) {
$show_versions = 'true';
}
- if (exists($versioned{$filename})) {
+ if (exists($versioned{$fullpath})) {
+ my %anchor_fields = (
+ 'selectfile' => $fullpath,
+ 'continue' => 'false',
+ 'currentpath' => $current_path,
+ );
if ($show_versions) {
- $version_flag{$filename} = ' ';
+ # Must preserve other possible showversion files
+ my $version_remainder = $env{'form.showversions'};
+ $version_remainder =~ s/$filename//g;
+ $anchor_fields{'showversions'} = $version_remainder;
+ $version_flag = &make_anchor('portfolio',\%anchor_fields,
+ ' ');
} else {
- $version_flag{$filename} = ' ';
+ # allow multiple files to show versioned
+ $anchor_fields{'showversions'} = $env{'form.showversions'}.','.$filename;
+ $version_flag = &make_anchor('portfolio',\%anchor_fields,
+ ' ');
}
} else {
- $version_flag{$filename} = '';
+ $version_flag = ' ';
}
if ($dirptr&$testdir) {
my $colspan='colspan="2"';
@@ -264,13 +326,18 @@ sub display_directory {
}
$r->print(' ');
$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.' '.&make_anchor($url,\%anchor_fields,$filename.'/').' ');
$r->print(' ');
} else {
my $css_class = 'LC_browser_file';
my $line;
- my $fullpath = $current_path.$filename;
- $fullpath = &prepend_group($fullpath);
if ($select_mode eq 'true') {
$line=' ';
} else {
if (exists $locked_files{$fullpath}) {
- $line.='Locked ';
+ my %anchor_fields = (
+ 'lockinfo' => $fullpath
+ );
+ $line.=''.&make_anchor($url,\%anchor_fields,'Locked').' ';
$css_class= 'LC_browser_file_locked';
} else {
if (!$can_modify) {
@@ -291,10 +361,15 @@ sub display_directory {
$line .= ' ';
}
if ($can_modify) {
- my $cat=' ';
- $line .= 'Rename ';
- $line .= ''.$version_flag{$filename}.''.$cat.' ';
+ my %anchor_fields = (
+ 'rename' => $filename,
+ currentpath => $current_path
+ );
+ $line .= &make_anchor($url,\%anchor_fields,'Rename');
+ $line .= ' '.&make_anchor($href_edit_location.$filename.'.meta',\%anchor_fields,$cat);
+ # ''.$cat.' ';
}
$line .= ' ';
}
@@ -332,18 +407,17 @@ 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,
+ &display_directory_line($r,$select_mode, $filename, $mtime, $size, $css_class, $line,
+ \%access_controls, $curr_access,$now, $version_flag, $href_location,
$url, $current_path, $access_admin_text);
if ($show_versions) {
- 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);
- 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);
- }
+ foreach my $dir_line (@{ $versioned{$fullpath} }) {
+ my ($v_filename,$dom,$testdir,$size,$mtime,$obs) =
+ @$dir_line;
+ $line = ' ';
+ &display_directory_line($r,$select_mode, $v_filename, $mtime, $size,
+ $css_class, $line, \%access_controls, $curr_access, $now,
+ undef, $href_location, $url, $current_path, $access_admin_text, 1);
}
}
}
@@ -431,12 +505,13 @@ sub done {
unless (defined $message) {
$message='Done';
}
- my $result = '';
+ my %anchor_fields = (
+ 'showversions' => $env{'form.showversions'},
+ 'currentpath' => $env{'form.currentpath'},
+ 'fieldname' => $env{'form.fieldname'},
+ 'mode' => $env{'form.mode'}
+ );
+ my $result = ''.&make_anchor($url,\%anchor_fields,&mt($message)).' ';
return $result;
}
@@ -572,10 +647,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) {
@@ -618,8 +697,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;
}
@@ -843,12 +924,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;
}
@@ -1532,24 +1614,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));
@@ -1595,7 +1688,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';
500 Internal Server Error
Internal Server Error
The server encountered an internal error or
misconfiguration and was unable to complete
your request.
Please contact the server administrator at
root@localhost to inform them of the time this error occurred,
and the actions you performed just before this error.
More information about this error may be available
in the server error log.