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

version 1.128, 2011/10/21 18:04:51 version 1.129, 2011/10/21 22:33:14
Line 106  sub handler { Line 106  sub handler {
      my $extension='';       my $extension='';
      if ($filename=~/\.(\w+)$/) { $extension=$1; }       if ($filename=~/\.(\w+)$/) { $extension=$1; }
      if ($cmode&$dirptr) {       if ($cmode&$dirptr) {
  putdirectory($r, $thisdisfn, $linkdir, $filename, $cmtime,$targetdir,\%bombs,\$numdir);   &putdirectory($r, $thisdisfn, $linkdir, $filename, $cmtime,$targetdir,\%bombs,\$numdir);
      } elsif (&Apache::loncommon::fileembstyle($extension) ne 'hdn') {       } elsif (&Apache::loncommon::fileembstyle($extension) ne 'hdn') {
  putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir,    &putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir, 
      $targetdir, $linkdir, $cmtime,\%bombs,\$numres);       $targetdir, $linkdir, $cmtime,\%bombs,\$numres);
      } else {       } else {
  # "hidden" extension and not a directory, so hide it away.   # "hidden" extension and not a directory, so hide it away.
Line 135  sub handler { Line 135  sub handler {
   
 sub startpage {  sub startpage {
     my ($r, $uname, $udom, $thisdisfn) = @_;      my ($r, $uname, $udom, $thisdisfn) = @_;
     my $currdir = '/priv/'.$uname.$thisdisfn;  
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
   
Line 151  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'}=$currdir.'/';      $env{'request.noversionuri'}='/priv/'.$udom.'/'.$uname.$thisdisfn.'/';
     $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 165  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='/~$uname$esc_thisdisfn/';  parent.lastknownpriv='/priv/$udom/$uname$esc_thisdisfn/';
   
 // Confirmation dialogues  // Confirmation dialogues
   
Line 320  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="/~$uname$thisdisfn/" />          <input type="hidden" name="filename" value="/priv/$udom/$uname$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 336  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="/~$uname$thisdisfn/" />          <input type="hidden" name="filename" value="/priv/$udom/$uname$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 348  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="/~$uname$thisdisfn/" />   <input type="hidden" name="filename" value="/priv/$udom/$uname$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 447  sub getSourceRightString { Line 446  sub getSourceRightString {
 #   # 
 sub putdirectory {  sub putdirectory {
     my ($r, $reqfile, $here, $dirname, $modtime, $resdir, $bombs, $numdir) = @_;      my ($r, $reqfile, $here, $dirname, $modtime, $resdir, $bombs, $numdir) = @_;
     # construct the display filename: the directory name unless ..:  
   #&Apache::lonnet::logthis("reqfile $reqfile here $here dirname $dirname resdir $resdir");
   
   
   # construct the display filename: the directory name unless ..:
           
     my $disfilename = $dirname;      my $disfilename = $dirname;
     if ($dirname eq '..') {      if ($dirname eq '..') {
Line 458  sub putdirectory { Line 461  sub putdirectory {
  foreach (keys %{$bombs}) {   foreach (keys %{$bombs}) {
     if ($_=~m:^\Q$resdir\E/\Q$disfilename\E/:) { $kaputt=1; last; }      if ($_=~m:^\Q$resdir\E/\Q$disfilename\E/:) { $kaputt=1; last; }
  }   }
   #
   # Get the metadata from that directory's default.meta to display titles
   #
  %Apache::lonpublisher::metadatafields=();   %Apache::lonpublisher::metadatafields=();
  %Apache::lonpublisher::metadatakeys=();   %Apache::lonpublisher::metadatakeys=();
  my $construct=$here;   &Apache::lonpublisher::metaeval(
  $construct=~s{^/priv/($LONCAPA::username_re)$}{/home/$1/public_html};                   &Apache::lonnet::getfile($r->dir_config('lonDocRoot').$here.'/'.$dirname.'/default.meta')
         my $dirpath = $here;                                         );
         $dirpath=~s{^/priv/}{/~};  #
  &Apache::lonpublisher::metaeval(&Apache::lonnet::getfile(  
         $construct.'/'.$dirname.'/default.meta'  
  ));  
         my $actionitem = '';          my $actionitem = '';
         if ($dirname eq '..') {          if ($here eq '..') {
             $actionitem = &mt('Go to ...');              $actionitem = &mt('Go to ...');
         } else {          } else {
             $actionitem =               $actionitem = 
Line 482  sub putdirectory { Line 485  sub putdirectory {
                       '<option value="printdir">'.&mt('Print directory').'</option>'.                        '<option value="printdir">'.&mt('Print directory').'</option>'.
                       '<option value="delete">'.&mt('Delete directory').'</option>'.                        '<option value="delete">'.&mt('Delete directory').'</option>'.
                     '</select>'.                      '</select>'.
                      '<input type="hidden" name="filename" value="'.&HTML::Entities::encode($dirpath.'/'.$dirname,'<>&"').'/" />'.                       '<input type="hidden" name="filename" value="'.&HTML::Entities::encode($here.'/'.$dirname,'<>&"').'/" />'.
                      '<input type="hidden" name="openname" value="'.$here.'/'.$dirname.'/" />'.                       '<input type="hidden" name="openname" value="'.$here.'/'.$dirname.'/" />'.
                      '<input type="hidden" name="postdata" value="" />'.                       '<input type="hidden" name="postdata" value="" />'.
                    '</form>';                     '</form>';
Line 519  sub putresource { Line 522  sub putresource {
     my $css_class='LC_browser_file';      my $css_class='LC_browser_file';
     my $title='&nbsp;';      my $title='&nbsp;';
     my $publish_button=&mt('Publish');      my $publish_button=&mt('Publish');
     my $cstr_dir = '/home/'.$uname.'/public_html/'.$thisdisfn.'/';      my $cstr_dir = $r->dir_config('lonDocRoot').'/priv/'.$udom.'/'.$uname.'/'.$thisdisfn.'/';
 #    my $action_buttons=      my $linkfilename='/priv'.$thisdisfn.'/'.$filename;
 #        '<br /><a target="_parent" href="/adm/cfile?action=delete&filename=/~'.  
 # $uname.'/'.$thisdisfn.'/'.$filename.'">'.  
 # &mt('Delete').'</a>';  
     if (-e $resdir.'/'.$filename) {      if (-e $resdir.'/'.$filename) {
         my $same=0;          my $same=0;
  my ($rdev,$rino,$rmode,$rnlink,   my ($rdev,$rino,$rmode,$rnlink,
Line 576  sub putresource { Line 577  sub putresource {
  $status=&mt('Published').   $status=&mt('Published').
     '<br />'. $rights_status;      '<br />'. $rights_status;
     }      }
 #    } else {  
 # $action_buttons='';  
 #    }  
  } else {   } else {
             $pubstatus = 'modified';              $pubstatus = 'modified';
     $status=&mt('Modified').      $status=&mt('Modified').
  '<br />'. $rights_status;   '<br />'. $rights_status;
 #    $action_buttons='';  
     if (&Apache::loncommon::fileembstyle(($filename=~/\.(\w+)$/)) eq 'ssi') {      if (&Apache::loncommon::fileembstyle(($filename=~/\.(\w+)$/)) eq 'ssi') {
  $status.='<br /><a href="/adm/diff?filename=/~'.$uname.   $status.='<br /><a href="/adm/diff?filename='.$linkfilename.
     $thisdisfn.'/'.$filename.  
     '&amp;versiontwo=priv" target="cat">'.&mt('Diffs').'</a>';      '&amp;versiontwo=priv" target="cat">'.&mt('Diffs').'</a>';
     }      }
  }    } 
   
  $title.="\n".'<br /><a href="/~'.$uname.$thisdisfn.'/'.$filename.'.meta">'.    $title.="\n".'<br /><a href="'.$linkfilename.'.meta">'. 
     ($$bombs{$targetdir.'/'.$filename}?'<img src="/adm/lonMisc/bomb.gif" border="0" alt="'.&mt('bomb').'" />':&mt('Edit Metadata')).'</a>';      ($$bombs{$targetdir.'/'.$filename}?'<img src="/adm/lonMisc/bomb.gif" border="0" alt="'.&mt('bomb').'" />':&mt('Edit Metadata')).'</a>';
   
  if (!$meta_same) {   if (!$meta_same) {
     $title = &mt('Metadata Modified').'<br />'.$title.      $title = &mt('Metadata Modified').'<br />'.$title.
  '<br /><a href="/adm/diff?filename=/~'.$uname.   '<br /><a href="/adm/diff?filename=/priv/'.$linkfilename.'.meta'.
  $thisdisfn.'/'.$filename.'.meta'.  
  '&amp;versiontwo=priv" target="cat">'.&mt('Metadata Diffs').'</a>';   '&amp;versiontwo=priv" target="cat">'.&mt('Metadata Diffs').'</a>';
     $title.="\n".'<br /><a href="/adm/retrieve?filename=/~'.$uname.      $title.="\n".'<br /><a href="/adm/retrieve?filename='.$linkfilename.'.meta" target="_parent">'.&mt('Retrieve Metadata').'</a>';
  $thisdisfn.'/'.$filename.'.meta" target="_parent">'.&mt('Retrieve Metadata').'</a>';  
  }   }
  $status.="\n".'<br /><a href="/adm/retrieve?filename=/~'.$uname.   $status.="\n".'<br /><a href="/adm/retrieve?filename='.$linkfilename.'" target="_parent">'.&mt('Retrieve').'</a>';
     $thisdisfn.'/'.$filename.'" target="_parent">'.&mt('Retrieve').'</a>';  
     }      }
     my $editlink='';      my $editlink='';
     my $editlink2='';      my $editlink2='';
Line 615  sub putresource { Line 608  sub putresource {
  $editlink2=' <br />(<a href="'.$linkdir.'/'.$filename.'?forceColoredit=1" target="_parent">'.&mt('Edit').'</a>)';   $editlink2=' <br />(<a href="'.$linkdir.'/'.$filename.'?forceColoredit=1" target="_parent">'.&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=/~'.$uname.   $editlink.=' (<a href="/adm/cleanup?filename='.$linkfilename.'" target="_parent">'.&mt('Clean Up').')</a>';
     $thisdisfn.'/'.$filename.'" target="_parent">'.&mt('Clean Up').')</a>';  
     }      }
     if ($filename=~/\.(zip|tar|bz2|gz|tar.gz|tar.bz2|tgz)$/) {      if ($filename=~/\.(zip|tar|bz2|gz|tar.gz|tar.bz2|tgz)$/) {
  $editlink=' (<a target="_parent" href="/adm/cfile?decompress=/~'.   $editlink=' (<a target="_parent" href="/adm/cfile?decompress='.$linkfilename.'">'.&mt('Decompress').'</a>)';
       $uname.$thisdisfn.'/'.$filename.'">'.&mt('Decompress').'</a>)';  
     }      }
     my $pub_select = '';      my $pub_select = '';
     &create_pubselect($r,\$pub_select,$udom,$uname,$thisdisfn,$filename,$resdir,$pubstatus,$publish_button,$numres);      &create_pubselect($r,\$pub_select,$udom,$uname,$thisdisfn,$filename,$resdir,$pubstatus,$publish_button,$numres);
Line 694  sub check_for_versions { Line 685  sub check_for_versions {
     return $versions;      return $versions;
 }  }
   
 #  
 #   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.  
 #  
 sub CategorizeFiles {  
     my $location = shift;  
     my $files    = shift;  
 }  
   
 1;  1;
 __END__  __END__
   
Line 816  Output the header of the page.  This inc Line 781  Output the header of the page.  This inc
         $dirname - Name of directory special file.          $dirname - Name of directory special file.
         $modtime - Encoded modification time.          $modtime - Encoded modification time.
   
 =item 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.  
   
 =back  =back
   
 =cut  =cut

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


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