'.
- 'Actions | | Name | Size | Last Modified | Current Access Status |
');
- }
- if (defined($group)) {
- $r->print("\n".$groupitem."\n");
+ '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 $line (sort
+ foreach my $dir_line (sort
{
my ($afile)=split('&',$a,2);
my ($bfile)=split('&',$b,2);
@@ -187,18 +248,42 @@ 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) {
- $versioned{$fname} .= $version.",";
+ push(@version_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]);
+ $versioned{$fname.'.'.$extension} .= $version.",";
+ } else {
+ push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]);
}
- 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;
+ my $show_versions;
+ if ($env{'form.showversions'} eq $filename) {
+ $show_versions = 'true';
+ }
+ if (exists($versioned{$filename})) {
+ my %anchor_fields = (
+ 'selectfile' => $filename,
+ 'continue' => 'false',
+ 'currentpath' => $current_path,
+ );
+ if ($show_versions) {
+ $version_flag{$filename} = &make_anchor('portfolio',\%anchor_fields,
+ '');
+ } else {
+ $anchor_fields{'showversions'} = $filename;
+ $version_flag{$filename} = &make_anchor('portfolio',\%anchor_fields,
+ '');
+ }
+ } else {
+ $version_flag{$filename} = ' ';
+ }
if ($dirptr&$testdir) {
my $colspan='colspan="2"';
if ($select_mode eq 'true'){
@@ -206,20 +291,21 @@ sub display_directory {
}
$r->print(' | ');
$r->print('Go to ... | ');
- $r->print(''.&make_anchor($url,$filename.'/',$current_path.$filename.'/',$env{'form.mode'},$env{"form.fieldname"},$env{'form.continue'},$group).' | ');
+ 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('
');
} else {
my $css_class = 'LC_browser_file';
my $line;
- my $version_flag;
- if (exists($versioned{$fname})) {
- $version_flag = "*";
- } else {
- $version_flag = "";
- }
- my $fullpath = $current_path.$filename;
- $fullpath = &prepend_group($fullpath,$group);
- if ($select_mode eq 'true'){
+ 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' => $current_path.$filename
+ );
+ $line.=''.&make_anchor($url,\%anchor_fields,'Locked').' | ';
$css_class= 'LC_browser_file_locked';
} else {
if (!$can_modify) {
@@ -239,66 +328,75 @@ sub display_directory {
$line .= '';
}
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 .= ' | ';
}
- $r->print('');
- $r->print($line);
- }
- my $curr_access;
- my $pub_access = 0;
- my $guest_access = 0;
- my $cond_access = 0;
- foreach my $key (sort(keys(%{$access_controls{$fullpath}}))) {
- my ($num,$scope,$end,$start) = &unpack_acc_key($key);
- if (($now > $start) && (!$end || $end > $now)) {
- if ($scope eq 'public') {
- $pub_access = 1;
- } elsif ($scope eq 'guest') {
- $guest_access = 1;
- } else {
- $cond_access = 1;
- }
- }
}
- if (!$pub_access && !$guest_access && !$cond_access) {
- $curr_access = &mt('Private');
- } else {
- my @allaccesses;
- if ($pub_access) {
- push(@allaccesses,&mt('Public'));
- }
- if ($guest_access) {
- push(@allaccesses,&mt('Passphrase-protected'));
- }
- if ($cond_access) {
- push(@allaccesses,&mt('Conditional'));
- }
- $curr_access = join('+ ',@allaccesses);
- }
- $r->print(' | ');
- $r->print(''.
- $filename.' | ');
- $r->print(''.$size.' | ');
- $r->print(''.&Apache::lonlocal::locallocaltime($mtime).' | ');
- $r->print(''.
- &mt($curr_access).' ');
- $r->print(''.$access_admin_text.'');
- $r->print(' |
');
+ my $curr_access;
+ if ($select_mode ne 'true') {
+ my $pub_access = 0;
+ my $guest_access = 0;
+ my $cond_access = 0;
+ foreach my $key (sort(keys(%{$access_controls{$fullpath}}))) {
+ my ($num,$scope,$end,$start) = &unpack_acc_key($key);
+ if (($now > $start) && (!$end || $end > $now)) {
+ if ($scope eq 'public') {
+ $pub_access = 1;
+ } elsif ($scope eq 'guest') {
+ $guest_access = 1;
+ } else {
+ $cond_access = 1;
+ }
+ }
+ }
+ if (!$pub_access && !$guest_access && !$cond_access) {
+ $curr_access = &mt('Private');
+ } else {
+ my @allaccesses;
+ if ($pub_access) {
+ push(@allaccesses,&mt('Public'));
+ }
+ if ($guest_access) {
+ push(@allaccesses,&mt('Passphrase-protected'));
+ }
+ if ($cond_access) {
+ push(@allaccesses,&mt('Conditional'));
+ }
+ $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);
+ 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);
+ $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);
+ }
+ }
+ }
}
}
}
if ($select_mode eq 'true') {
$r->print('
-