Diff for /loncom/publisher/lonpubdir.pm between versions 1.144 and 1.151

version 1.144, 2012/10/29 17:38:55 version 1.151, 2014/04/06 19:39:04
Line 1 Line 1
 # The LearningOnline Network with CAPA  # The LearningOnline Network with CAPA
 # Construction Space Directory Lister  # Authoring Space Directory Lister
 #  #
 # $Id$  # $Id$
 #  #
Line 46  sub handler { Line 46  sub handler {
   
   my $r=shift;    my $r=shift;
   
   # Validate access to the construction space and get username@domain.    # Validate access to the construction space and get username:domain.
   
   my $uname;    my $uname;
   my $udom;    my $udom;
Line 79  sub handler { Line 79  sub handler {
   my $numdir = 0;    my $numdir = 0;
   my $numres = 0;    my $numres = 0;
       
     # Retrieving value for sortby from QUERY_STRING
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['sortby']);
   
     # Default sort by 'Name'
     if (! exists($env{'form.sortby'})) {
       $env{'form.sortby'} = 'filename';
     }
   
   # Start off the directory table.    # Start off the directory table.
   $r->print(&Apache::loncommon::start_data_table()    $r->print(&Apache::loncommon::start_data_table()
            .&Apache::loncommon::start_data_table_header_row()             .&Apache::loncommon::start_data_table_header_row()
            .'<th>'.&mt('Type').'</th>'             .'<th>'.&mt('Type').'</th>'
            .'<th>'.&mt('Actions').'</th>'             .'<th>'.&mt('Actions').'</th>'
            .'<th>'.&mt('Name').'</th>'             .'<th><a href="'.$linkdir.'/?sortby=filename">'.&mt('Name').'<span class="LC_fontsize_small"> &#9660;</span></a></th>'
            .'<th>'.&mt('Title').'</th>'             .'<th>'.&mt('Title').'</th>'
            .'<th colspan="2">'.&mt('Status').'</th>'             .'<th colspan="2">'.&mt('Status').'</th>'
            .'<th>'.&mt('Last Modified').'</th>'             .'<th><a href="'.$linkdir.'/?sortby=cmtime">'.&mt('Last Modified').'<span class="LC_fontsize_small"> &#9660;</span></a></th>'
            .&Apache::loncommon::end_data_table_header_row()             .&Apache::loncommon::end_data_table_header_row()
   );    );
   
Line 95  sub handler { Line 103  sub handler {
   my $dirptr=16384; # Mask indicating a directory in stat.cmode.    my $dirptr=16384; # Mask indicating a directory in stat.cmode.
   
   opendir(DIR,$fn);    opendir(DIR,$fn);
     my $filehash = {};
     my $sortby = $env{'form.sortby'};
   my @files=sort {uc($a) cmp uc($b)} (readdir(DIR));    my @files=sort {uc($a) cmp uc($b)} (readdir(DIR));
   foreach my $filename (@files) {    foreach my $filename (@files) {
      my ($cdev,$cino,$cmode,$cnlink,       next if ($filename eq '.DS_Store');
          $cuid,$cgid,$crdev,$csize,       my ($cmode,$cmtime)=(stat($fn.'/'.$filename))[2,9];
          $catime,$cmtime,$cctime,       # If you want to sort by "last modified", we need to make this hash.
          $cblksize,$cblocks)=stat($fn.'/'.$filename);       if ($sortby eq 'cmtime') {
          $filehash->{ $filename } = {"cmtime" => $cmtime,};
      my $extension='';  
      if ($filename=~/\.(\w+)$/) { $extension=$1; }  
      if ($cmode&$dirptr) {  
  &putdirectory($r, $thisdisfn, $linkdir, $filename, $cmtime,$targetdir,\%bombs,\$numdir);  
      } elsif (&Apache::loncommon::fileembstyle($extension) ne 'hdn') {  
  &putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir,   
      $targetdir, $linkdir, $cmtime,\%bombs,\$numres);  
      } else {  
  # "hidden" extension and not a directory, so hide it away.  
      }       }
   }       # Otherwise sort by name.  Don't bother with filehash.  Continue printing contents.
        else {
            my $extension='';
            if ($filename=~/\.(\w+)$/) { $extension=$1; }
            if ($cmode&$dirptr) {
                &putdirectory($r, $thisdisfn, $linkdir, $filename, $cmtime,$targetdir,\%bombs,\$numdir);
            } elsif (&Apache::loncommon::fileembstyle($extension) ne 'hdn') {
                &putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir, 
                            $targetdir, $linkdir, $cmtime,\%bombs,\$numres);
            } else {
               # "hidden" extension and not a directory, so hide it away.
            }
        }
     };
   
     # Sorting files by "last modified" if that's what you selected   
     if ($sortby eq 'cmtime') {
         my @sorted_files = sort {
           $filehash->{$b}->{$sortby} <=> $filehash->{$a}->{$sortby}
           } (keys(%{$filehash}));
         foreach my $filename (@sorted_files) {
            my ($cmode,$cmtime)=(stat($fn.'/'.$filename))[2,9];
            my $extension='';
            if ($filename=~/\.(\w+)$/) { $extension=$1; }
            if ($cmode&$dirptr) {
                &putdirectory($r, $thisdisfn, $linkdir, $filename, $cmtime,$targetdir,\%bombs,\$numdir);
            } elsif (&Apache::loncommon::fileembstyle($extension) ne 'hdn') {
                &putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir, 
                            $targetdir, $linkdir, $cmtime,\%bombs,\$numres);
            } else {
               # "hidden" extension and not a directory, so hide it away.
            };
         };
     };
     
   closedir(DIR);    closedir(DIR);
   
   $r->print(&Apache::loncommon::end_data_table()    $r->print(&Apache::loncommon::end_data_table()
Line 143  sub startpage { Line 178  sub startpage {
   
     &Apache::lonhtmlcommon::clear_breadcrumbs();      &Apache::lonhtmlcommon::clear_breadcrumbs();
     &Apache::lonhtmlcommon::add_breadcrumb({      &Apache::lonhtmlcommon::add_breadcrumb({
         'text'  => 'Construction Space',          'text'  => 'Authoring Space',
         'href'  => &Apache::loncommon::authorspace($formaction),          'href'  => &Apache::loncommon::authorspace($formaction),
     });      });
     # breadcrumbs (and tools) will be created       # breadcrumbs (and tools) will be created 
     # in start_page->bodytag->innerregister      # in start_page->bodytag->innerregister
   
     $env{'request.noversionuri'}=$formaction;      $env{'request.noversionuri'}=$formaction;
     $r->print(&Apache::loncommon::start_page('Construction Space',undef));      $r->print(&Apache::loncommon::start_page('Authoring Space',undef));
   
       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
   
     $r->print(&Apache::loncommon::head_subbox(      $r->print(&Apache::loncommon::head_subbox(
                 &Apache::loncommon::CSTR_pageheader()));                       '<div style="float:right;padding-top:0;margin-top;0">'
                       .&Apache::lonhtmlcommon::display_usage($current_disk_usage,$disk_quota)
                       .'</div>'
                       .&Apache::loncommon::CSTR_pageheader()));
   
     my $esc_thisdisfn = &Apache::loncommon::escape_single($thisdisfn);      my $esc_thisdisfn = &Apache::loncommon::escape_single($thisdisfn);
     my $doctitle = 'LON-CAPA '.&mt('Construction Space');      my $doctitle = 'LON-CAPA '.&mt('Authoring Space');
     my $newname = &mt('New Name');      my $newname = &mt('New Name');
     my $pubdirscript=(<<ENDPUBDIRSCRIPT);      my $pubdirscript=(<<ENDPUBDIRSCRIPT);
 <script type="text/javascript">  <script type="text/javascript">
Line 616  sub putresource { Line 659  sub putresource {
     my $editlink='';      my $editlink='';
     my $editlink2='';      my $editlink2='';
     if ($filename=~/\.(xml|html|htm|xhtml|xhtm|sty)$/) {      if ($filename=~/\.(xml|html|htm|xhtml|xhtm|sty)$/) {
  $editlink=' <br />(<a href="'.$linkdir.'/'.$filename.'?editmode=Edit&problemmode=edit">'.&mt('Edit').'</a>)';   $editlink=' <br />(<a href="'.$linkdir.'/'.$filename.'?editmode=Edit&amp;problemmode=edit">'.&mt('Edit').'</a>)';
     }      }
     if ($filename=~/$LONCAPA::assess_re/) {      if ($filename=~/$LONCAPA::assess_re/) {
  $editlink=' (<a href="'.$linkdir.'/'.$filename.'?editmode=Edit&problemmode=editxml">'.&mt('EditXML').'</a>)';   $editlink=' (<a href="'.$linkdir.'/'.$filename.'?editmode=Edit&amp;problemmode=editxml">'.&mt('EditXML').'</a>)';
  $editlink2=' <br />(<a href="'.$linkdir.'/'.$filename.'?editmode=Edit&problemmode=edit">'.&mt('Edit').'</a>)';   $editlink2=' <br />(<a href="'.$linkdir.'/'.$filename.'?editmode=Edit&amp;problemmode=edit">'.&mt('Edit').'</a>)';
     }      }
     if ($filename=~/\.(problem|exam|quiz|assess|survey|form|library|xml|html|htm|xhtml|xhtm|sty)$/) {      if ($filename=~/\.(problem|exam|quiz|assess|survey|form|library|xml|html|htm|xhtml|xhtm|sty)$/) {
  $editlink.=' (<a href="/adm/cleanup?filename='.$linkfilename.'" target="_parent">'.&mt('Clean Up').')</a>';   $editlink.=' (<a href="/adm/cleanup?filename='.$linkfilename.'" target="_parent">'.&mt('Clean Up').')</a>';
Line 706  __END__ Line 749  __END__
   
 =head1 NAME  =head1 NAME
   
 Apache::lonpubdir - Construction space directory lister  Apache::lonpubdir - Authoring space directory lister
   
 =head1 SYNOPSIS  =head1 SYNOPSIS
   

Removed from v.1.144  
changed lines
  Added in v.1.151


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>