--- loncom/publisher/lonpubdir.pm 2004/11/30 19:08:18 1.66
+++ loncom/publisher/lonpubdir.pm 2005/07/12 15:55:58 1.86
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Construction Space Directory Lister
#
-# $Id: lonpubdir.pm,v 1.66 2004/11/30 19:08:18 raeburn Exp $
+# $Id: lonpubdir.pm,v 1.86 2005/07/12 15:55:58 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -61,7 +61,7 @@ sub handler {
$fn,$r->dir_config('lonDefDomain'));
unless (($uname) && ($udom)) {
$r->log_reason($uname.' at '.$udom.
- ' trying to list directory '.$ENV{'form.filename'}.
+ ' trying to list directory '.$env{'form.filename'}.
' ('.$fn.') - not authorized',
$r->filename);
return HTTP_NOT_ACCEPTABLE;
@@ -72,7 +72,7 @@ sub handler {
$fn=~s/\/$//;
unless ($fn) {
- $r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}.
+ $r->log_reason($env{'user.name'}.' at '.$env{'user.domain'}.
' trying to list empty directory', $r->filename);
return HTTP_NOT_FOUND;
}
@@ -91,9 +91,11 @@ sub handler {
my %bombs=&Apache::lonmsg::all_url_author_res_msg($uname,$udom);
&startpage($r, $uname, $udom, $thisdisfn); # Put out the start of page.
- if ($ENV{'environment.remote'} eq 'off') {
+ if ($env{'environment.remote'} eq 'off') {
&dircontrols($r,$uname,$udom,$thisdisfn); # Put out actions for directory,
# browse/upload + new file page.
+ } else {
+ &pubbuttons($r,$uname,$thisdisfn);
}
&resourceactions($r,$uname,$udom,$thisdisfn); #Put out form used for printing/deletion etc.
@@ -109,7 +111,7 @@ sub handler {
'
'.&mt('Title').' | '.
''.&mt('Status').' | '.
''.&mt('Last Modified').
- ' | ');
+ ''."\n");
my $filename;
my $dirptr=16384; # Mask indicating a directory in stat.cmode.
@@ -146,8 +148,8 @@ sub getEffectiveUrl {
my $r = shift;
my $fn;
- if ($ENV{'form.filename'}) { # If a form filename is defined.
- $fn=$ENV{'form.filename'};
+ if ($env{'form.filename'}) { # If a form filename is defined.
+ $fn=$env{'form.filename'};
#
# Replace the ~username of the URL with /home/username/public_html
# so that we don't have to worry about ~ expansion internally.
@@ -189,43 +191,40 @@ sub startpage {
my $currdir = '/priv/'.$uname.$thisdisfn;
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
-
- $r->print('LON-CAPA Construction Space');
+ my $html=&Apache::lonxml::xmlbegin();
+ $r->print($html.'LON-CAPA Construction Space');
my $pagetitle;
- my $formaction='/priv/'.$uname.'/'.$thisdisfn.'/';
+ my $formaction='/priv/'.$uname.$thisdisfn.'/';
$formaction=~s/\/+/\//g;
$pagetitle .= &Apache::loncommon::help_open_menu('','','','',3,'Authoring').
- 'Construction Space: '.
+ 'Construction Space: '.
'';
&Apache::lonhtmlcommon::store_recent('construct',$formaction,$formaction);
- if ($ENV{'environment.remote'} eq 'off') {
- $ENV{'request.noversionuri'}=$currdir;
+ if ($env{'environment.remote'} eq 'off') {
+ $env{'request.noversionuri'}=$currdir.'/';
$r->print(&Apache::loncommon::bodytag('Construction Space',undef,undef,undef,undef,undef,$pagetitle));
} else {
$r->print($pagetitle);
}
my $pubdirscript=(<
+
ENDPUBDIRSCRIPT
$r->print($pubdirscript);
- if (($uname ne $ENV{'user.name'}) || ($udom ne $ENV{'user.domain'})) {
+ if ((($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) &&
+ $env{'environment.remote'} ne 'off') {
$r->print(''.&mt('Co-Author').': '.$uname.' at '.$udom.
'
');
}
@@ -367,68 +319,106 @@ ENDPUBDIRSCRIPT
sub dircontrols {
my ($r,$uname,$udom,$thisdisfn) = @_;
+ my %lt=&Apache::lonlocal::texthash(
+ cnpd => 'Cannot publish directory',
+ cnrd => 'Cannot retrieve directory',
+ mcdi => 'Must create new subdirectory inside a directory',
+ pubr => 'Publish this Resource',
+ pubd => 'Publish this Directory',
+ rtrv => 'Retrieve Old Version',
+ pubs => 'Publish with Subdirectories',
+ list => 'List Directory',
+ uplo => 'Upload file',
+ dele => 'Delete',
+ edit => 'Edit Catalog Information',
+ sela => 'Select Action',
+ nfil => 'New file',
+ nhtm => 'New HTML file',
+ nprb => 'New problem',
+ npag => 'New assembled page',
+ nseq => 'New assembled sequence',
+ ncrf => 'New custom rights file',
+ nsty => 'New style file',
+ nlib => 'New library file',
+ nsub => 'New subdirectory',
+ renm => 'Rename current file to',
+ move => 'Move current file to',
+ copy => 'Copy current file to',
+ type => 'Type Name Here',
+ go => 'Go',
+ prnt => 'Print contents of directory',
+ crea => 'Create a new directory or LON-CAPA document',
+ acti => 'Actions for current directory',
+ updc => 'Upload a new document'
+ );
$r->print(<
- Actions for current directory |
- Upload a new document |
- Create a new directory or LON-CAPA document |
+ $lt{'acti'} |
+ $lt{'updc'} |
+ $lt{'crea'} |
|
|
|
-
-
END
}
+sub pubbuttons {
+ my ($r,$uname,$thisdisfn) = @_;
+ $r->print('');
+}
+
sub resourceactions {
my ($r,$uname,$udom,$thisdisfn) = @_;
$r->print(<
+
END
}
@@ -511,6 +501,8 @@ sub putdirectory {
%Apache::lonpublisher::metadatakeys=();
my $construct=$here;
$construct=~s:^/priv/(\w+)$:/home/$1/public_html:;
+ my $dirpath = $here;
+ $dirpath=~s:^/priv/:/~:;
&Apache::lonpublisher::metaeval(&Apache::lonnet::getfile(
$construct.'/'.$dirname.'/default.meta'
));
@@ -521,28 +513,25 @@ sub putdirectory {
$actionitem =
'';
$$numdir ++;
}
$r->print(''.
' | '.
+ $Apache::lonnet::perlvar{'lonIconsURL'}.'/folder_closed.gif" alt="folder" />'.
''.$actionitem.' | '.
- ''.
+ ' | '.
$disfilename.' | '.
''.($kaputt?&Apache::lonhtmlcommon::authorbombs($resdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'}.' '.
$Apache::lonpublisher::metadatafields{'subject'}.' '.
@@ -559,6 +548,7 @@ sub putresource {
my ($r, $udom, $uname, $filename, $thisdisfn,
$resdir, $targetdir, $linkdir,
$cmtime,$bombs,$numres) = @_;
+ &Apache::lonnet::devalidate_cache_new('meta',$targetdir.'/'.$filename);
my $pubstatus = 'unpublished';
my $status=&mt('Unpublished');
my $bgcolor='#FFAA99';
@@ -589,7 +579,7 @@ sub putresource {
# $action_buttons='';
# }
$title=''.
+ '.meta" target="cat">'.
&getTitleString($targetdir.'/'.$filename).'';
} else {
$pubstatus = 'modified';
@@ -598,17 +588,17 @@ sub putresource {
&mt(&getSourceRightString($targetdir.'/'.$filename));
$bgcolor='#FFFF77';
# $action_buttons='';
- $title=''.
+ $title=''.
&getTitleString($targetdir.'/'.$filename).'';
if (&Apache::loncommon::fileembstyle(($filename=~/\.(\w+)$/)) eq 'ssi') {
$status.=' '.&mt('Diffs').'';
+ '&versiontwo=priv" target="cat">'.&mt('Diffs').'';
}
}
- $title.=' '.
- ($$bombs{$targetdir.'/'.$filename}?'':'Edit Metadata').'';
- $status.=' '.
+ ($$bombs{$targetdir.'/'.$filename}?'':'Edit Metadata').'';
+ $status.="\n".' '.&mt('Retrieve').'';
}
my $editlink='';
@@ -620,6 +610,10 @@ sub putresource {
$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').')';
+ }
if ($filename=~/\.(zip|tar|bz2|gz|tar.gz|tar.bz2|tgz)$/) {
$editlink=' ('.&mt('Decompress').')';
@@ -628,7 +622,7 @@ sub putresource {
&create_pubselect($r,\$pub_select,$udom,$uname,$thisdisfn,$filename,$resdir,$pubstatus,$publish_button,$numres);
$r->print(' |
'.
''.($filename=~/[\#\~]$/?' ':
- ' | ').
+ '').''.
''.$pub_select.' | '.
''.
''.
@@ -645,32 +639,31 @@ sub create_pubselect {
my ($r,$pub_select,$udom,$uname,$thisdisfn,$filename,$resdir,$pubstatus,$publish_button,$numres) = @_;
$$pub_select = '
';
+ &HTML::Entities::encode($uname.$thisdisfn.'/'.$filename,'<>&"').'" />';
$$numres ++;
}
|