--- loncom/publisher/lonpubdir.pm 2008/11/10 13:43:51 1.111 +++ loncom/publisher/lonpubdir.pm 2008/12/19 03:54:19 1.118 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Construction Space Directory Lister # -# $Id: lonpubdir.pm,v 1.111 2008/11/10 13:43:51 jms Exp $ +# $Id: lonpubdir.pm,v 1.118 2008/12/19 03:54:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -27,118 +27,6 @@ # ### -=head1 NAME - -Apache::lonpubdir - Construction space directory lister - -=head1 SYNOPSIS - -Invoked (for various locations) by /etc/httpd/conf/srm.conf: - - - PerlAccessHandler Apache::loncacc - SetHandler perl-script - PerlHandler Apache::lonpubdir - ErrorDocument 403 /adm/login - ErrorDocument 404 /adm/notfound.html - ErrorDocument 406 /adm/unauthorized.html - ErrorDocument 500 /adm/errorhandler - - - - PerlAccessHandler Apache::lonacc - SetHandler perl-script - PerlHandler Apache::lonpubdir - ErrorDocument 403 /adm/login - ErrorDocument 404 /adm/notfound.html - ErrorDocument 406 /adm/unauthorized.html - ErrorDocument 500 /adm/errorhandler - - -=head1 INTRODUCTION - -This module publishes a directory of files. - -This is part of the LearningOnline Network with CAPA project -described at http://www.lon-capa.org. - -=head1 HANDLER SUBROUTINE - -This routine is called by Apache and mod_perl. - -=over 4 - -=item * - -read in information - -=item * - -start page output - -=item * - -run through list of files and attempt to publish unhidden files - -=back - -=head2 subroutines: - -=head3 startpage($r, $uame, $udom, $thisdisfn) - -Output the header of the page. This includes: - - The HTML header - - The H1/H3 stuff which includes the directory. - - startpage($r, $uame, $udom, $thisdisfn); - $r - The apache request object. - $uname - User name. - $udom - Domain name the user is logged in under. - $thisdisfn - Displayable version of the filename. - -=head3 getTitleString($fullname) - - Get the title string or "[untitled]" if the file has no title metadata: - Without the latter substitution, it's impossible to examine metadata for - untitled resources. Resources may be legitimately untitled, to prevent - searches from locating them. - - $str = getTitleString($fullname); - $fullname - Fully qualified filename to check. - -=head3 putdirectory(r, base, here, dirname, modtime) - - 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. - -=head3 CategorizeFiles($location, $files) - - Categorize files in the directory. - For each file in a list of files in a file directory, - the file categorized as one of: - - directory - - sequence - - problem - - Other resource. - - For each file the modification date is determined as well. - Returned is a list of sublists: - (directories, sequences, problems, other) - each of the sublists contains entries of the following form (sorted by filename): - (filename, typecode, lastmodtime) - - $list = CategorizeFiles($location, $files) - $location - Directory in which the files live (relative to our execution) - $files - list of files. - -=cut - package Apache::lonpubdir; use strict; @@ -217,15 +105,16 @@ sub handler { my $numres = 0; # Start off the directory table. - $r->print('

'.&mt('Directory Contents:').'

'); - $r->print(''. - ''. - ''. - ''. - ''. - ''. - ''."\n"); + $r->print(&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .'' + .'' + .'' + .'' + .'' + .'' + .&Apache::loncommon::end_data_table_header_row() + ); my $filename; my $dirptr=16384; # Mask indicating a directory in stat.cmode. @@ -251,7 +140,9 @@ sub handler { } closedir(DIR); - $r->print('
'.&mt('Type').''.&mt('Actions').''.&mt('Name').''.&mt('Title').''.&mt('Status').''.&mt('Last Modified'). - '
'.&mt('Type').''.&mt('Actions').''.&mt('Name').''.&mt('Title').''.&mt('Status').''.&mt('Last Modified').'
'.&Apache::loncommon::end_page()); + $r->print(&Apache::loncommon::end_data_table() + .&Apache::loncommon::end_page() + ); return OK; } # @@ -268,7 +159,7 @@ sub getEffectiveUrl { # Replace the ~username of the URL with /home/username/public_html # so that we don't have to worry about ~ expansion internally. # - $fn=~s/^http\:\/\/[^\/]+\///; + $fn=~s/^https?\:\/\/[^\/]+\///; $fn=~s/^\///; $fn=~s{~($LONCAPA::username_re)}{/home/$1/public_html}; @@ -345,7 +236,7 @@ parent.lastknownpriv='/~$uname$esc_thisd document.publishdir.filename.value = theform.filename.value; document.publishdir.submit(); } - if (theform.dirtask.options[theform.dirtask.selectedIndex].value == 'editcat') { + if (theform.dirtask.options[theform.dirtask.selectedIndex].value == 'editmeta') { top.location=theform.filename.value+'default.meta' } if (theform.dirtask.options[theform.dirtask.selectedIndex].value == 'printdir' ) { @@ -375,7 +266,7 @@ parent.lastknownpriv='/~$uname$esc_thisd if (theform.diraction.options[theform.diraction.selectedIndex].value == "publish") { theform.submit(); } - if (theform.diraction.options[theform.diraction.selectedIndex].value == "editcat") { + if (theform.diraction.options[theform.diraction.selectedIndex].value == "editmeta") { top.location=theform.filename.value+'default.meta' } if (theform.diraction.options[theform.diraction.selectedIndex].value == "printdir") { @@ -460,7 +351,7 @@ sub dircontrols { list => 'List Directory', uplo => 'Upload file', dele => 'Delete', - edit => 'Edit Catalog Information', + edit => 'Edit Metadata', sela => 'Select Action', nfil => 'New file', nhtm => 'New HTML file', @@ -485,42 +376,46 @@ sub dircontrols { ); my $mytype = $lt{'type'}; # avoid conflict with " and ' in javascript $r->print(< - - $lt{'acti'} - $lt{'updc'} - $lt{'crea'} - - - -
- - + - - -
-
- - -
-
- -
- - -
- - - -
- - -
- + + + + +
+ + +
+
+ +
+ + +
+
+
+ $lt{'updc'} + + + +
+
+
+ +
+
+
+ $lt{'crea'} +