Diff for /loncom/publisher/lonpubdir.pm between versions 1.27 and 1.34

version 1.27, 2002/10/19 06:34:15 version 1.34, 2003/06/18 14:58:39
Line 1 Line 1
 # The LearningOnline Network with CAPA  # The LearningOnline Network with CAPA
 # (Publication Handler  # Construction Space Directory Lister
 #  #
 # $Id$  # $Id$
 #  #
Line 36 Line 36
 # 03/23 Guy Albertelli  # 03/23 Guy Albertelli
 # 03/24,03/29 Gerd Kortemeyer)  # 03/24,03/29 Gerd Kortemeyer)
 # 03/31,04/03,05/09,06/23,08/18,08/20 Gerd Kortemeyer  # 03/31,04/03,05/09,06/23,08/18,08/20 Gerd Kortemeyer
 # 12/15 Scott Harrison  
 # 12/28 Gerd Kortemeyer  # 12/28 Gerd Kortemeyer
 #  #
 ###  ###
Line 70  sub handler { Line 69  sub handler {
              $fn,$r->dir_config('lonDefDomain'));                $fn,$r->dir_config('lonDefDomain')); 
   unless (($uname) && ($udom)) {    unless (($uname) && ($udom)) {
      $r->log_reason($uname.' at '.$udom.       $r->log_reason($uname.' at '.$udom.
          ' trying to publish file '.$ENV{'form.filename'}.           ' trying to list directory '.$ENV{'form.filename'}.
          ' ('.$fn.') - not authorized',            ' ('.$fn.') - not authorized', 
          $r->filename);            $r->filename); 
      return HTTP_NOT_ACCEPTABLE;       return HTTP_NOT_ACCEPTABLE;
   }    }
   
   # Remove trailing / from direcgtory name.    # Remove trailing / from directory name.
   
   $fn=~s/\/$//;    $fn=~s/\/$//;
   
Line 148  sub getEffectiveUrl { Line 147  sub getEffectiveUrl {
  #   Replace the ~username of the URL with /home/username/public_html   #   Replace the ~username of the URL with /home/username/public_html
  #   so that we don't have to worry about ~ expansion internally.   #   so that we don't have to worry about ~ expansion internally.
  #   #
  $fn=~s/^http\:\/\/[^\/]+\/\~(\w+)/\/home\/$1\/public_html/;   $fn=~s/^http\:\/\/[^\/]+\///;
           $fn=~s/^\///;
           $fn=~s/\~(\w+)/\/home\/$1\/public_html/;
   
  #  Remove trailing / strings (?)    #  Remove trailing / strings (?) 
   
Line 186  sub startpage { Line 187  sub startpage {
     $r->print('<html><head><title>LON-CAPA Construction Space</title></head>');      $r->print('<html><head><title>LON-CAPA Construction Space</title></head>');
           
     $r->print(&Apache::loncommon::bodytag(undef,undef,undef,1));      $r->print(&Apache::loncommon::bodytag(undef,undef,undef,1));
           my $pubdirscript=(<<ENDPUBDIRSCRIPT);
   <script>
       function pubdir(theform) {
    if (confirm('Publish complete directory?')) {
       theform.submit();
           }
       }
      function pubrecdir(theform) {
    if (confirm('Publish directory and all subdirectories?')) {
               theform.pubrec.value='1';
       theform.submit();
           }
       }
   </script>
   ENDPUBDIRSCRIPT
   
     $r->print('<h1>Construction Space Directory <tt>'.      $r->print('<h1>Construction Space Directory <tt>'.
       $thisdisfn.'/</tt></h1>'.        $thisdisfn.'/</tt></h1>'.
         '<script type="text/javascript">top.document.title = \''.
         $thisdisfn.'/ - LON-CAPA Construction Space\';</script>'.
         $pubdirscript.
               '<form method="post" action="/adm/publish" target="_parent">'.                '<form method="post" action="/adm/publish" target="_parent">'.
               '<input type="hidden" name="filename" value="/~'.                '<input type="hidden" name="filename" value="/~'.
                $uname.$thisdisfn.'/" />'.                 $uname.$thisdisfn.'/" />'.
               '<input type="submit" value="Publish Directory" />'.                '<input type="button" onClick="pubdir(this.form);" value="Publish Directory" />'.
               '<input type="submit" name="pubrec" value="Publish Directory and Sub Directories" /></form>');                '<input type="hidden" name="pubrec" value="" />'.
                 '<input type="button" onClick="pubrecdir(this.form);" value="Publish Directory and Sub Directories" />'.
   '<input type="button" onClick="window.location='."'/~".
                  $uname.$thisdisfn."/default.meta'".'" value="Directory Catalog Information" /></form>');
           
     if (($uname ne $ENV{'user.name'}) || ($udom ne $ENV{'user.domain'})) {      if (($uname ne $ENV{'user.name'}) || ($udom ne $ENV{'user.domain'})) {
  $r->print('<h3>Co-Author: '.$uname.' at '.$udom.   $r->print('<h3>Co-Author: '.$uname.' at '.$udom.
Line 288  sub putresource { Line 310  sub putresource {
  $status.='<br><a href="/adm/retrieve?filename=/~'.$uname.   $status.='<br><a href="/adm/retrieve?filename=/~'.$uname.
     $thisdisfn.'/'.$filename.'" target=cat>Retrieve</a>';      $thisdisfn.'/'.$filename.'" target=cat>Retrieve</a>';
     }      }
       my $editlink='';
       if ($filename=~/\.(xml|html|htm|xhtml|xhtm)$/) {
    $editlink=' (<a href="'.$linkdir.'/'.$filename.'?forceedit=1" target="_top">Edit</a>)';
       }
       if ($filename=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {
    $editlink=' (<a href="'.$linkdir.'/'.$filename.'?forceedit=1" target="_top">EditXML</a>)';
       }
     $r->print('<tr bgcolor="'.$bgcolor.'">'.      $r->print('<tr bgcolor="'.$bgcolor.'">'.
       '<td><a target="_parent" href="/adm/publish?filename=/~'.        '<td><a target="_parent" href="/adm/publish?filename=/~'.
       $uname.$thisdisfn.'/'.$filename.'">'.'Publish</a>'.        $uname.$thisdisfn.'/'.$filename.'">'.'Publish</a>'.
       '</td>'.        '</td>'.
       '<td>'.        '<td>'.
       '<a href="'.$linkdir.'/'.$filename.'" target="_top">'.        '<a href="'.$linkdir.'/'.$filename.'" target="_top">'.
                $filename.'</a>'.                 $filename.'</a>'.$editlink.
       '</td>'.        '</td>'.
       '<td>'.$title.'</td>'.        '<td>'.$title.'</td>'.
       '<td>'.$status.'</td>'.        '<td>'.$status.'</td>'.
Line 333  __END__ Line 362  __END__
   
 =head1 NAME  =head1 NAME
   
 Apache::lonpubdir - Publication Handler for Directories  Apache::lonpubdir - Construction space directory lister
   
 =head1 SYNOPSIS  =head1 SYNOPSIS
   

Removed from v.1.27  
changed lines
  Added in v.1.34


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