Diff for /loncom/publisher/lonpubdir.pm between versions 1.160.2.1 and 1.160.2.5.2.1

version 1.160.2.1, 2016/08/07 20:23:42 version 1.160.2.5.2.1, 2022/05/27 18:04:26
Line 80  sub handler { Line 80  sub handler {
         }          }
     }      }
     $thisdisfn=~s/^\Q$docroot\E\/priv//;      $thisdisfn=~s/^\Q$docroot\E\/priv//;
       
     my $resdir=$docroot.'/res'.$thisdisfn; # Resource directory      my $resdir=$docroot.'/res'.$thisdisfn; # Resource directory
     my $targetdir='/res'.$thisdisfn; # Publication target directory.      my $targetdir='/res'.$thisdisfn; # Publication target directory.
     my $linkdir='/priv'.$thisdisfn;      # Full URL name of constr space.      my $linkdir='/priv'.$thisdisfn;      # Full URL name of constr space.
   
     my %bombs=&Apache::lonmsg::all_url_author_res_msg($uname,$udom);      my %bombs=&Apache::lonmsg::all_url_author_res_msg($uname,$udom);
   
     &startpage($r, $uname, $udom, $thisdisfn);  # Put out the start of page.      my $londocroot = $Apache::lonnet::perlvar{'lonDocRoot'};
       my $current_disk_usage = &Apache::lonnet::diskusage($udom,$uname,
                                   "$londocroot/priv/$udom/$uname"); # expressed in kB
       my $disk_quota = &Apache::loncommon::get_user_quota($uname,$udom,
                                                    'author'); # expressed in MB
   
       # Put out the start of page.
       &startpage($r, $uname, $udom, $thisdisfn, $current_disk_usage, $disk_quota);
   
     if (!-d $fn) {      if (!-d $fn) {
         if (-e $fn) {          if (-e $fn) {
Line 108  sub handler { Line 115  sub handler {
         return OK;          return OK;
     }      }
   
     &dircontrols($r,$uname,$udom,$thisdisfn);   # Put out actions for directory,       # Put out actions for directory, browse/upload + new file page.
                                                 # browse/upload + new file page.      &dircontrols($r,$uname,$udom,$thisdisfn, $current_disk_usage, $disk_quota);
     &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 187  sub handler { Line 194  sub handler {
         } else { $idx = 2; } # No arrow if column is not sorted          } else { $idx = 2; } # No arrow if column is not sorted
         $output .= (($columns{$key}{order}) ?          $output .= (($columns{$key}{order}) ?
             '<th'.($columns{$key}{colspan} ? ' colspan="'.$columns{$key}{colspan}.'"' : '')              '<th'.($columns{$key}{colspan} ? ' colspan="'.$columns{$key}{colspan}.'"' : '')
             .'><a href="'.$linkdir.'/?sortby='.$key.'&sortorder='              .'><a href="'.$linkdir.'/?sortby='.$key.'&amp;sortorder='
             .((($sortby eq $key) && ($sortorder ne 'rev')) ? 'rev' : '').'">'              .((($sortby eq $key) && ($sortorder ne 'rev')) ? 'rev' : '').'">'
             .$columns{$key}{text}.$arrows[$idx].'</a></th>' :              .$columns{$key}{text}.$arrows[$idx].'</a></th>' :
             '<th>'.$columns{$key}{text}.'</th>');              '<th>'.$columns{$key}{text}.'</th>');
Line 311  sub handler { Line 318  sub handler {
 #   - The HTML header   #   - The HTML header 
 #   - The H1/H3  stuff which includes the directory.  #   - The H1/H3  stuff which includes the directory.
 #  #
 #     startpage($r, $uame, $udom, $thisdisfn);  #     startpage($r, $uame, $udom, $thisdisfn, $current_disk_usage, $disk_quota);
 #      $r     - The apache request object.  #      $r     - The apache request object.
 #      $uname - User name.  #      $uname - User name.
 #      $udom  - Domain name the user is logged in under.  #      $udom  - Domain name the user is logged in under.
 #      $thisdisfn - Displayable version of the filename.  #      $thisdisfn - Displayable version of the filename.
   #      $current_disk_usage - User's current disk usage (in kB).
   #      $disk_quota - Disk quota for user's authoring space (in MB).
   #      $crstype - Course type, if this is for "course author"
   
 sub startpage {  sub startpage {
     my ($r, $uname, $udom, $thisdisfn) = @_;      my ($r, $uname, $udom, $thisdisfn, $current_disk_usage, $disk_quota) = @_;
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
   
Line 340  sub startpage { Line 350  sub startpage {
     my $londocroot = $Apache::lonnet::perlvar{'lonDocRoot'};      my $londocroot = $Apache::lonnet::perlvar{'lonDocRoot'};
     my $current_disk_usage = &Apache::lonnet::diskusage($udom,$uname,"$londocroot/priv/$udom/$uname");      my $current_disk_usage = &Apache::lonnet::diskusage($udom,$uname,"$londocroot/priv/$udom/$uname");
     my $disk_quota = &Apache::loncommon::get_user_quota($uname,$udom,'author'); #expressed in MB      my $disk_quota = &Apache::loncommon::get_user_quota($uname,$udom,'author'); #expressed in MB
     $disk_quota = 1000 * $disk_quota; # convert from MB to kB      $disk_quota = 1024 * $disk_quota; # convert from MB to kB
   
     $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">'
Line 463  ENDPUBDIRSCRIPT Line 473  ENDPUBDIRSCRIPT
 }  }
   
 sub dircontrols {  sub dircontrols {
     my ($r,$uname,$udom,$thisdisfn) = @_;      my ($r,$uname,$udom,$thisdisfn, $current_disk_usage, $disk_quota) = @_;
     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',
Line 499  sub dircontrols { Line 509  sub dircontrols {
        pick => 'Please select an action to perform using the new filename',         pick => 'Please select an action to perform using the new filename',
                                       );                                        );
     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.
       # $disk_quota is in MB and $current_disk_usage is in kB
       my $free_space = 1024 * ((1024 * $disk_quota) - $current_disk_usage);
     $r->print(<<END);      $r->print(<<END);
 <div class="LC_columnSection">  <div class="LC_columnSection">
   <div>    <div>
Line 515  sub dircontrols { Line 528  sub dircontrols {
         <input type="hidden" name="filename" value="/priv$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">
       <input type="hidden" name="pubrec" value="" />        <input type="hidden" name="pubrec" value="" />
       <input type="hidden" name="filename" value="" />        <input type="hidden" name="filename" value="" />
     </form>      </form>
     <form name="printdir" method="post" action="/adm/printout" target="_parent">      <form name="printdir" method="post" action="/adm/printout">
       <input type="hidden" name="postdata" value="" />        <input type="hidden" name="postdata" value="" />
     </form>      </form>
   </div>    </div>
   
   <div>    <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" size="20" />          <input type="file" name="upfile" class="LC_flUpload" size="20" />
           <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>
     </form>      </form>
   </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 563  sub dircontrols { Line 577  sub dircontrols {
                     <option value="newtaskfile">$lt{'nbt'}:</option>                      <option value="newtaskfile">$lt{'nbt'}:</option>
                     <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="$lt{'type'}" onfocus="if (this.value == '$mytype') this.value=''" />&nbsp;<input type="button" value="Go" onclick="validate_go();" />    </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 />
                   <span>Quickactions:
                    <input type="hidden" name="mode"/>
                    <a href="javascript:void(0)" onclick="javascript:validate_action('blank')">
                       <img src="/adm/lonIcons/unknown.gif" title="Create blank problem file"></a>
                    <a href="javascript:void(0)" onclick="javascript:validate_action('problemtempl')">
                       <img src="/adm/lonIcons/problem.gif" title="Create new problem from template"></a>
                    <a href="javascript:void(0)" onclick="javascript:validate_action('blankhtml')">
                       <img src="/adm/lonIcons/html.gif" title="Create new blank HTML file"></a>
                    <a href="javascript:void(0)" onclick="javascript:validate_action('folder')">
                       <img src="/adm/lonIcons/navmap.folder.closed.gif" title="Create new subdirectory"></a>
                   </span>
                    <script type="text/javascript">
                        function validate_action(action){
   
                            if (document.getElementsByName(\'newfilename\')[0].value != \'\'){
                                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(\'Please specify file name.\');
                                // TODO: ask for filename? if so, do some refactoring
   
                            }
                        }
                    </script>
  </span>   </span>
       </fieldset>        </fieldset>
     </form>      </form>
Line 575  END Line 626  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 672  sub putdirectory { Line 723  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 691  sub putdirectory { Line 742  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 830  sub putresource { Line 881  sub putresource {
  $editlink2=' <br />(<a href="'.$linkdir.'/'.$filename.'?editmode=Edit&amp;problemmode=edit">'.&mt('Edit').'</a>)';   $editlink2=' <br />(<a href="'.$linkdir.'/'.$filename.'?editmode=Edit&amp;problemmode=edit">'.&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='.$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 = '';
Line 843  sub putresource { Line 894  sub putresource {
       '<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.160.2.1  
changed lines
  Added in v.1.160.2.5.2.1


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