From: Björn Schießle Date: Tue, 16 Apr 2013 11:52:46 +0000 (+0200) Subject: adapt free space calculation to the way it is done for the trash bin X-Git-Tag: v6.0.0alpha2~893 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=ddde1b65db36507b30aa42e991c9b50312f7c97f;p=nextcloud-server.git adapt free space calculation to the way it is done for the trash bin --- diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php index 47d044873ad..c38ba688fe0 100644 --- a/apps/files_versions/lib/versions.php +++ b/apps/files_versions/lib/versions.php @@ -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) {