Diff for /loncom/publisher/lonpubdir.pm between versions 1.85 and 1.92

version 1.85, 2005/07/12 14:56:36 version 1.92, 2006/06/22 20:09:41
Line 36  use Apache::Constants qw(:common :http : Line 36  use Apache::Constants qw(:common :http :
 use Apache::loncacc;  use Apache::loncacc;
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
   use Apache::londiff();
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonmsg;  use Apache::lonmsg;
 use Apache::lonmenu;  use Apache::lonmenu;
Line 104  sub handler { Line 105  sub handler {
       
   # Start off the directory table.    # Start off the directory table.
   $r->print('<h3>Directory Contents:</h3>');    $r->print('<h3>Directory Contents:</h3>');
   $r->print('<table border="0" cellspacing="2" cellpadding="2"><tr>'.    $r->print('<table id="LC_browser"><tr>'.
             '<th bgcolor="#DDDDDD">'.&mt('Type').'</th>'.              '<th>'.&mt('Type').'</th>'.
             '<th bgcolor="#DDDDDD">'.&mt('Actions').'</th>'.              '<th>'.&mt('Actions').'</th>'.
             '<th bgcolor="#DDDDDD">'.&mt('Name').'</th>'.              '<th>'.&mt('Name').'</th>'.
             '<th bgcolor="#DDDDDD">'.&mt('Title').'</th>'.              '<th>'.&mt('Title').'</th>'.
     '<th bgcolor="#DDDDDD">'.&mt('Status').'</th>'.      '<th>'.&mt('Status').'</th>'.
             '<th bgcolor="#DDDDDD">'.&mt('Last Modified').              '<th>'.&mt('Last Modified').
     '</th></tr>'."\n");      '</th></tr>'."\n");
   
   my $filename;    my $filename;
Line 137  sub handler { Line 138  sub handler {
   }    }
   closedir(DIR);    closedir(DIR);
   
   $r->print('</table></body></html>');    $r->print('</table>'.&Apache::loncommon::end_page());
   return OK;      return OK;  
 }  }
 #  #
Line 191  sub startpage { Line 192  sub startpage {
     my $currdir = '/priv/'.$uname.$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;
     my $html=&Apache::lonxml::xmlbegin();  
     $r->print($html.'<head><title>LON-CAPA Construction Space</title></head>');  
   
     my $pagetitle;  
     my $formaction='/priv/'.$uname.$thisdisfn.'/';      my $formaction='/priv/'.$uname.$thisdisfn.'/';
     $formaction=~s/\/+/\//g;      $formaction=~s|/+|/|g;
     $pagetitle .= &Apache::loncommon::help_open_menu('','','','',3,'Authoring').      my $pagetitle .= &Apache::loncommon::help_open_menu('','','','',3,'Authoring').
         '<font face="Arial, Helvetica, sans-serif" size="+1"><b>Construction Space</b>:</font>&nbsp;'.          '<font face="Arial, Helvetica, sans-serif" size="+1"><b>Construction Space</b>:</font>&nbsp;'.
         '<form name="dirs" method="post" action="'.$formaction.          '<form name="dirs" method="post" action="'.$formaction.
         '" target="_parent"><tt><b>'.          '" target="_parent"><tt><b>'.
Line 208  sub startpage { Line 206  sub startpage {
     &Apache::lonhtmlcommon::store_recent('construct',$formaction,$formaction);      &Apache::lonhtmlcommon::store_recent('construct',$formaction,$formaction);
     if ($env{'environment.remote'} eq 'off') {      if ($env{'environment.remote'} eq 'off') {
  $env{'request.noversionuri'}=$currdir.'/';   $env{'request.noversionuri'}=$currdir.'/';
  $r->print(&Apache::loncommon::bodytag('Construction Space',undef,undef,undef,undef,undef,$pagetitle));   $r->print(&Apache::loncommon::start_page('Construction Space',undef,
    {'body_title' =>
         $pagetitle,}));
     } else {      } else {
    $r->print(&Apache::loncommon::start_page('Construction Space',undef));
  $r->print($pagetitle);   $r->print($pagetitle);
     }      }
   
     my $pubdirscript=(<<ENDPUBDIRSCRIPT);      my $pubdirscript=(<<ENDPUBDIRSCRIPT);
 <script type="text/javascript">  <script type="text/javascript">
 top.document.title = '$thisdisfn/ - LON-CAPA Construction Space';  top.document.title = '$thisdisfn/ - LON-CAPA Construction Space';
Line 233  parent.lastknownpriv='/~$uname$thisdisfn Line 235  parent.lastknownpriv='/~$uname$thisdisfn
             document.printdir.postdata.value=theform.filename.value              document.printdir.postdata.value=theform.filename.value
             document.printdir.submit();              document.printdir.submit();
         }          }
           if (theform.dirtask.options[theform.dirtask.selectedIndex].value == "delete") {
                 var delform = document.delresource
                 delform.filename.value = theform.filename.value
                 delform.submit()
           }
     }      }
       
     function checkUpload(theform) {      function checkUpload(theform) {
Line 259  parent.lastknownpriv='/~$uname$thisdisfn Line 266  parent.lastknownpriv='/~$uname$thisdisfn
             theform.postdata.value = theform.filename.value              theform.postdata.value = theform.filename.value
             theform.submit()              theform.submit()
         }          }
           if (theform.diraction.options[theform.diraction.selectedIndex].value == "delete") {
                 var delform = document.delresource
                 delform.filename.value = theform.filename.value
                 delform.submit()
           }
         return          return
     }      }
     function SetResChoice(theform) {      function SetResChoice(theform) {
Line 325  sub dircontrols { Line 337  sub dircontrols {
                                        mcdi => 'Must create new subdirectory inside a directory',                                         mcdi => 'Must create new subdirectory inside a directory',
                                        pubr => 'Publish this Resource',                                         pubr => 'Publish this Resource',
                                        pubd => 'Publish this Directory',                                         pubd => 'Publish this Directory',
                                          dedr => 'Delete Directory',
                                        rtrv => 'Retrieve Old Version',                                         rtrv => 'Retrieve Old Version',
                                        pubs => 'Publish with Subdirectories',  
                                        list => 'List Directory',                                         list => 'List Directory',
                                        uplo => 'Upload file',                                           uplo => 'Upload file',  
                                        dele => 'Delete',                                         dele => 'Delete',
Line 366  sub dircontrols { Line 378  sub dircontrols {
             <option value="publish">$lt{'pubd'}</option>              <option value="publish">$lt{'pubd'}</option>
             <option value="editcat">$lt{'edit'}</option>              <option value="editcat">$lt{'edit'}</option>
             <option value="printdir">$lt{'prnt'}</option>              <option value="printdir">$lt{'prnt'}</option>
               <option value="delete">$lt{'dedr'}</option>
            </select>             </select>
            <input type="hidden" name="filename" value="/~$uname$thisdisfn/" />             <input type="hidden" name="filename" value="/~$uname$thisdisfn/" />
           </form>            </form>
Line 386  sub dircontrols { Line 399  sub dircontrols {
  </td>   </td>
  <td bgcolor="#ccddaa" align="center">   <td bgcolor="#ccddaa" align="center">
     <form name="fileaction" method="post" action="/adm/cfile" target="_parent">      <form name="fileaction" method="post" action="/adm/cfile" target="_parent">
       <nobr>        <span style="white-space: nowrap">
  <input type="hidden" name="filename" value="/~$uname$thisdisfn/" />   <input type="hidden" name="filename" value="/~$uname$thisdisfn/" />
   <select name="action">    <select name="action">
     <option value="Select Action">$lt{'sela'}</option>      <option value="Select Action">$lt{'sela'}</option>
Line 400  sub dircontrols { Line 413  sub dircontrols {
                             <option value="newlibraryfile">$lt{'nlib'}:</option>                              <option value="newlibraryfile">$lt{'nlib'}:</option>
     <option value="newdir">$lt{'nsub'}:</option>      <option value="newdir">$lt{'nsub'}:</option>
   </select>&nbsp;<input type="text" name="newfilename" value="Type Name Here" onfocus="if (this.value == 'Type Name Here') this.value=''" />&nbsp;<input type="button" value="Go" onclick="document.fileaction.submit()" />    </select>&nbsp;<input type="text" name="newfilename" value="Type Name Here" onfocus="if (this.value == 'Type Name Here') this.value=''" />&nbsp;<input type="button" value="Go" onclick="document.fileaction.submit()" />
  </nobr>   </span>
  </form>   </form>
   </td>    </td>
          </tr>           </tr>
Line 517  sub putdirectory { Line 530  sub putdirectory {
                       '<option selected="selected">'.&mt('Select action').'</option>'.                        '<option selected="selected">'.&mt('Select action').'</option>'.
                       '<option value="open">'.&mt('Open').'</option>'.                        '<option value="open">'.&mt('Open').'</option>'.
                       '<option value="publish">'.&mt('Publish').'</option>'.                        '<option value="publish">'.&mt('Publish').'</option>'.
                       '<option value="publishsub">'.&mt('Publish with subdirectories').'</option>'.  
                       '<option value="editcat">'.&mt('Edit catalog information').'</option>'.                        '<option value="editcat">'.&mt('Edit catalog information').'</option>'.
                       '<option value="printdir">'.&mt('Print directory').'</option>'.                        '<option value="printdir">'.&mt('Print directory').'</option>'.
                         '<option value="delete">'.&mt('Delete directory').'</option>'.
                     '</select>'.                      '</select>'.
                      '<input type="hidden" name="filename" value="'.$dirpath.'/'.$dirname.'/" />'.                       '<input type="hidden" name="filename" value="'.&HTML::Entities::encode($dirpath.'/'.$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>';
             $$numdir ++;              $$numdir ++;
         }          }
  $r->print('<tr bgcolor="#CCCCFF">'.   $r->print('<tr class="LC_browser_folder">'.
   '<td><img src="'.    '<td><img src="'.
   $Apache::lonnet::perlvar{'lonIconsURL'}.'/folder_closed.gif" /></td>'.    $Apache::lonnet::perlvar{'lonIconsURL'}.'/folder_closed.gif" alt="folder" /></td>'.
   '<td>'.$actionitem.'</td>'.    '<td>'.$actionitem.'</td>'.
   '<td><font face="arial"><a href="'.$here.'/'.$dirname.'/" target="_parent">'.    '<td><span class="LC_filename"><a href="'.&HTML::Entities::encode($here.'/'.$dirname,'<>&"').'/" target="_parent">'.
   $disfilename.'</a></font></td>'.    $disfilename.'</a></span></td>'.
         '<td colspan="2">'.($kaputt?&Apache::lonhtmlcommon::authorbombs($resdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'}.' <i>'.          '<td colspan="2">'.($kaputt?&Apache::lonhtmlcommon::authorbombs($resdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'});
   $Apache::lonpublisher::metadatafields{'subject'}.'</i> '.   if ($Apache::lonpublisher::metadatafields{'subject'} ne '') {
   $Apache::lonpublisher::metadatafields{'keywords'}.'</td>'.      $r->print(' <i>'.
         $Apache::lonpublisher::metadatafields{'subject'}.
         '</i> ');
    }
    $r->print($Apache::lonpublisher::metadatafields{'keywords'}.'</td>'.
   '<td>'.&Apache::lonlocal::locallocaltime($modtime).'</td>'.    '<td>'.&Apache::lonlocal::locallocaltime($modtime).'</td>'.
   "</tr>\n");    "</tr>\n");
     }      }
Line 551  sub putresource { Line 568  sub putresource {
     &Apache::lonnet::devalidate_cache_new('meta',$targetdir.'/'.$filename);      &Apache::lonnet::devalidate_cache_new('meta',$targetdir.'/'.$filename);
     my $pubstatus = 'unpublished';      my $pubstatus = 'unpublished';
     my $status=&mt('Unpublished');      my $status=&mt('Unpublished');
     my $bgcolor='#FFAA99';      my $css_class='LC_browser_file';
     my $title='&nbsp;';      my $title='&nbsp;';
     my $publish_button=&mt('Publish');      my $publish_button=&mt('Publish');
 #    my $action_buttons=  #    my $action_buttons=
Line 559  sub putresource { Line 576  sub putresource {
 # $uname.'/'.$thisdisfn.'/'.$filename.'">'.  # $uname.'/'.$thisdisfn.'/'.$filename.'">'.
 # &mt('Delete').'</a>';  # &mt('Delete').'</a>';
     if (-e $resdir.'/'.$filename) {      if (-e $resdir.'/'.$filename) {
           my $same=0;
  my ($rdev,$rino,$rmode,$rnlink,   my ($rdev,$rino,$rmode,$rnlink,
     $ruid,$rgid,$rrdev,$rsize,      $ruid,$rgid,$rrdev,$rsize,
     $ratime,$rmtime,$rctime,      $ratime,$rmtime,$rctime,
     $rblksize,$rblocks)=stat($resdir.'/'.$filename);      $rblksize,$rblocks)=stat($resdir.'/'.$filename);
           if ($rmtime>=$cmtime) {
              $same=1;
           } else {
              if (&Apache::londiff::are_different_files($resdir.'/'.$filename,
                                         '/home/'.$uname.'/public_html/'.$thisdisfn.'/'.$filename)) {
                 $same=0;
              } else {
                 $same=1;
              }
           }
  $publish_button=&mt('Re-publish');   $publish_button=&mt('Re-publish');
  if ($rmtime>=$cmtime) {   if ($same) {
             $pubstatus = 'published';              $pubstatus = 'published';
     $status=&mt('Published').'<br />'.      $status=&mt('Published').'<br />'.
  &mt(&getCopyRightString($targetdir.'/'.$filename)).' '.   &mt(&getCopyRightString($targetdir.'/'.$filename)).' '.
  &mt(&getSourceRightString($targetdir.'/'.$filename));   &mt(&getSourceRightString($targetdir.'/'.$filename));
     $bgcolor='#CCFF88';  
     if (&Apache::lonnet::metadata($targetdir.'/'.$filename,'obsolete')) {      if (&Apache::lonnet::metadata($targetdir.'/'.$filename,'obsolete')) {
                 $pubstatus = 'obsolete';                  $pubstatus = 'obsolete';
  $status=&mt('Obsolete');   $status=&mt('Obsolete');
                 $bgcolor='#AAAAAA';  
             }              }
 #    } else {  #    } else {
 # $action_buttons='';  # $action_buttons='';
Line 586  sub putresource { Line 612  sub putresource {
     $status=&mt('Modified').'<br />'.      $status=&mt('Modified').'<br />'.
  &mt(&getCopyRightString($targetdir.'/'.$filename)).' '.   &mt(&getCopyRightString($targetdir.'/'.$filename)).' '.
  &mt(&getSourceRightString($targetdir.'/'.$filename));   &mt(&getSourceRightString($targetdir.'/'.$filename));
             $bgcolor='#FFFF77';  
 #    $action_buttons='';  #    $action_buttons='';
     $title='<a href="/res/'.$targetdir.'/'.$filename.'.meta" target="cat">'.      $title='<a href="/res/'.$targetdir.'/'.$filename.'.meta" target="cat">'.
  &getTitleString($targetdir.'/'.$filename).'</a>';   &getTitleString($targetdir.'/'.$filename).'</a>';
Line 597  sub putresource { Line 622  sub putresource {
     }      }
  }   }
  $title.="\n".'<br /><a href="/~'.$uname.$thisdisfn.'/'.$filename.'.meta">'.    $title.="\n".'<br /><a href="/~'.$uname.$thisdisfn.'/'.$filename.'.meta">'. 
     ($$bombs{$targetdir.'/'.$filename}?'<img src="/adm/lonMisc/bomb.gif" border="0" />':'Edit Metadata').'</a>';      ($$bombs{$targetdir.'/'.$filename}?'<img src="/adm/lonMisc/bomb.gif" border="0" alt="bomb" />':'Edit Metadata').'</a>';
  $status.="\n".'<br /><a href="/adm/retrieve?filename=/~'.$uname.   $status.="\n".'<br /><a href="/adm/retrieve?filename=/~'.$uname.
     $thisdisfn.'/'.$filename.'" target="_parent">'.&mt('Retrieve').'</a>';      $thisdisfn.'/'.$filename.'" target="_parent">'.&mt('Retrieve').'</a>';
     }      }
Line 620  sub putresource { Line 645  sub putresource {
     }      }
     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);
     $r->print('<tr bgcolor="'.$bgcolor.'">'.      $r->print('<tr class="LC_browser_file_'.$pubstatus.'">'.
       '<td>'.($filename=~/[\#\~]$/?'&nbsp;':        '<td>'.($filename=~/[\#\~]$/?'&nbsp;':
       '<img src="'.&Apache::loncommon::icon($filename).'" /></td>').        '<img src="'.&Apache::loncommon::icon($filename).'" alt="" />').'</td>'.
               '<td>'.$pub_select.'</td>'.                '<td>'.$pub_select.'</td>'.
       '<td><font face="arial">'.        '<td><span class="LC_filename"> '.
       '<a href="'.$linkdir.'/'.$filename.'" target="_parent">'.        '<a href="'.$linkdir.'/'.$filename.'" target="_parent">'.
                $filename.'</a></font>'.$editlink2.$editlink.                 $filename.'</a></span>'.$editlink2.$editlink.
       '</td>'.        '</td>'.
       '<td>'.$title.'</td>'.        '<td>'.$title.'</td>'.
       '<td>'.$status.'</td>'.        '<td>'.$status.'</td>'.
Line 663  sub create_pubselect { Line 688  sub create_pubselect {
 '<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="/~'.
  $uname.$thisdisfn.'/'.$filename.'" /></form>';   &HTML::Entities::encode($uname.$thisdisfn.'/'.$filename,'<>&"').'" /></form>';
     $$numres ++;      $$numres ++;
 }  }
   

Removed from v.1.85  
changed lines
  Added in v.1.92


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