From 62ae39208a0deed71d4cd373c6822946fd489586 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 5 Jun 2015 18:21:41 +0200 Subject: [PATCH] Add owner to the storage stats to enable better notifications * getstoragestats.php returns now the owner and it's display name * show proper storage stats notifications for shared folders --- apps/files/index.php | 2 ++ apps/files/js/files.js | 16 +++++++++++++++- apps/files/lib/helper.php | 4 +++- apps/files/templates/index.php | 2 ++ lib/private/helper.php | 16 +++++++++++++++- 5 files changed, 37 insertions(+), 3 deletions(-) diff --git a/apps/files/index.php b/apps/files/index.php index c7a45e5485..ee12df5f07 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -138,6 +138,8 @@ OCP\Util::addscript('files', 'navigation'); OCP\Util::addscript('files', 'keyboardshortcuts'); $tmpl = new OCP\Template('files', 'index', 'user'); $tmpl->assign('usedSpacePercent', (int)$storageInfo['relative']); +$tmpl->assign('owner', $storageInfo['owner']); +$tmpl->assign('ownerDisplayName', $storageInfo['ownerDisplayName']); $tmpl->assign('isPublic', false); $tmpl->assign("mailNotificationEnabled", $config->getAppValue('core', 'shareapi_allow_mail_notification', 'no')); $tmpl->assign("mailPublicNotificationEnabled", $config->getAppValue('core', 'shareapi_allow_public_notification', 'no')); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 68e9315954..44868e78bd 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -63,6 +63,8 @@ $('#free_space').val(response.data.freeSpace); $('#upload.button').attr('original-title', response.data.maxHumanFilesize); $('#usedSpacePercent').val(response.data.usedSpacePercent); + $('#owner').val(response.data.owner); + $('#ownerDisplayName').val(response.data.ownerDisplayName); Files.displayStorageWarnings(); } if (response[0] === undefined) { @@ -109,12 +111,24 @@ return; } - var usedSpacePercent = $('#usedSpacePercent').val(); + var usedSpacePercent = $('#usedSpacePercent').val(), + owner = $('#owner').val(), + ownerDisplayName = $('#ownerDisplayName').val(); if (usedSpacePercent > 98) { + if (owner !== oc_current_user) { + OC.Notification.show(t('files', 'Storage of {owner} is full, files can not be updated or synced anymore!', + { owner: ownerDisplayName })); + return; + } OC.Notification.show(t('files', 'Your storage is full, files can not be updated or synced anymore!')); return; } if (usedSpacePercent > 90) { + if (owner !== oc_current_user) { + OC.Notification.show(t('files', 'Storage of {owner} is almost full ({usedSpacePercent}%)', + { usedSpacePercent: usedSpacePercent, owner: ownerDisplayName })); + return; + } OC.Notification.show(t('files', 'Your storage is almost full ({usedSpacePercent}%)', {usedSpacePercent: usedSpacePercent})); } diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php index e966e60d00..6bfdc0a095 100644 --- a/apps/files/lib/helper.php +++ b/apps/files/lib/helper.php @@ -52,7 +52,9 @@ class Helper { 'uploadMaxFilesize' => $maxUploadFileSize, 'maxHumanFilesize' => $maxHumanFileSize, 'freeSpace' => $storageInfo['free'], - 'usedSpacePercent' => (int)$storageInfo['relative'] + 'usedSpacePercent' => (int)$storageInfo['relative'], + 'owner' => $storageInfo['owner'], + 'ownerDisplayName' => $storageInfo['ownerDisplayName'], ]; } diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 77f80bc346..a068f306ac 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -11,6 +11,8 @@ + + diff --git a/lib/private/helper.php b/lib/private/helper.php index 981447c213..f4de5b0d9f 100644 --- a/lib/private/helper.php +++ b/lib/private/helper.php @@ -1008,7 +1008,21 @@ class OC_Helper { $relative = 0; } - return array('free' => $free, 'used' => $used, 'total' => $total, 'relative' => $relative); + $ownerId = $storage->getOwner($path); + $ownerDisplayName = ''; + $owner = \OC::$server->getUserManager()->get($ownerId); + if($owner) { + $ownerDisplayName = $owner->getDisplayName(); + } + + return [ + 'free' => $free, + 'used' => $used, + 'total' => $total, + 'relative' => $relative, + 'owner' => $ownerId, + 'ownerDisplayName' => $ownerDisplayName, + ]; } /**