Merge pull request #6964 from owncloud/storagestatistics-reuse

Reuse the calculated free_space in buildFileStorageStatistics
This commit is contained in:
icewind1991 2014-02-12 15:48:14 +01:00
commit 7af456730e
3 changed files with 19 additions and 14 deletions

View File

@ -5,14 +5,14 @@ namespace OCA\Files;
class Helper
{
public static function buildFileStorageStatistics($dir) {
$l = new \OC_L10N('files');
$maxUploadFilesize = \OCP\Util::maxUploadFilesize($dir);
$maxHumanFilesize = \OCP\Util::humanFileSize($maxUploadFilesize);
$maxHumanFilesize = $l->t('Upload') . ' max. ' . $maxHumanFilesize;
// information about storage capacities
$storageInfo = \OC_Helper::getStorageInfo($dir);
$l = new \OC_L10N('files');
$maxUploadFilesize = \OCP\Util::maxUploadFilesize($dir, $storageInfo['free']);
$maxHumanFilesize = \OCP\Util::humanFileSize($maxUploadFilesize);
$maxHumanFilesize = $l->t('Upload') . ' max. ' . $maxHumanFilesize;
return array('uploadMaxFilesize' => $maxUploadFilesize,
'maxHumanFilesize' => $maxHumanFilesize,
'freeSpace' => $storageInfo['free'],

View File

@ -804,18 +804,22 @@ class OC_Helper {
/**
* @brief calculates the maximum upload size respecting system settings, free space and user quota
*
* @param $dir the current folder where the user currently operates
* @return number of bytes representing
* @param string $dir the current folder where the user currently operates
* @param int $freeSpace the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly
* @return int number of bytes representing
*/
public static function maxUploadFilesize($dir) {
return min(self::freeSpace($dir), self::uploadLimit());
public static function maxUploadFilesize($dir, $freeSpace = null) {
if (is_null($freeSpace)){
$freeSpace = self::freeSpace($dir);
}
return min($freeSpace, self::uploadLimit());
}
/**
* Calculate free space left within user quota
*
* @param $dir the current folder where the user currently operates
* @return number of bytes representing
* @param string $dir the current folder where the user currently operates
* @return int number of bytes representing
*/
public static function freeSpace($dir) {
$freeSpace = \OC\Files\Filesystem::free_space($dir);

View File

@ -460,11 +460,12 @@ class Util {
/**
* calculates the maximum upload size respecting system settings, free space and user quota
*
* @param $dir the current folder where the user currently operates
* @param string $dir the current folder where the user currently operates
* @param int $free the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly
* @return number of bytes representing
*/
public static function maxUploadFilesize($dir) {
return \OC_Helper::maxUploadFilesize($dir);
public static function maxUploadFilesize($dir, $free = null) {
return \OC_Helper::maxUploadFilesize($dir, $free);
}
/**