summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-03-10 15:19:18 +0100
committerVincent Petry <pvince81@owncloud.com>2014-03-10 17:59:14 +0100
commit010eef95c0c5cebd03b03645d29847638e064bd5 (patch)
treeb44bd736a2b3fee1d2abde614653f7d9317d448d /lib
parent3eb58d9973706b1cc3f51f024e362779d278ee49 (diff)
downloadnextcloud-server-010eef95c0c5cebd03b03645d29847638e064bd5.tar.gz
nextcloud-server-010eef95c0c5cebd03b03645d29847638e064bd5.zip
Fixed total space display when data size exceeds quota
The total space display in the personal page now shows the quota value instead of used space when used space exceeds the quota (soft quota).
Diffstat (limited to 'lib')
-rw-r--r--lib/private/files/storage/wrapper/quota.php7
-rw-r--r--lib/private/helper.php11
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/private/files/storage/wrapper/quota.php b/lib/private/files/storage/wrapper/quota.php
index 26c952e694a..0e0d5b13104 100644
--- a/lib/private/files/storage/wrapper/quota.php
+++ b/lib/private/files/storage/wrapper/quota.php
@@ -30,6 +30,13 @@ class Quota extends Wrapper {
}
/**
+ * @return quota value
+ */
+ public function getQuota() {
+ return $this->quota;
+ }
+
+ /**
* @param string $path
*/
protected function getSize($path) {
diff --git a/lib/private/helper.php b/lib/private/helper.php
index b9956d5ec1c..0b1a26bbecd 100644
--- a/lib/private/helper.php
+++ b/lib/private/helper.php
@@ -914,13 +914,22 @@ class OC_Helper {
if ($used < 0) {
$used = 0;
}
- $free = \OC\Files\Filesystem::free_space($path);
+ $quota = 0;
+ // TODO: need a better way to get total space from storage
+ $storage = $rootInfo->getStorage();
+ if ($storage instanceof \OC\Files\Storage\Wrapper\Quota) {
+ $quota = $storage->getQuota();
+ }
+ $free = $storage->free_space('');
if ($free >= 0) {
$total = $free + $used;
} else {
$total = $free; //either unknown or unlimited
}
if ($total > 0) {
+ if ($quota > 0 && $total > $quota) {
+ $total = $quota;
+ }
// prevent division by zero or error codes (negative values)
$relative = round(($used / $total) * 10000) / 100;
} else {