]> source.dussan.org Git - nextcloud-server.git/commitdiff
adapt free space calculation to the way it is done for the trash bin
authorBjörn Schießle <schiessle@owncloud.com>
Tue, 16 Apr 2013 11:52:46 +0000 (13:52 +0200)
committerBjörn Schießle <schiessle@owncloud.com>
Wed, 17 Apr 2013 08:43:12 +0000 (10:43 +0200)
apps/files_versions/lib/versions.php

index 47d044873ad731399af81dcc1279ba558c7253ce..c38ba688fe086e4e8e0d72011b04a84d90d5ca5c 100644 (file)
@@ -378,12 +378,14 @@ class Storage {
                        $versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions');
 
                        // get available disk space for user
+                       $softQuota = true;
                        $quota = \OC_Preferences::getValue($uid, 'files', 'quota');
                        if ( $quota === null || $quota === 'default') {
                                $quota = \OC_Appconfig::getValue('files', 'default_quota');
                        }
                        if ( $quota === null || $quota === 'none' ) {
-                               $quota = \OC\Files\Filesystem::free_space('/') / count(\OCP\User::getUsers());
+                               $quota = \OC\Files\Filesystem::free_space('/');
+                               $softQuota = false;
                        } else {
                                $quota = \OCP\Util::computerFileSize($quota);
                        }
@@ -397,15 +399,21 @@ class Storage {
                        }
 
                        // calculate available space for version history
-                       $files_view = new \OC\Files\View('/'.$uid.'/files');
-                       $rootInfo = $files_view->getFileInfo('/');
-                       $free = $quota-$rootInfo['size']; // remaining free space for user
-                       if ( $free > 0 ) {
-                               $availableSpace = ($free * self::DEFAULTMAXSIZE / 100) - $versionsSize; // how much space can be used for versions
+                       // subtract size of files and current versions size from quota
+                       if ($softQuota) {
+                               $files_view = new \OC\Files\View('/'.$uid.'/files');
+                               $rootInfo = $files_view->getFileInfo('/');
+                               $free = $quota-$rootInfo['size']; // remaining free space for user
+                               if ( $free > 0 ) {
+                                       $availableSpace = ($free * self::DEFAULTMAXSIZE / 100) - $versionsSize; // how much space can be used for versions
+                               } else {
+                                       $availableSpace = $free-$versionsSize;
+                               }
                        } else {
-                               $availableSpace = $free-$versionsSize;
+                               $availableSpace = $quota;
                        }
 
+
                        // after every 1000s run reduce the number of all versions not only for the current file
                        $random = rand(0, 1000);
                        if ($random == 0) {