From b9906fb21e9f1aadf14e473b8c26a2ec7537fa11 Mon Sep 17 00:00:00 2001 From: John Molakvoæ Date: Wed, 4 Jan 2023 19:06:52 +0100 Subject: feat(files): Quota in navigation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ --- apps/files/lib/Controller/ViewController.php | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'apps/files/lib/Controller/ViewController.php') diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php index 0594b63f56b..b607764e602 100644 --- a/apps/files/lib/Controller/ViewController.php +++ b/apps/files/lib/Controller/ViewController.php @@ -136,11 +136,11 @@ class ViewController extends Controller { * @return array * @throws \OCP\Files\NotFoundException */ - protected function getStorageInfo() { + protected function getStorageInfo(string $dir = '/') { \OC_Util::setupFS(); - $dirInfo = \OC\Files\Filesystem::getFileInfo('/', false); + $rootInfo = \OC\Files\Filesystem::getFileInfo('/', false); - return \OC_Helper::getStorageInfo('/', $dirInfo); + return \OC_Helper::getStorageInfo($dir, $rootInfo ?: null); } /** @@ -241,18 +241,16 @@ class ViewController extends Controller { $nav->assign('navigationItems', $navItems); - $nav->assign('usage', \OC_Helper::humanFileSize($storageInfo['used'])); - if ($storageInfo['quota'] === \OCP\Files\FileInfo::SPACE_UNLIMITED) { - $totalSpace = $this->l10n->t('Unlimited'); - } else { - $totalSpace = \OC_Helper::humanFileSize($storageInfo['total']); - } - $nav->assign('total_space', $totalSpace); - $nav->assign('quota', $storageInfo['quota']); - $nav->assign('usage_relative', $storageInfo['relative']); - $contentItems = []; + try { + // If view is files, we use the directory, otherwise we use the root storage + $storageInfo = $this->getStorageInfo(($view === 'files' && $dir) ? $dir : '/'); + } catch(\Exception $e) { + $storageInfo = $this->getStorageInfo(); + } + + $this->initialState->provideInitialState('storageStats', $storageInfo); $this->initialState->provideInitialState('navigation', $navItems); $this->initialState->provideInitialState('config', $this->userConfig->getConfigs()); -- cgit v1.2.3