--- loncom/publisher/lonpubdir.pm 2011/10/25 22:04:20 1.132 +++ loncom/publisher/lonpubdir.pm 2011/12/23 14:54:26 1.139 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Construction Space Directory Lister # -# $Id: lonpubdir.pm,v 1.132 2011/10/25 22:04:20 www Exp $ +# $Id: lonpubdir.pm,v 1.139 2011/12/23 14:54:26 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -145,7 +145,7 @@ sub startpage { &Apache::lonhtmlcommon::clear_breadcrumbs(); &Apache::lonhtmlcommon::add_breadcrumb({ 'text' => 'Construction Space', - 'href' => &Apache::loncommon::authorspace(), + 'href' => &Apache::loncommon::authorspace($formaction), }); # breadcrumbs (and tools) will be created # in start_page->bodytag->innerregister @@ -154,7 +154,7 @@ sub startpage { $r->print(&Apache::loncommon::start_page('Construction Space',undef)); $r->print(&Apache::loncommon::head_subbox( - &Apache::loncommon::CSTR_pageheader(1))); + &Apache::loncommon::CSTR_pageheader())); my $esc_thisdisfn = &Apache::loncommon::escape_single($thisdisfn); my $doctitle = 'LON-CAPA '.&mt('Construction Space'); @@ -437,28 +437,33 @@ sub getSourceRightString { } # # Put out a directory table row: -# putdirectory(r, base, here, dirname, modtime) -# r - Apache request object. -# reqfile - File in request. -# here - Where we are in directory tree. -# dirname - Name of directory special file. -# modtime - Encoded modification time. -# +# putdirectory(r, base, here, dirname, modtime, targetdir, bombs, numdir) +# r - Apache request object. +# reqfile - File in request. +# here - Where we are in directory tree. +# dirname - Name of directory special file. +# modtime - Encoded modification time. +# targetdir - Publication target directory. +# bombs - Reference to hash of URLs with runtime error messages. +# numdir - Reference to scalar used to track number of sub-directories +# in directory (used in form name for each "actions" dropdown). +# sub putdirectory { - my ($r, $reqfile, $here, $dirname, $modtime, $resdir, $bombs, $numdir) = @_; + my ($r, $reqfile, $here, $dirname, $modtime, $targetdir, $bombs, $numdir) = @_; # construct the display filename: the directory name unless ..: - + + my $actionitem; + my $disfilename = $dirname; - if ($dirname eq '..') { - $disfilename = ''.&mt('Parent Directory').''; - } # Don't display directory itself, and there is no way up from root directory - unless ( (($dirname eq '..') && ($reqfile=~/^\/[^\/]+\/[^\/]+$/)) || ($dirname eq '.')) { + unless ((($dirname eq '..') && ($reqfile=~/^\/[^\/]+\/[^\/]+$/)) || ($dirname eq '.')) { my $kaputt=0; - foreach (keys %{$bombs}) { - if ($_=~m:^\Q$resdir\E/\Q$disfilename\E/:) { $kaputt=1; last; } - } + if (ref($bombs) eq 'HASH') { + foreach my $key (keys(%{$bombs})) { + if ($key =~ m{^\Q$targetdir/$disfilename\E/}) { $kaputt=1; last; } + } + } # # Get the metadata from that directory's default.meta to display titles # @@ -467,10 +472,9 @@ sub putdirectory { &Apache::lonpublisher::metaeval( &Apache::lonnet::getfile($r->dir_config('lonDocRoot').$here.'/'.$dirname.'/default.meta') ); -# - my $actionitem = ''; - if ($here eq '..') { + if ($dirname eq '..') { $actionitem = &mt('Go to ...'); + $disfilename = ''.&mt('Parent Directory').''; } else { $actionitem = '
'. $disfilename.''. - ''.($kaputt?&Apache::lonhtmlcommon::authorbombs($resdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'}); + ''.($kaputt?&Apache::lonhtmlcommon::authorbombs($targetdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'}); if ($Apache::lonpublisher::metadatafields{'subject'} ne '') { $r->print(' '. $Apache::lonpublisher::metadatafields{'subject'}. @@ -559,7 +563,7 @@ sub putresource { $rights_status .= $lt_SourceRight{&getSourceRightString($targetdir.'/'.$filename)}; - $title = ''. &getTitleString($targetdir.'/'.$filename).''; if ($same) { @@ -580,8 +584,10 @@ sub putresource { $status=&mt('Modified'). '
'. $rights_status; if (&Apache::loncommon::fileembstyle(($filename=~/\.(\w+)$/)) eq 'ssi') { - $status.='
'.&mt('Diffs').''; + $status.='
'. + &Apache::loncommon::modal_link( + '/adm/diff?filename='.$linkfilename.'&versiontwo=priv', + &mt('Diffs'),600,500); } } @@ -599,11 +605,11 @@ sub putresource { my $editlink=''; my $editlink2=''; if ($filename=~/\.(xml|html|htm|xhtml|xhtm|sty)$/) { - $editlink='
('.&mt('Edit').')'; + $editlink='
('.&mt('Edit').')'; } - if ($filename=~/\.(problem|exam|quiz|assess|survey|form|library)$/) { - $editlink=' ('.&mt('EditXML').')'; - $editlink2='
('.&mt('Edit').')'; + if ($filename=~/$LONCAPA::assess_re/) { + $editlink=' ('.&mt('EditXML').')'; + $editlink2='
('.&mt('Edit').')'; } if ($filename=~/\.(problem|exam|quiz|assess|survey|form|library|xml|html|htm|xhtml|xhtm|sty)$/) { $editlink.=' ('.&mt('Clean Up').')'; @@ -695,7 +701,7 @@ Apache::lonpubdir - Construction space d Invoked (for various locations) by /etc/httpd/conf/srm.conf: - + PerlAccessHandler Apache::loncacc SetHandler perl-script PerlHandler Apache::lonpubdir @@ -768,16 +774,20 @@ Output the header of the page. This inc $str = getTitleString($fullname); $fullname - Fully qualified filename to check. -=item putdirectory(r, base, here, dirname, modtime) +=item putdirectory($r, $base, $here, $dirname, $modtime, $targetdir, $bombs, + $numdir) Put out a directory table row: - putdirectory($r, $base, $here, $dirname, $modtime) - $r - Apache request object. - $reqfile - File in request. - $here - Where we are in directory tree. - $dirname - Name of directory special file. - $modtime - Encoded modification time. + $r - Apache request object. + $reqfile - File in request. + $here - Where we are in directory tree. + $dirname - Name of directory special file. + $modtime - Encoded modification time. + targetdir - Publication target directory. + bombs - Reference to hash of URLs with runtime error messages. + numdir - Reference to scalar used to track number of sub-directories + in directory (used in form name for each "actions" dropdown). =back