Skip to content

Commit 11172de

Browse files
committed
Retrieve user status only once when displaying page
We don't need to inject it in the template if the data is already available in the initial state. This is also a bit cleaner. Signed-off-by: Carl Schwan <carl@carlschwan.eu>
1 parent 9c84aa5 commit 11172de

File tree

5 files changed

+9
-22
lines changed

5 files changed

+9
-22
lines changed

apps/user_status/src/menu.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import { getRequestToken } from '@nextcloud/auth'
2727
import UserStatus from './UserStatus'
2828
import store from './store'
2929
import Avatar from '@nextcloud/vue/dist/Components/Avatar'
30+
import { loadState } from '@nextcloud/initial-state'
3031

3132
// eslint-disable-next-line camelcase
3233
__webpack_nonce__ = btoa(getRequestToken())
@@ -35,11 +36,12 @@ Vue.prototype.t = t
3536
Vue.prototype.$t = t
3637

3738
const avatarDiv = document.getElementById('avatardiv-menu')
39+
const userStatusData = loadState('user_status', 'status')
3840
const propsData = {
3941
preloadedUserStatus: {
40-
message: avatarDiv.dataset.userstatus_message,
41-
icon: avatarDiv.dataset.userstatus_icon,
42-
status: avatarDiv.dataset.userstatus,
42+
message: userStatusData.message,
43+
icon: userStatusData.icon,
44+
status: userStatusData.status
4345
},
4446
user: avatarDiv.dataset.user,
4547
displayName: avatarDiv.dataset.displayname,

core/templates/layout.user.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,7 @@
153153
} ?>"
154154
data-user="<?php p($_['user_uid']); ?>"
155155
data-displayname="<?php p($_['user_displayname']); ?>"
156-
<?php if ($_['userStatus'] !== false) { ?>
157-
data-userstatus="<?php p($_['userStatus']->getStatus()); ?>"
158-
data-userstatus_message="<?php p($_['userStatus']->getMessage()); ?>"
159-
data-userstatus_icon="<?php p($_['userStatus']->getIcon()); ?>"
160-
<?php }
156+
<?php
161157
if ($_['userAvatarSet']) {
162158
$avatar32 = $getUserAvatar(32); ?> data-avatar="<?php p($avatar32); ?>"
163159
<?php

dist/user_status-menu.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/user_status-menu.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/private/TemplateLayout.php

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -140,17 +140,6 @@ public function __construct($renderAs, $appId = '') {
140140
} else {
141141
$this->assign('userAvatarSet', true);
142142
$this->assign('userAvatarVersion', $this->config->getUserValue(\OC_User::getUser(), 'avatar', 'version', 0));
143-
if (\OC::$server->get(IAppManager::class)->isEnabledForUser('user_status')) {
144-
$userStatusManager = \OC::$server->get(IUserStatusManager::class);
145-
$userStatuses = $userStatusManager->getUserStatuses([$user->getUID()]);
146-
if (array_key_exists($user->getUID(), $userStatuses)) {
147-
$this->assign('userStatus', $userStatuses[$user->getUID()]);
148-
} else {
149-
$this->assign('userStatus', false);
150-
}
151-
} else {
152-
$this->assign('userStatus', false);
153-
}
154143
}
155144

156145
// check if app menu icons should be inverted

0 commit comments

Comments
 (0)