[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /publisher lonpubdir.pm

raeburn raeburn at source.lon-capa.org
Tue Aug 13 13:01:24 EDT 2019


raeburn		Tue Aug 13 17:01:24 2019 EDT

  Modified files:              (Branch: version_2_11_X)
    /loncom/publisher	lonpubdir.pm 
  Log:
  - For 2.11
    Backport 1.164, 1.171, 1.172, 1.173
  
  
Index: loncom/publisher/lonpubdir.pm
diff -u loncom/publisher/lonpubdir.pm:1.160.2.3 loncom/publisher/lonpubdir.pm:1.160.2.4
--- loncom/publisher/lonpubdir.pm:1.160.2.3	Sun Apr  2 21:58:53 2017
+++ loncom/publisher/lonpubdir.pm	Tue Aug 13 17:01:24 2019
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Authoring Space Directory Lister
 #
-# $Id: lonpubdir.pm,v 1.160.2.3 2017/04/02 21:58:53 raeburn Exp $
+# $Id: lonpubdir.pm,v 1.160.2.4 2019/08/13 17:01:24 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -80,14 +80,21 @@
         }
     }
     $thisdisfn=~s/^\Q$docroot\E\/priv//;
-    
+
     my $resdir=$docroot.'/res'.$thisdisfn; # Resource directory
     my $targetdir='/res'.$thisdisfn; # Publication target directory.
     my $linkdir='/priv'.$thisdisfn;      # Full URL name of constr space.
 
     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,
+                                                 $cstr,$crstype); # expressed in MB
+
+    # Put out the start of page.
+    &startpage($r, $uname, $udom, $thisdisfn, $current_disk_usage, $disk_quota, $crsauthor);
 
     if (!-d $fn) {
         if (-e $fn) {
@@ -108,8 +115,8 @@
         return OK;
     }
 
-    &dircontrols($r,$uname,$udom,$thisdisfn);   # 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);
     &resourceactions($r,$uname,$udom,$thisdisfn); # Put out form used for printing/deletion etc.
 
     my $numdir = 0;
@@ -187,7 +194,7 @@
         } else { $idx = 2; } # No arrow if column is not sorted
         $output .= (($columns{$key}{order}) ?
             '<th'.($columns{$key}{colspan} ? ' colspan="'.$columns{$key}{colspan}.'"' : '')
-            .'><a href="'.$linkdir.'/?sortby='.$key.'&sortorder='
+            .'><a href="'.$linkdir.'/?sortby='.$key.'&sortorder='
             .((($sortby eq $key) && ($sortorder ne 'rev')) ? 'rev' : '').'">'
             .$columns{$key}{text}.$arrows[$idx].'</a></th>' :
             '<th>'.$columns{$key}{text}.'</th>');
@@ -311,14 +318,17 @@
 #   - The HTML header 
 #   - 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.
 #      $uname - User name.
 #      $udom  - Domain name the user is logged in under.
 #      $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 {
-    my ($r, $uname, $udom, $thisdisfn) = @_;
+    my ($r, $uname, $udom, $thisdisfn, $current_disk_usage, $disk_quota) = @_;
     &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;
 
@@ -340,7 +350,7 @@
     my $londocroot = $Apache::lonnet::perlvar{'lonDocRoot'};
     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
-    $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(
                      '<div style="float:right;padding-top:0;margin-top;0">'
@@ -463,7 +473,7 @@
 }
 
 sub dircontrols {
-    my ($r,$uname,$udom,$thisdisfn) = @_;
+    my ($r,$uname,$udom,$thisdisfn, $current_disk_usage, $disk_quota) = @_;
     my %lt=&Apache::lonlocal::texthash(
                                        cnpd => 'Cannot publish directory',
                                        cnrd => 'Cannot retrieve directory',
@@ -499,6 +509,9 @@
 				       pick => 'Please select an action to perform using the new filename',
                                       );
     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);
 <div class="LC_columnSection">
   <div>
@@ -529,7 +542,8 @@
       <fieldset>
         <legend>$lt{'updc'}</legend>
         <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)" />
       </fieldset>
     </form>




More information about the LON-CAPA-cvs mailing list