--- loncom/publisher/lonpubdir.pm 2001/04/01 02:58:51 1.1 +++ loncom/publisher/lonpubdir.pm 2001/04/03 10:48:08 1.2 @@ -10,7 +10,7 @@ # 03/23 Guy Albertelli # 03/24,03/29 Gerd Kortemeyer) # -# 03/31 Gerd Kortemeyer +# 03/31,04/03 Gerd Kortemeyer package Apache::lonpubdir; @@ -37,7 +37,7 @@ sub handler { unless ($fn) { $r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}. - ' trying to publish empty directory', $r->filename); + ' trying to list empty directory', $r->filename); return HTTP_NOT_FOUND; } @@ -64,17 +64,46 @@ sub handler { my $resdir=$docroot.'/res/'.$udom.'/'.$uname.$thisdisfn; my $linkdir='/~'.$uname.$thisdisfn; - my $filename; - opendir(DIR,$fn); - while ($filename=readdir(DIR)) { - $filename=~/\.(\w+)$/; - if (($1 ne 'meta') && ($1 ne 'save') && ($1 ne 'log')) { - $r->print($resdir.' - '.$linkdir.' = '.$filename.'
'); - } - } - closedir(DIR); + $r->print(''. + ''); + my $filename; + my $dirptr=16384; - $r->print(''); + opendir(DIR,$fn); + while ($filename=readdir(DIR)) { + my ($cdev,$cino,$cmode,$cnlink, + $cuid,$cgid,$crdev,$csize, + $catime,$cmtime,$cctime, + $cblksize,$cblocks)=stat($fn.'/'.$filename); + $filename=~/\.(\w+)$/; + if (($1 ne 'meta') && (&Apache::lonnet::fileembstyle($1))) { + my $status='Unpublished'; + my $bgcol='#FFBBBB'; + if (-e $resdir.'/'.$filename) { + my ($rdev,$rino,$rmode,$rnlink, + $ruid,$rgid,$rrdev,$rsize, + $ratime,$rmtime,$rctime, + $rblksize,$rblocks)=stat($resdir.'/'.$filename); + if ($rmtime>=$cmtime) { + $status='Published'; + $bgcol='#BBFFBB'; + } else { + $status='Modified'; + $bgcol='#FFFFBB'; + } + } + $r->print(''); + } elsif ($cmode&$dirptr) { + $r->print(''); + } + } + closedir(DIR); + + $r->print('
FilenameModifiedStatus
'.$filename. + ''.localtime($cmtime).''.$status.'
'.$filename. + ''.localtime($cmtime).' 
'); return OK; }