--- loncom/interface/lonindexer.pm 2004/02/05 03:42:52 1.90 +++ loncom/interface/lonindexer.pm 2004/03/28 21:01:06 1.95 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Directory Indexer # -# $Id: lonindexer.pm,v 1.90 2004/02/05 03:42:52 taceyjo1 Exp $ +# $Id: lonindexer.pm,v 1.95 2004/03/28 21:01:06 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -47,6 +47,7 @@ use strict; use Apache::lonnet(); use Apache::loncommon(); use Apache::lonhtmlcommon(); +use Apache::lonsequence(); use Apache::Constants qw(:common); use Apache::lonmeta; use Apache::File; @@ -164,7 +165,7 @@ END # selection is made. # $element is the name of the element in $formname which receives # the URL. - &Apache::lonxml::debug('Checking mode, form, element'); + #&Apache::lonxml::debug('Checking mode, form, element'); &setvalues(\%hash,'form.mode' ,\%ENV,'form.mode' ); &setvalues(\%hash,'form.form' ,\%ENV,'form.form' ); &setvalues(\%hash,'form.element' ,\%ENV,'form.element'); @@ -568,10 +569,11 @@ sub scanDir { foreach my $line (@list) { return if ($c->aborted()); #This is a kludge, sorry aboot this - my ($strip,$dom,undef,$testdir,undef,undef,undef,undef,undef,undef,undef,undef,undef,undef,$obs)=split(/\&/,$line,15); + my ($strip,$dom,undef,$testdir,undef,undef,undef,undef,undef,undef,undef,undef,undef,undef,$obs,undef)=split(/\&/,$line,16); next if($strip =~ /.*\.meta$/ | $obs eq '1'); my (@fileparts) = split(/\./,$strip); if ($hash{'display_attrs_9'} != 1) { +# if not all versions to be shown if (scalar(@fileparts) >= 3) { my $fext = pop @fileparts; my $ov = pop @fileparts; @@ -590,7 +592,7 @@ sub scanDir { $curdir = $startdir; } my $diropen = 'closed'; - if (($dirptr&$testdir) or ($dom =~ /^(domain|user)$/)) { + if (($dirptr&$testdir) or ($dom =~ /^(domain|user)$/) || ($compuri=~/\.(sequence|page)$/)) { while (my ($key,$val)= each %dupdirs) { if ($key eq $compuri and $val eq "open") { $diropen = "opened"; @@ -618,12 +620,16 @@ sub get_list { if ($hash{'dirlist_files_'.$luri}) { @list = split(/\n/,$hash{'dirlist_files_'.$luri}); + } elsif ($uri=~/\.(page|sequence)$/) { +# is a page or a sequence + @list= &Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$uri)); + $hash{'dirlist_files_'.$luri} = join("\n",@list); } else { +# is really a directory @list = &Apache::lonnet::dirlist($uri); $hash{'dirlist_files_'.$luri} = join("\n",@list); } - @list=&match_ext($r,@list); - return @list; + return @list=&match_ext($r,@list); } sub initdebug { @@ -722,9 +728,8 @@ sub display_line { $r->print(&mt("Up")." $tabtag\n"); return OK; } -# Do we have permission to look at this? - - return OK if (!&Apache::lonnet::allowed('bre',$startdir.$filecom[0])); +# Do we have permission to look at this? + if($filecom[15] ne '1') { return OK if (!&Apache::lonnet::allowed('bre',$startdir.$filecom[0])); } # display domain if ($filecom[1] eq 'domain') { @@ -809,8 +814,7 @@ sub display_line { $r->print("". "\n"); $r->print("