--- loncom/publisher/lonpubdir.pm 2014/04/21 21:26:41 1.152 +++ loncom/publisher/lonpubdir.pm 2014/05/31 13:55:17 1.154 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Authoring Space Directory Lister # -# $Id: lonpubdir.pm,v 1.152 2014/04/21 21:26:41 musolffc Exp $ +# $Id: lonpubdir.pm,v 1.154 2014/05/31 13:55:17 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -40,7 +40,7 @@ use Apache::lonlocal; use Apache::lonmsg; use Apache::lonmenu; use Apache::lonnet; -use LONCAPA; +use LONCAPA qw(:DEFAULT :match); sub handler { @@ -48,10 +48,7 @@ sub handler { # Validate access to the construction space and get username:domain. - my $uname; - my $udom; - - ($uname,$udom)=&Apache::lonnet::constructaccess($r->uri); + my ($uname,$udom)=&Apache::lonnet::constructaccess($r->uri); unless (($uname) && ($udom)) { return HTTP_NOT_ACCEPTABLE; } @@ -90,6 +87,16 @@ sub handler { my $sortby = $env{'form.sortby'}; my $sortorder = $env{'form.sortorder'}; + opendir(DIR,$fn); + my @files = readdir(DIR); + closedir(DIR); + + if ((@files == 0) && ($thisdisfn =~ m{^/$match_domain/$match_username})) { + $r->print('

'.&mt('This Authoring Space is currently empty.').'

'); + $r->print(&Apache::loncommon::end_page()); + return OK; + } + # Start off the directory table. $r->print(&Apache::loncommon::start_data_table() .&Apache::loncommon::start_data_table_header_row() @@ -122,10 +129,7 @@ sub handler { ); my $dirptr=16384; # Mask indicating a directory in stat.cmode. - - opendir(DIR,$fn); my $filehash = {}; - my @files= readdir(DIR); foreach my $filename (@files) { # Skip .DS_Store and hidden files my ($extension) = ($filename=~/\.(\w+)$/); @@ -224,12 +228,10 @@ sub handler { } } - closedir(DIR); - $r->print( &Apache::loncommon::end_data_table() .&Apache::loncommon::end_page() ); - return OK; + return OK; } @@ -262,12 +264,12 @@ sub startpage { # in start_page->bodytag->innerregister $env{'request.noversionuri'}=$formaction; - $r->print(&Apache::loncommon::start_page('Authoring Space',undef)); + $r->print(&Apache::loncommon::start_page('Authoring Space')); my $londocroot = $Apache::lonnet::perlvar{'lonDocRoot'}; my $current_disk_usage = &Apache::lonnet::diskusage($udom,$uname,"$londocroot/priv/$udom/$uname"); - my $disk_quota = &Apache::loncommon::get_user_quota($uname,$udom,'author'); #expressed in Mb - $disk_quota = 1000 * $disk_quota; # convert from Mb to kb + my $disk_quota = &Apache::loncommon::get_user_quota($uname,$udom,'author'); #expressed in MB + $disk_quota = 1000 * $disk_quota; # convert from MB to kB $r->print(&Apache::loncommon::head_subbox( '
' @@ -630,7 +632,7 @@ sub putdirectory { ''. "\n"); } - return OK; + return; } sub getTitle { @@ -776,10 +778,10 @@ sub putresource { '  '. # Display publication status ''.$status.''. ''.&Apache::lonlocal::locallocaltime($cmtime).''. - ''.sprintf "%.1f", $size.''. + ''.sprintf("%.1f",$size).''. &Apache::loncommon::end_data_table_row() ); - return OK; + return; } sub create_pubselect { @@ -832,6 +834,7 @@ sub check_for_versions { $versions ++; } } + closedir(DIR); return $versions; }