Diff for /loncom/publisher/lonpubdir.pm between versions 1.129 and 1.134

version 1.129, 2011/10/21 22:33:14 version 1.134, 2011/10/30 20:28:02
Line 138  sub startpage { Line 138  sub startpage {
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
   
     my $formaction='/priv/'.$uname.$thisdisfn.'/';      my $formaction='/priv'.$thisdisfn.'/';
     $formaction=~s|/+|/|g;      $formaction=~s|/+|/|g;
     &Apache::lonhtmlcommon::store_recent('construct',$formaction,$formaction);      &Apache::lonhtmlcommon::store_recent('construct',$formaction,$formaction);
   
Line 150  sub startpage { Line 150  sub startpage {
     # 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'}='/priv/'.$udom.'/'.$uname.$thisdisfn.'/';      $env{'request.noversionuri'}=$formaction;
     $r->print(&Apache::loncommon::start_page('Construction Space',undef));      $r->print(&Apache::loncommon::start_page('Construction Space',undef));
   
     $r->print(&Apache::loncommon::head_subbox(      $r->print(&Apache::loncommon::head_subbox(
Line 164  sub startpage { Line 164  sub startpage {
 top.document.title = '$esc_thisdisfn/ - $doctitle';  top.document.title = '$esc_thisdisfn/ - $doctitle';
 // Store directory location for menu bar to find  // Store directory location for menu bar to find
   
 parent.lastknownpriv='/priv/$udom/$uname$esc_thisdisfn/';  parent.lastknownpriv='/priv$esc_thisdisfn/';
   
 // Confirmation dialogues  // Confirmation dialogues
   
Line 319  sub dircontrols { Line 319  sub dircontrols {
             <option value="printdir">$lt{'prnt'}</option>              <option value="printdir">$lt{'prnt'}</option>
             <option value="delete">$lt{'dedr'}</option>              <option value="delete">$lt{'dedr'}</option>
         </select>          </select>
         <input type="hidden" name="filename" value="/priv/$udom/$uname$thisdisfn/" />          <input type="hidden" name="filename" value="/priv$thisdisfn/" />
       </fieldset>        </fieldset>
     </form>      </form>
     <form name="publishdir" method="post" action="/adm/publish" target="_parent">      <form name="publishdir" method="post" action="/adm/publish" target="_parent">
Line 335  sub dircontrols { Line 335  sub dircontrols {
     <form name="upublisher" enctype="multipart/form-data" method="post" action="/adm/upload" target="_parent">      <form name="upublisher" enctype="multipart/form-data" method="post" action="/adm/upload" target="_parent">
       <fieldset>        <fieldset>
         <legend>$lt{'updc'}</legend>          <legend>$lt{'updc'}</legend>
         <input type="hidden" name="filename" value="/priv/$udom/$uname$thisdisfn/" />          <input type="hidden" name="filename" value="/priv$thisdisfn/" />
         <input type="file" name="upfile" size="20" />          <input type="file" name="upfile" size="20" />
         <input type="button" value="$lt{'uplo'}"  onclick="checkUpload(this.form)" />          <input type="button" value="$lt{'uplo'}"  onclick="checkUpload(this.form)" />
       </fieldset>        </fieldset>
Line 347  sub dircontrols { Line 347  sub dircontrols {
       <fieldset>        <fieldset>
               <legend>$lt{'crea'}</legend>                <legend>$lt{'crea'}</legend>
       <span class="LC_nobreak">        <span class="LC_nobreak">
  <input type="hidden" name="filename" value="/priv/$udom/$uname$thisdisfn/" />   <input type="hidden" name="filename" value="/priv$thisdisfn/" />
                   <script type="text/javascript">                    <script type="text/javascript">
                     function validate_go() {                      function validate_go() {
                         var selected = document.fileaction.action.selectedIndex;                          var selected = document.fileaction.action.selectedIndex;
Line 437  sub getSourceRightString { Line 437  sub getSourceRightString {
 }  }
 #  #
 #  Put out a directory table row:  #  Put out a directory table row:
 #    putdirectory(r, base, here, dirname, modtime)  #    putdirectory(r, base, here, dirname, modtime, targetdir, bombs, numdir)
 #      r       - Apache request object.  #      r         - Apache request object.
 #      reqfile - File in request.  #      reqfile   - File in request.
 #      here    - Where we are in directory tree.  #      here      - Where we are in directory tree.
 #      dirname - Name of directory special file.  #      dirname   - Name of directory special file.
 #      modtime - Encoded modification time.  #      modtime   - Encoded modification time.
 #   #      targetdir - Publication target directory.
   #      bombs     - Reference to hash of URLs with runtime error messages.
   #      numdir    - Reference to scalar used to track number of sub-directories
   #                  in directory (used in form name for each "actions" dropdown).
   #
 sub putdirectory {  sub putdirectory {
     my ($r, $reqfile, $here, $dirname, $modtime, $resdir, $bombs, $numdir) = @_;      my ($r, $reqfile, $here, $dirname, $modtime, $targetdir, $bombs, $numdir) = @_;
   
 #&Apache::lonnet::logthis("reqfile $reqfile here $here dirname $dirname resdir $resdir");  
   
   
 # construct the display filename: the directory name unless ..:  # construct the display filename: the directory name unless ..:
          
       my $actionitem;
    
     my $disfilename = $dirname;      my $disfilename = $dirname;
     if ($dirname eq '..') {  # Don't display directory itself, and there is no way up from root directory
  $disfilename = '<i>'.&mt('Parent Directory').'</i>';      unless ((($dirname eq '..') && ($reqfile=~/^\/[^\/]+\/[^\/]+$/)) || ($dirname eq '.')) {
     }  
     unless ( (($dirname eq '..') && ($reqfile eq '')) || ($dirname eq '.')) {  
  my $kaputt=0;   my $kaputt=0;
  foreach (keys %{$bombs}) {          if (ref($bombs) eq 'HASH') {
     if ($_=~m:^\Q$resdir\E/\Q$disfilename\E/:) { $kaputt=1; last; }      foreach my $key (keys(%{$bombs})) {
  }          if ($key =~ m{^\Q$targetdir/$disfilename\E/}) { $kaputt=1; last; }
       }
           }
 #  #
 # Get the metadata from that directory's default.meta to display titles  # Get the metadata from that directory's default.meta to display titles
 #  #
Line 469  sub putdirectory { Line 472  sub putdirectory {
  &Apache::lonpublisher::metaeval(   &Apache::lonpublisher::metaeval(
                  &Apache::lonnet::getfile($r->dir_config('lonDocRoot').$here.'/'.$dirname.'/default.meta')                   &Apache::lonnet::getfile($r->dir_config('lonDocRoot').$here.'/'.$dirname.'/default.meta')
                                        );                                         );
 #          if ($dirname eq '..') {
         my $actionitem = '';  
         if ($here eq '..') {  
             $actionitem = &mt('Go to ...');              $actionitem = &mt('Go to ...');
               $disfilename = '<i>'.&mt('Parent Directory').'</i>';
         } else {          } else {
             $actionitem =               $actionitem = 
                     '<form name="dirselect_'.$$numdir.                      '<form name="dirselect_'.$$numdir.
Line 497  sub putdirectory { Line 499  sub putdirectory {
   '<td>'.$actionitem.'</td>'.    '<td>'.$actionitem.'</td>'.
   '<td><span class="LC_filename"><a href="'.&HTML::Entities::encode($here.'/'.$dirname,'<>&"').'/" target="_parent">'.    '<td><span class="LC_filename"><a href="'.&HTML::Entities::encode($here.'/'.$dirname,'<>&"').'/" target="_parent">'.
   $disfilename.'</a></span></td>'.    $disfilename.'</a></span></td>'.
         '<td colspan="3">'.($kaputt?&Apache::lonhtmlcommon::authorbombs($resdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'});          '<td colspan="3">'.($kaputt?&Apache::lonhtmlcommon::authorbombs($targetdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'});
  if ($Apache::lonpublisher::metadatafields{'subject'} ne '') {   if ($Apache::lonpublisher::metadatafields{'subject'} ne '') {
     $r->print(' <i>'.      $r->print(' <i>'.
       $Apache::lonpublisher::metadatafields{'subject'}.        $Apache::lonpublisher::metadatafields{'subject'}.
Line 523  sub putresource { Line 525  sub putresource {
     my $title='&nbsp;';      my $title='&nbsp;';
     my $publish_button=&mt('Publish');      my $publish_button=&mt('Publish');
     my $cstr_dir = $r->dir_config('lonDocRoot').'/priv/'.$udom.'/'.$uname.'/'.$thisdisfn.'/';      my $cstr_dir = $r->dir_config('lonDocRoot').'/priv/'.$udom.'/'.$uname.'/'.$thisdisfn.'/';
     my $linkfilename='/priv'.$thisdisfn.'/'.$filename;      my $linkfilename=&HTML::Entities::encode('/priv'.$thisdisfn.'/'.$filename,'<>&"');
   
     if (-e $resdir.'/'.$filename) {      if (-e $resdir.'/'.$filename) {
         my $same=0;          my $same=0;
Line 561  sub putresource { Line 563  sub putresource {
         $rights_status .=          $rights_status .=
             $lt_SourceRight{&getSourceRightString($targetdir.'/'.$filename)};              $lt_SourceRight{&getSourceRightString($targetdir.'/'.$filename)};
   
  $title = '<a href="/res/'.$targetdir.'/'.$filename.   $title = '<a href="'.$targetdir.'/'.$filename.
     '.meta" target="cat">'.      '.meta" target="cat">'.
     &getTitleString($targetdir.'/'.$filename).'</a>';      &getTitleString($targetdir.'/'.$filename).'</a>';
  if ($same) {   if ($same) {
Line 659  sub create_pubselect { Line 661  sub create_pubselect {
 '<option value="cleanup">'.&mt('Clean up').'</option>'.  '<option value="cleanup">'.&mt('Clean up').'</option>'.
 '<option value="print">'.&mt('Print').'</option>'.  '<option value="print">'.&mt('Print').'</option>'.
 '</select>  '</select>
 <input type="hidden" name="filename" value="/~'.  <input type="hidden" name="filename" value="/priv'.
  &HTML::Entities::encode($uname.$thisdisfn.'/'.$filename,'<>&"').'" />   &HTML::Entities::encode($thisdisfn.'/'.$filename,'<>&"').'" />
  <input type="hidden" name="dispfilename" value="'.   <input type="hidden" name="dispfilename" value="'.
  &HTML::Entities::encode($filename).'" /></form>';   &HTML::Entities::encode($filename).'" /></form>';
     $$numres ++;      $$numres ++;
Line 697  Apache::lonpubdir - Construction space d Line 699  Apache::lonpubdir - Construction space d
   
 Invoked (for various locations) by /etc/httpd/conf/srm.conf:  Invoked (for various locations) by /etc/httpd/conf/srm.conf:
   
  <LocationMatch "^/\~.*/$">   <LocationMatch "^/+priv.*/$">
  PerlAccessHandler       Apache::loncacc   PerlAccessHandler       Apache::loncacc
  SetHandler perl-script   SetHandler perl-script
  PerlHandler Apache::lonpubdir   PerlHandler Apache::lonpubdir
Line 770  Output the header of the page.  This inc Line 772  Output the header of the page.  This inc
     $str = getTitleString($fullname);      $str = getTitleString($fullname);
         $fullname - Fully qualified filename to check.          $fullname - Fully qualified filename to check.
   
 =item putdirectory(r, base, here, dirname, modtime)  =item putdirectory($r, $base, $here, $dirname, $modtime, $targetdir, $bombs,
                      $numdir)
   
     Put out a directory table row:      Put out a directory table row:
           
     putdirectory($r, $base, $here, $dirname, $modtime)          $r        - Apache request object.
         $r       - Apache request object.          $reqfile  - File in request.
         $reqfile - File in request.          $here     - Where we are in directory tree.
         $here    - Where we are in directory tree.          $dirname  - Name of directory special file.
         $dirname - Name of directory special file.          $modtime  - Encoded modification time.
         $modtime - Encoded modification time.          targetdir - Publication target directory.
           bombs     - Reference to hash of URLs with runtime error messages.
           numdir    - Reference to scalar used to track number of sub-directories
                       in directory (used in form name for each "actions" dropdown).
   
 =back  =back
   

Removed from v.1.129  
changed lines
  Added in v.1.134


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