summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2021-10-13 12:13:17 +0200
committerCarl Schwan <carl@carlschwan.eu>2021-10-15 20:57:58 +0200
commit134167ef3f84e6a2b9906065304f48c04d070392 (patch)
treeacfc581e22e3289aa53a752aa75745997651ef60 /lib
parentb585cf1ea1baeb7bbfaf22953e48bbd33e8381fa (diff)
downloadnextcloud-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.php16
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