Diff for /loncom/publisher/lonpubdir.pm between versions 1.173 and 1.179

version 1.173, 2019/08/13 16:59:12 version 1.179, 2023/07/13 21:41:40
Line 104  sub handler { Line 104  sub handler {
                                 "$londocroot/priv/$udom/$uname"); # expressed in kB                                  "$londocroot/priv/$udom/$uname"); # expressed in kB
     my $disk_quota = &Apache::loncommon::get_user_quota($uname,$udom,      my $disk_quota = &Apache::loncommon::get_user_quota($uname,$udom,
                                                  $cstr,$crstype); # expressed in MB                                                   $cstr,$crstype); # expressed in MB
   
     # Put out the start of page.      # Put out the start of page.
       
     &startpage($r, $uname, $udom, $thisdisfn, $current_disk_usage, $disk_quota, $crsauthor);      &startpage($r, $uname, $udom, $thisdisfn, $current_disk_usage, $disk_quota, $crsauthor);
   
     if (!-d $fn) {      if (!-d $fn) {
Line 128  sub handler { Line 128  sub handler {
     }      }
   
     # Put out actions for directory, browse/upload + new file page.      # Put out actions for directory, browse/upload + new file page.
     &dircontrols($r,$uname,$udom,$thisdisfn, $current_disk_usage, $disk_quota);      &dircontrols($r,$uname,$udom,$thisdisfn,$current_disk_usage,$disk_quota,$crsauthor);
     &resourceactions($r,$uname,$udom,$thisdisfn); # Put out form used for printing/deletion etc.      &resourceactions($r,$uname,$udom,$thisdisfn); # Put out form used for printing/deletion etc.
   
     my $numdir = 0;      my $numdir = 0;
Line 247  my $result = "<script type=\"text/javasc Line 247  my $result = "<script type=\"text/javasc
         if (!($cmode&$dirptr)) {          if (!($cmode&$dirptr)) {
             ($status, $pubstatus) = &getStatus($resdir, $targetdir, $cstr_dir,               ($status, $pubstatus) = &getStatus($resdir, $targetdir, $cstr_dir, 
                 $filename, $linkfilename, $cmtime, $meta_same);                  $filename, $linkfilename, $cmtime, $meta_same);
             ($fulltitle, $title) = &getTitle($resdir, $targetdir, $filename,               if (($crsauthor) && ($extension eq 'rights')) {
                                         $linkfilename, $meta_same, \%bombs);                  $title = &getTitleString($targetdir.'/'.$filename);
                   $fulltitle = $title;
               } else {
                   ($fulltitle, $title) = &getTitle($resdir, $targetdir, $filename, 
                                                    $linkfilename, $meta_same, \%bombs);
               }
         } else {          } else {
             ($status, $pubstatus) = ('','');              ($status, $pubstatus) = ('','');
             ($fulltitle, $title) = ('','');              ($fulltitle, $title) = ('','');
Line 317  my $result = "<script type=\"text/javasc Line 322  my $result = "<script type=\"text/javasc
                 $targetdir, \%bombs, \$numdir);                  $targetdir, \%bombs, \$numdir);
         } else {                                                # Files          } else {                                                # Files
             &putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir,              &putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir,
                 $targetdir, $linkdir, $filehash->{$filename}->{"cmtime"},                   $targetdir, $linkdir, $crsauthor, 
                   $filehash->{$filename}->{"cmtime"}, 
                 $filehash->{$filename}->{"size"}, \$numres,                   $filehash->{$filename}->{"size"}, \$numres, 
                 $filehash->{$filename}->{"linkfilename"},                  $filehash->{$filename}->{"linkfilename"},
                 $filehash->{$filename}->{"fulltitle"},                  $filehash->{$filename}->{"fulltitle"},
Line 391  sub startpage { Line 397  sub startpage {
   
     $disk_quota = 1024 * $disk_quota; # convert from MB to kB      $disk_quota = 1024 * $disk_quota; # convert from MB to kB
   
       my $headertext = &mt('Directory');
       if ($crsauthor) {
           $headertext = &mt('Course Authoring Directory');
       }
     $r->print(&Apache::loncommon::head_subbox(      $r->print(&Apache::loncommon::head_subbox(
                      '<div style="float:right;padding-top:0;margin-top;0">'                       '<div style="float:right;padding-top:0;margin-top;0">'
                     .&Apache::lonhtmlcommon::display_usage($current_disk_usage,                      .&Apache::lonhtmlcommon::display_usage($current_disk_usage,
                                                            $disk_quota,'authoring')                                                             $disk_quota,'authoring')
                     .'</div>'                      .'</div>'
                     .&Apache::loncommon::CSTR_pageheader()));                      .&Apache::loncommon::CSTR_pageheader('','',$headertext)));
   
     my $esc_thisdisfn = &Apache::loncommon::escape_single($thisdisfn);      my $esc_thisdisfn = &Apache::loncommon::escape_single($thisdisfn);
     my $doctitle = 'LON-CAPA '.&mt($title);      my $doctitle = 'LON-CAPA '.&mt($title);
Line 410  parent.lastknownpriv='/priv$esc_thisdisf Line 420  parent.lastknownpriv='/priv$esc_thisdisf
   
 // Confirmation dialogues  // Confirmation dialogues
   
     function currdiract(theform) {  
         if (theform.dirtask.options[theform.dirtask.selectedIndex].value == 'publish') {  
             document.publishdir.filename.value = theform.filename.value;  
     document.publishdir.submit();  
         }  
         if (theform.dirtask.options[theform.dirtask.selectedIndex].value == 'editmeta') {  
             top.location=theform.filename.value+'default.meta'  
         }  
         if (theform.dirtask.options[theform.dirtask.selectedIndex].value == 'printdir' ) {  
             document.printdir.postdata.value=theform.filename.value  
             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) {
         if (theform.file == '') {          if (theform.file == '') {
             alert("Please use 'Browse..' to choose a file first, before uploading")              alert("Please use 'Browse..' to choose a file first, before uploading")
Line 512  ENDPUBDIRSCRIPT Line 503  ENDPUBDIRSCRIPT
 }  }
   
 sub dircontrols {  sub dircontrols {
     my ($r,$uname,$udom,$thisdisfn, $current_disk_usage, $disk_quota) = @_;      my ($r,$uname,$udom,$thisdisfn,$current_disk_usage,$disk_quota,$crsauthor) = @_;
     my %lt=&Apache::lonlocal::texthash(      my %lt=&Apache::lonlocal::texthash(
                                        cnpd => 'Cannot publish directory',                                         cnpd => 'Cannot publish directory',
                                        cnrd => 'Cannot retrieve directory',                                         cnrd => 'Cannot retrieve directory',
                                        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',  
                                        dedr => 'Delete Directory',  
                                        rtrv => 'Retrieve Old Version',                                         rtrv => 'Retrieve Old Version',
                                        list => 'List Directory',                                         list => 'List Directory',
                                        uplo => 'Upload file',                                           uplo => 'Upload file',  
                                        dele => 'Delete',                                         dele => 'Delete',
                                        edit => 'Edit Metadata',   
                                        sela => 'Select Action',                                         sela => 'Select Action',
                                        nfil => 'New file',                                         nfil => 'New file',
                                        nhtm => 'New HTML file',                                         nhtm => 'New HTML file',
Line 541  sub dircontrols { Line 529  sub dircontrols {
                                        copy => 'Copy current file to',                                         copy => 'Copy current file to',
                                        type => 'Type Name Here',                                         type => 'Type Name Here',
                                        go   => 'Go',                                         go   => 'Go',
                                        prnt => 'Print contents of directory',                                         crea => 'Create a new subdirectory or document',
                                        crea => 'Create a new directory or LON-CAPA document',                                         qs   => 'Quick name search',
                                        qs   => 'Quick Search',  
                                        cs   => 'Case Sensitive',                                         cs   => 'Case Sensitive',
                                        re   => 'Regular Expression',                                         re   => 'Regular Expression',
        acti => 'Actions for current directory',  
        updc => 'Upload a new document',         updc => 'Upload a new document',
        pick => 'Please select an action to perform using the new filename',         pick => 'Please select an action to perform using the new filename',
                                          shcu => 'Shortcuts',
                                       );                                        );
       my %js_lt = &Apache::lonlocal::texthash(
                                          nanf => 'Name of New File',
                                          nans => 'Name of New Subdirectory',
                                          psfn => 'Please specify file name',
       ); 
       &js_escape(\%js_lt);
     my $mytype = $lt{'type'}; # avoid conflict with " and ' in javascript      my $mytype = $lt{'type'}; # avoid conflict with " and ' in javascript
     # Calculate free space in bytes.      # Calculate free space in bytes.
     # $disk_quota is in MB and $current_disk_usage is in kB      # $disk_quota is in MB and $current_disk_usage is in kB
     my $free_space = 1024 * ((1024 * $disk_quota) - $current_disk_usage);      my $free_space = 1024 * ((1024 * $disk_quota) - $current_disk_usage);
     $r->printf(<<END,&Apache::loncommon::help_open_topic('Quicksearch'));      $r->printf(<<END,&Apache::loncommon::help_open_topic('Quicksearch'));
 <div class="LC_columnSection">  <div class="LC_columnSection">
   <div>      <div>
     <form name="curractions" method="post" action="">        <fieldset style="display:inline">
       <fieldset>              <legend>$lt{'qs'}</legend>
         <legend>$lt{'acti'}</legend>                  <script type="text/javascript" src="/adm/quicksearch/quicksearch.js"></script>
         <select name="dirtask" onchange="currdiract(this.form)">                  <input type="text" id="quickfilter" placeholder="Enter search term" onkeyup="applyFilter()"/>
             <option>$lt{'sela'}</option>                  <input type="button" value="Clear" onclick="document.getElementById(\'quickfilter\').value=\'\'; applyFilter()" />
             <option value="publish">$lt{'pubd'}</option>                  %s
             <option value="editmeta">$lt{'edit'}</option>                  <br />
             <option value="printdir">$lt{'prnt'}</option>                  <label><input type="checkbox" id="casesens" onchange="applyFilter()"/>$lt{'cs'}&nbsp;&nbsp;</label>
             <option value="delete">$lt{'dedr'}</option>                  <label><input type="checkbox" id="regex" onchange="applyFilter()"/>$lt{'re'}&nbsp;&nbsp;</label>
         </select>          </fieldset>
         <input type="hidden" name="filename" value="/priv$thisdisfn/" />  
       </fieldset>  
     </form>  
     <form name="publishdir" method="post" action="/adm/publish" target="_parent">  
       <input type="hidden" name="pubrec" value="" />  
       <input type="hidden" name="filename" value="" />  
     </form>  
     <form name="printdir" method="post" action="/adm/printout" target="_parent">  
       <input type="hidden" name="postdata" value="" />  
     </form>  
   </div>    </div>
   END
       my %fileoptions = (
                            none => "$lt{'sela'}:",
                            newfile => "$lt{'nfil'}:",
                            newhtmlfile => "$lt{'nhtm'}:",
                            newproblemfile => "$lt{'nprb'}:",
                            newdir => "$lt{'nsub'}:",
                         );
       $fileoptions{'select_form_order'} = ['none','newfile','newhtmlfile','newproblemfile'];
       if ($crsauthor) {
           push(@{$fileoptions{'select_form_order'}},'newdir');
       } else {
           my %extraoptions = (
                                 newpagefile => "$lt{'npag'}:",
                                 newsequencefile => "$lt{'nseq'}:",
                                 newrightsfile => "$lt{'ncrf'}:",
                                 newstyfile => "$lt{'nsty'}:",
                                 newtaskfile => "$lt{'nbt'}:",
                                 newlibraryfile => "$lt{'nlib'}:",
           );
           %fileoptions = (%fileoptions,%extraoptions);
           push(@{$fileoptions{'select_form_order'}},('newpagefile','newsequencefile',
                                                      'newrightsfile','newstyfile',
                                                      'newtaskfile','newlibraryfile',
                                                      'newdir'));
       }
       my $selectbox = &Apache::loncommon::select_form('none','action',\%fileoptions); 
       $r->print(<<END);
   <div style="padding-bottom: 2px">    <div style="padding-bottom: 2px">
     <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">
       <fieldset>        <fieldset>
         <legend>$lt{'updc'}</legend>          <legend>$lt{'updc'}</legend>
         <input type="hidden" name="filename" value="/priv$thisdisfn/" />          <input type="hidden" name="filename" value="/priv$thisdisfn/" />
         <input type="file" name="upfile" class="LC_flUpload" size="20" />          <input type="file" name="upfile" class="LC_flUpload" />
         <input type="hidden" id="LC_free_space" value="$free_space" />          <input type="hidden" id="LC_free_space" value="$free_space" />
         <input type="button" value="$lt{'uplo'}"  onclick="checkUpload(this.form)" />          <input type="button" value="$lt{'uplo'}"  onclick="checkUpload(this.form)" />
       </fieldset>        </fieldset>
Line 592  sub dircontrols { Line 602  sub dircontrols {
   </div>    </div>
   
   <div>    <div>
     <form name="fileaction" method="post" action="/adm/cfile" target="_parent">      <form name="fileaction" method="post" action="/adm/cfile">
       <fieldset>        <fieldset>
               <legend>$lt{'crea'}</legend>                <legend>$lt{'crea'}</legend>
       <span class="LC_nobreak">        <span class="LC_nobreak">
Line 607  sub dircontrols { Line 617  sub dircontrols {
                         }                          }
                     }                      }
                   </script>                    </script>
   <select name="action">    $selectbox&nbsp;<input type="text" id="newnameid" name="newfilename" placeholder="$lt{'type'}" value="" onfocus="if (this.value == is.empty()) this.value=''" />&nbsp;<input type="button" value="Go" onclick="validate_go();" />
     <option value="none">$lt{'sela'}</option>  
     <option value="newfile">$lt{'nfil'}:</option>  
     <option value="newhtmlfile">$lt{'nhtm'}:</option>  
     <option value="newproblemfile">$lt{'nprb'}:</option>  
                     <option value="newpagefile">$lt{'npag'}:</option>  
                     <option value="newsequencefile">$lt{'nseq'}:</option>  
                     <option value="newrightsfile">$lt{'ncrf'}:</option>  
                     <option value="newstyfile">$lt{'nsty'}:</option>  
                     <option value="newtaskfile">$lt{'nbt'}:</option>  
                     <option value="newlibraryfile">$lt{'nlib'}:</option>  
             <option value="newdir">$lt{'nsub'}:</option>  
   </select>&nbsp;<input type="text" name="newfilename" placeholder="$lt{'type'}" value="" onfocus="if (this.value == is.empty()) this.value=''" />&nbsp;<input type="button" value="Go" onclick="validate_go();" />  
  <br />   <br />
                 <span>Quickactions:                  <span>$lt{'shcu'}:
                  <input type="hidden" name="mode"/>                   <input type="hidden" name="mode"/>
                  <a href="javascript:void(0)" onclick="javascript:validate_action('blank')">                   <a href="javascript:void(0)" onclick="javascript:validate_action('blank')">
     <img src="/adm/lonIcons/unknown.gif" title="Create blank problem file"></a>      <img src="/adm/lonIcons/unknown.gif" title="Create blank problem file" alt="file icon" /></a>
                  <a href="javascript:void(0)" onclick="javascript:validate_action('problemtempl')">                    <a href="javascript:void(0)" onclick="javascript:validate_action('problemtempl')"> 
                     <img src="/adm/lonIcons/problem.gif" title="Create new problem from template"></a>                      <img src="/adm/lonIcons/problem.gif" title="Create new problem from template" alt="problem icon" /></a>
                  <a href="javascript:void(0)" onclick="javascript:validate_action('blankhtml')">                    <a href="javascript:void(0)" onclick="javascript:validate_action('blankhtml')"> 
                     <img src="/adm/lonIcons/html.gif" title="Create new blank HTML file"></a>                      <img src="/adm/lonIcons/html.gif" title="Create new blank HTML file" alt="web page icon" /></a>
                  <a href="javascript:void(0)" onclick="javascript:validate_action('folder')">                    <a href="javascript:void(0)" onclick="javascript:validate_action('folder')"> 
     <img src="/adm/lonIcons/navmap.folder.closed.gif" title="Create new subdirectory"></a>      <img src="/adm/lonIcons/navmap.folder.closed.gif" title="Create new subdirectory" alt="folder icon" /></a>
                 </span>                  </span>
                  <script type="text/javascript">                   <script type="text/javascript">
                      function validate_action(action){                       function validate_action(action){
                            if (document.getElementById('newnameid')) {
                          if (document.getElementsByName(\'newfilename\')[0].value != \'\'){                               if (document.getElementById('newnameid').value == '') {
                              if (action == "blank") {                                   var newname;
  document.fileaction.action.value=\'newproblemfile\';                                   var prompttext = "$js_lt{'nanf'}";
  document.fileaction.mode.value=\'blank\';                                   if (action == 'folder') {
  } else if (action == "problemtempl") {                                       prompttext = "$js_lt{'nans'}";
  document.fileaction.action.value=\'newproblemfile\';                                   }
                                  validate_go();                                   newname=prompt(prompttext);
                              } else if (action == "blankhtml") {                                   if (newname != '') {
                                  document.fileaction.action.value=\'newhtmlfile\';                                       document.getElementById('newnameid').value = newname;
                                  validate_go();                                   }
                              } else if (action == "folder") {                               }
                                  document.fileaction.action.value=\'newdir\';                               if (document.getElementById('newnameid').value != '') {
                                  document.fileaction.mode.value=\'folder\';                                   if (action == 'blank') {
        document.fileaction.action.value='newproblemfile';
        document.fileaction.mode.value='blank';
            } else if (action == 'problemtempl') {
        document.fileaction.action.value='newproblemfile';
                                        validate_go();
                                    } else if (action == 'blankhtml') {
                                        document.fileaction.action.value='newhtmlfile';
                                        validate_go();
                                    } else if (action == 'folder') {
                                        document.fileaction.action.value='newdir';
                                        document.fileaction.mode.value='folder';
                                    }
                                    fileaction.submit();
                                } else {
                                    alert("$js_lt{'psfn'}");
                              }                               }
                              fileaction.submit();  
                          } else {  
                              alert(\'Please specify file name.\');  
                              // TODO: ask for filename? if so, do some refactoring  
   
                          }                           }
                      }                       }
                  </script>                   </script>
Line 661  sub dircontrols { Line 669  sub dircontrols {
       </fieldset>        </fieldset>
     </form>      </form>
     </div>      </div>
     <div>  
       <fieldset style="display:inline">  
             <legend>$lt{'qs'}</legend>  
                 <script type="text/javascript" src="/adm/quicksearch/quicksearch.js"></script>  
                 <input type="text" id="quickfilter" placeholder="Enter search term" onkeyup="applyFilter()"/>  
                 <input type="button" value="Clear" onclick="document.getElementById(\'quickfilter\').value=\'\'; applyFilter()" />  
                 %s  
                 <br />  
                 <label><input type="checkbox" id="casesens" onchange="applyFilter()"/>$lt{'cs'}&nbsp;&nbsp;</label>  
                 <label><input type="checkbox" id="regex" onchange="applyFilter()"/>$lt{'re'}&nbsp;&nbsp;</label>  
         </fieldset>  
   </div>  
 </div>  </div>
 END  END
 }  }
Line 680  END Line 676  END
 sub resourceactions {  sub resourceactions {
     my ($r,$uname,$udom,$thisdisfn) = @_;      my ($r,$uname,$udom,$thisdisfn) = @_;
     $r->print(<<END);      $r->print(<<END);
        <form name="moveresource" action="/adm/cfile" target="_parent" method="post">         <form name="moveresource" action="/adm/cfile" method="post">
          <input type="hidden" name="filename" value="" />           <input type="hidden" name="filename" value="" />
          <input type="hidden" name="newfilename" value="" />           <input type="hidden" name="newfilename" value="" />
          <input type="hidden" name="action" value="" />           <input type="hidden" name="action" value="" />
        </form>         </form>
        <form name="delresource" action="/adm/cfile" target="_parent" method="post">         <form name="delresource" action="/adm/cfile" method="post">
          <input type="hidden" name="filename" value="" />           <input type="hidden" name="filename" value="" />
          <input type="hidden" name="action" value="delete" />           <input type="hidden" name="action" value="delete" />
        </form>         </form>
        <form name="pubresource" action="/adm/publish" target="_parent" method="post">         <form name="pubresource" action="/adm/publish" method="post">
          <input type="hidden" name="filename" value="" />           <input type="hidden" name="filename" value="" />
          <input type="hidden" name="makeobsolete" value="0" />           <input type="hidden" name="makeobsolete" value="0" />
        </form>         </form>
        <form name="printresource" action="/adm/printout" target="_parent" method="post">         <form name="printresource" action="/adm/printout" method="post">
            <input type="hidden" name="postdata" value="" />             <input type="hidden" name="postdata" value="" />
        </form>         </form>
        <form name="retrieveres" action="/adm/retrieve" target="_parent" method="post">         <form name="retrieveres" action="/adm/retrieve" method="post">
            <input type="hidden" name="filename" value="" />             <input type="hidden" name="filename" value="" />
        </form>         </form>
        <form name="cleanup" action="/adm/cleanup" target="_parent" method="post">         <form name="cleanup" action="/adm/cleanup" method="post">
            <input type="hidden" name="filename" value="" />             <input type="hidden" name="filename" value="" />
        </form>         </form>
 END  END
Line 777  sub putdirectory { Line 773  sub putdirectory {
         } else {          } else {
             $actionitem =               $actionitem = 
                     '<form name="dirselect_'.$$numdir.                      '<form name="dirselect_'.$$numdir.
                     '" action="/adm/publish" target="_parent">'.                      '" action="/adm/publish">'.
                     '<select name="diraction" onchange="SetPubDir(this.form,document)">'.                      '<select name="diraction" onchange="SetPubDir(this.form,document)">'.
                       '<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>'.
Line 796  sub putdirectory { Line 792  sub putdirectory {
   '<td><img src="'.    '<td><img src="'.
   $Apache::lonnet::perlvar{'lonIconsURL'}.'/navmap.folder.closed.gif" alt="folder" /></td>'.    $Apache::lonnet::perlvar{'lonIconsURL'}.'/navmap.folder.closed.gif" alt="folder" /></td>'.
   '<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,'<>&"').'/">'.
   $disfilename.'</a></span></td>'.    $disfilename.'</a></span></td>'.
         '<td colspan="3">'.($kaputt?&Apache::lonhtmlcommon::authorbombs($targetdir.'/'.$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 '') {
Line 855  sub isMetaSame { Line 851  sub isMetaSame {
   
 sub getStatus {      sub getStatus {    
     my ($resdir, $targetdir, $cstr_dir, $filename,        my ($resdir, $targetdir, $cstr_dir, $filename,  
             $linkfilename, $cmtime, $meta_same) = @_;          $linkfilename, $crsauthor, $cmtime, $meta_same) = @_;
     my $pubstatus = 'unpublished';      my $pubstatus = 'unpublished';
     my $status = &mt('Unpublished');      my $status = &mt('Unpublished');
   
Line 881  sub getStatus { Line 877  sub getStatus {
         );          );
         $rights_status .=          $rights_status .=
             $lt_SourceRight{&getSourceRightString($targetdir.'/'.$filename)};              $lt_SourceRight{&getSourceRightString($targetdir.'/'.$filename)};
           if (($crsauthor) && ($filename =~ /\.rights$/)) {
               $rights_status =~ s/,\s+$//;
           }
  if ($same) {   if ($same) {
     if (&Apache::lonnet::metadata($targetdir.'/'.$filename,'obsolete')) {      if (&Apache::lonnet::metadata($targetdir.'/'.$filename,'obsolete')) {
                 $pubstatus = 'obsolete';                  $pubstatus = 'obsolete';
Line 899  sub getStatus { Line 897  sub getStatus {
             $pubstatus = 'modified';              $pubstatus = 'modified';
     $status=&mt('Modified').      $status=&mt('Modified').
  '<br />'. $rights_status;   '<br />'. $rights_status;
     if (&Apache::loncommon::fileembstyle(($filename=~/\.(\w+)$/)) eq 'ssi') {              unless (($crsauthor) && ($filename =~ /\.rights$/)) {
  $status.='<br />'.          if (&Apache::loncommon::fileembstyle(($filename=~/\.(\w+)$/)) eq 'ssi') {
                          &Apache::loncommon::modal_link(      $status.='<br />'.
                              '/adm/diff?filename='.$linkfilename.'&amp;versiontwo=priv',                               &Apache::loncommon::modal_link(
                              &mt('Diffs'),600,500);                                   '/adm/diff?filename='.$linkfilename.'&amp;versiontwo=priv',
                                    &mt('Diffs'),600,500);
           }
     }      }
  }    }
   
  $status.="\n".'<br />'.          unless (($crsauthor) && ($filename =~ /\.rights$/)) {
              &Apache::loncommon::modal_link(      $status.="\n".'<br />'.
                  '/adm/retrieve?filename='.$linkfilename.'&amp;inhibitmenu=yes&amp;add_modal=yes',&mt('Retrieve'),600,500);                   &Apache::loncommon::modal_link(
                        '/adm/retrieve?filename='.$linkfilename.'&amp;inhibitmenu=yes&amp;add_modal=yes',&mt('Retrieve'),600,500);
           }
     }      }
   
     return ($status, $pubstatus);      return ($status, $pubstatus);
Line 920  sub getStatus { Line 922  sub getStatus {
 #   Put a table row for a file resource.  #   Put a table row for a file resource.
 #  #
 sub putresource {  sub putresource {
     my ($r, $udom, $uname, $filename, $thisdisfn, $resdir, $targetdir,       my ($r, $udom, $uname, $filename, $thisdisfn, $resdir,
             $linkdir, $cmtime, $size, $numres, $linkfilename, $title,           $targetdir, $linkdir, $crsauthor, $cmtime, $size,
             $status, $pubstatus) = @_;          $numres, $linkfilename, $title, $status, $pubstatus) = @_; 
     &Apache::lonnet::devalidate_cache_new('meta',$targetdir.'/'.$filename);      &Apache::lonnet::devalidate_cache_new('meta',$targetdir.'/'.$filename);
   
     my $editlink='';      my $editlink='';
Line 941  sub putresource { Line 943  sub putresource {
         }          }
     }      }
     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.'">'.&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='.$linkfilename.'">'.&mt('Decompress').'</a>)';   $editlink=' (<a href="/adm/cfile?decompress='.$linkfilename.'">'.&mt('Decompress').'</a>)';
     }      }
     my $publish_button = (-e $resdir.'/'.$filename) ? &mt('Re-publish') : &mt('Publish');      my $publish_button = (-e $resdir.'/'.$filename) ? &mt('Re-publish') : &mt('Publish');
     my $pub_select = '';      my $pub_select = '';
     &create_pubselect($r,\$pub_select,$udom,$uname,$thisdisfn,$filename,$resdir,$pubstatus,$publish_button,$numres);      unless (($crsauthor) && ($filename=~ /\.rights$/)) {
           &create_pubselect($r,\$pub_select,$udom,$uname,$thisdisfn,$filename,$resdir,$pubstatus,$publish_button,$numres);
       }
     $r->print(&Apache::loncommon::start_data_table_row().      $r->print(&Apache::loncommon::start_data_table_row().
       '<td>'.($filename=~/[\#\~]$/?'&nbsp;':        '<td>'.($filename=~/[\#\~]$/?'&nbsp;':
       '<img src="'.&Apache::loncommon::icon($filename).'" alt="" />').'</td>'.        '<img src="'.&Apache::loncommon::icon($filename).'" alt="" />').'</td>'.
               '<td>'.$pub_select.'</td>'.                '<td>'.$pub_select.'</td>'.
       '<td><span class="LC_filename">'.        '<td><span class="LC_filename">'.
       '<a href="'.$linkdir.'/'.$filename.'" target="_parent">'.        '<a href="'.$linkdir.'/'.$filename.'">'.
                $filename.'</a></span>'.$editlink2.$editlink.                 $filename.'</a></span>'.$editlink2.$editlink.
       '</td>'.        '</td>'.
       '<td>'.$title.'</td>'.        '<td>'.$title.'</td>'.

Removed from v.1.173  
changed lines
  Added in v.1.179


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