--- loncom/publisher/lonpubdir.pm 2011/12/23 14:54:26 1.139 +++ loncom/publisher/lonpubdir.pm 2012/10/29 17:38:55 1.144 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Construction Space Directory Lister # -# $Id: lonpubdir.pm,v 1.139 2011/12/23 14:54:26 www Exp $ +# $Id: lonpubdir.pm,v 1.144 2012/10/29 17:38:55 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,7 +33,6 @@ use strict; use Apache::File; use File::Copy; use Apache::Constants qw(:common :http :methods); -use Apache::loncacc; use Apache::loncommon(); use Apache::lonhtmlcommon(); use Apache::londiff(); @@ -52,7 +51,7 @@ sub handler { my $uname; my $udom; - ($uname,$udom)=&Apache::loncacc::constructaccess($r->uri); + ($uname,$udom)=&Apache::lonnet::constructaccess($r->uri); unless (($uname) && ($udom)) { return HTTP_NOT_ACCEPTABLE; } @@ -458,11 +457,12 @@ sub putdirectory { my $disfilename = $dirname; # Don't display directory itself, and there is no way up from root directory unless ((($dirname eq '..') && ($reqfile=~/^\/[^\/]+\/[^\/]+$/)) || ($dirname eq '.')) { - my $kaputt=0; + my $kaputt=0; if (ref($bombs) eq 'HASH') { - foreach my $key (keys(%{$bombs})) { - if ($key =~ m{^\Q$targetdir/$disfilename\E/}) { $kaputt=1; last; } - } + foreach my $key (keys(%{$bombs})) { + my $currentdir = &Apache::lonnet::declutter("$targetdir/$disfilename"); + if (($key) =~ m{^\Q$currentdir\E/}) { $kaputt=1; last; } + } } # # Get the metadata from that directory's default.meta to display titles @@ -522,9 +522,9 @@ sub putresource { my $pubstatus = 'unpublished'; my $status=&mt('Unpublished'); my $css_class='LC_browser_file'; - my $title=' '; + my $title=''; my $publish_button=&mt('Publish'); - my $cstr_dir = $r->dir_config('lonDocRoot').'/priv/'.$udom.'/'.$uname.'/'.$thisdisfn.'/'; + my $cstr_dir = $r->dir_config('lonDocRoot').'/priv'.$thisdisfn; my $linkfilename=&HTML::Entities::encode('/priv'.$thisdisfn.'/'.$filename,'<>&"'); if (-e $resdir.'/'.$filename) { @@ -590,18 +590,29 @@ sub putresource { &mt('Diffs'),600,500); } } - - $title.="\n".'
'. - ($$bombs{$targetdir.'/'.$filename}?''.&mt('bomb').'':&mt('Edit Metadata')).''; - if (!$meta_same) { $title = &mt('Metadata Modified').'
'.$title. - '
'.&mt('Metadata Diffs').''; - $title.="\n".'
'.&mt('Retrieve Metadata').''; + '
'. + &Apache::loncommon::modal_link( + '/adm/diff?filename='.$linkfilename.'.meta'.'&versiontwo=priv', + &mt('Metadata Diffs'),600,500); + $title.="\n".'
'. + &Apache::loncommon::modal_link( + '/adm/retrieve?filename='.$linkfilename.'.meta&inhibitmenu=yes&add_modal=yes', + &mt('Retrieve Metadata'),600,500); } - $status.="\n".'
'.&mt('Retrieve').''; + $status.="\n".'
'. + &Apache::loncommon::modal_link( + '/adm/retrieve?filename='.$linkfilename.'&inhibitmenu=yes&add_modal=yes',&mt('Retrieve'),600,500); } + # Allow editing metadata of published and unpublished resources + $title .= "\n".'
' if ($title); + $title .= ''. + ($$bombs{&Apache::lonnet::declutter($targetdir.'/'.$filename)}? + ''.&mt('bomb').'': + &mt('Edit Metadata')). + ''; + my $editlink=''; my $editlink2=''; if ($filename=~/\.(xml|html|htm|xhtml|xhtm|sty)$/) {