diff options
author | Carl Schwan <carl@carlschwan.eu> | 2021-10-13 12:13:17 +0200 |
---|---|---|
committer | Carl Schwan <carl@carlschwan.eu> | 2021-10-15 20:57:58 +0200 |
commit | 134167ef3f84e6a2b9906065304f48c04d070392 (patch) | |
tree | acfc581e22e3289aa53a752aa75745997651ef60 /lib | |
parent | b585cf1ea1baeb7bbfaf22953e48bbd33e8381fa (diff) | |
download | nextcloud-server-134167ef3f84e6a2b9906065304f48c04d070392.tar.gz nextcloud-server-134167ef3f84e6a2b9906065304f48c04d070392.zip |
Add current status in navbar
This ports the code to vue and if the user_status app is disabled this
goes back to the previous behavior.
The Avatar vue components detects changes of the status automatically.
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/TemplateLayout.php | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 16d4423838b..a620b9fdac3 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -47,6 +47,7 @@ use OC\Search\SearchQuery; use OC\Template\JSCombiner; use OC\Template\JSConfigHelper; use OC\Template\SCSSCacher; +use OCP\App\IAppManager; use OCP\AppFramework\Http\TemplateResponse; use OCP\Defaults; use OCP\IConfig; @@ -54,6 +55,7 @@ use OCP\IInitialStateService; use OCP\INavigationManager; use OCP\IUserSession; use OCP\Support\Subscription\IRegistry; +use OCP\UserStatus\IManager as IUserStatusManager; use OCP\Util; class TemplateLayout extends \OC_Template { @@ -131,11 +133,23 @@ class TemplateLayout extends \OC_Template { $this->assign('user_displayname', $userDisplayName); $this->assign('user_uid', \OC_User::getUser()); - if (\OC_User::getUser() === false) { + if ($user === null) { $this->assign('userAvatarSet', false); + $this->assign('userStatus', false); } else { $this->assign('userAvatarSet', true); $this->assign('userAvatarVersion', $this->config->getUserValue(\OC_User::getUser(), 'avatar', 'version', 0)); + if (\OC::$server->get(IAppManager::class)->isEnabledForUser('user_status')) { + $userStatusManager = \OC::$server->get(IUserStatusManager::class); + $userStatuses = $userStatusManager->getUserStatuses([$user->getUID()]); + if (array_key_exists($user->getUID(), $userStatuses)) { + $this->assign('userStatus', $userStatuses[$user->getUID()]); + } else { + $this->assign('userStatus', false); + } + } else { + $this->assign('userStatus', false); + } } // check if app menu icons should be inverted |