--- loncom/interface/portfolio.pm 2015/01/05 15:56:24 1.232.2.1 +++ loncom/interface/portfolio.pm 2011/10/17 12:41:30 1.233 @@ -1,7 +1,7 @@ # The LearningOnline Network # portfolio browser # -# $Id: portfolio.pm,v 1.232.2.1 2015/01/05 15:56:24 raeburn Exp $ +# $Id: portfolio.pm,v 1.233 2011/10/17 12:41:30 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -379,22 +379,24 @@ sub display_directory { my $href_edit_location="/editupload/$udom/$uname/$port_path".$current_path; my @dir_lines; my %versioned; - foreach my $dir_line (sort - { - my ($afile)=split('&',$a,2); - my ($bfile)=split('&',$b,2); - return (lc($afile) cmp lc($bfile)); - } (@$dir_list)) { - 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) { - 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]); - } + if (ref($dir_list) eq 'ARRAY') { + foreach my $dir_line (sort + { + my ($afile)=split('&',$a,2); + my ($bfile)=split('&',$b,2); + return (lc($afile) cmp lc($bfile)); + } (@{$dir_list})) { + 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) { + 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]); + } + } } my $zerobyte; foreach my $dir_line (@dir_lines) { @@ -883,7 +885,7 @@ sub display_access { } $info .= "
".&Apache::lonnet::absolute_url($ENV{'SERVER_NAME'})."/adm/$udom/$uname/aboutme
"; if ($group ne '') { - $info .= &mt("Users with privileges to edit course contents may add a group portfolio page to a course using the Course Editor").'
'; + $info .= &mt("Users with privileges to edit course contents may add a course information page to a course using the 'Course Info' button in DOCS").'
'; } } else { $header = '

'.&mt('Conditional access controls for file: [_1]',$port_path.$env{'form.currentpath'}.$env{'form.access'}).'

'. @@ -2249,12 +2251,14 @@ sub createdir { return; } my $portfolio_root = &get_portfolio_root(); - my @dir_list=&get_dir_list($portfolio_root,undef,$group); + my ($dirlistref,$listerror) = &get_dir_list($portfolio_root,undef,$group); my $found_file = 0; - foreach my $line (@dir_list) { - my ($filename)=split(/\&/,$line,2); - if ($filename eq $newdir){ - $found_file = 1; + if (ref($dirlistref) eq 'ARRAY') { + foreach my $line (@{$dirlistref}) { + my ($filename)=split(/\&/,$line,2); + if ($filename eq $newdir){ + $found_file = 1; + } } } if ($found_file){ @@ -2703,8 +2707,9 @@ sub handler { &Apache::lonhtmlcommon::clear_breadcrumbs(); $r->print(&coursegrp_portfolio_header($udom,$uname,$grp_desc)); } - my @dir_list=&get_dir_list($portfolio_root,$current_path,$group); - if ($dir_list[0] eq 'no_such_dir'){ + my ($dirlistref,$listerror) = + &get_dir_list($portfolio_root,$current_path,$group); + if ($listerror eq 'no_such_dir'){ # two main reasons for this: # 1) never been here, so directory structure not created # 2) back-button navigation after deleting a directory @@ -2719,13 +2724,22 @@ sub handler { $current_path = '/'; # force it back to the root } # now grab the directory list again, for the first time - @dir_list=&get_dir_list($portfolio_root,$current_path,$group); + ($dirlistref,$listerror) = + &get_dir_list($portfolio_root,$current_path,$group); } # need to know if directory is empty so it can be removed if desired - my $is_empty=(@dir_list == 2); - &display_common($r,$url,$current_path,$is_empty,\@dir_list, + my $is_empty; + if ($listerror eq 'empty') { + $is_empty = 1; + } elsif (ref($dirlistref) eq 'ARRAY') { + if ((scalar(@{$dirlistref}) == 2) && ($dirlistref->[0] =~ /^\.+\&/) + && ($dirlistref->[1] =~ /^\.+\&/)) { + $is_empty = 1; + } + } + &display_common($r,$url,$current_path,$is_empty,$dirlistref, $can_upload,$group); - &display_directory($r,$url,$current_path,$is_empty,\@dir_list,$group, + &display_directory($r,$url,$current_path,$is_empty,$dirlistref,$group, $can_upload,$can_modify,$can_delete,$can_setacl); } $r->print(&Apache::loncommon::end_page());