diff --git a/src/core/components/sites-list/sites-list.html b/src/core/components/sites-list/sites-list.html index d4f3b7e57..b00d973dd 100644 --- a/src/core/components/sites-list/sites-list.html +++ b/src/core/components/sites-list/sites-list.html @@ -40,7 +40,7 @@ - +

{{site.fullname}}

diff --git a/src/core/components/user-avatar/user-avatar.ts b/src/core/components/user-avatar/user-avatar.ts index bdb7bee4c..6c3e137e5 100644 --- a/src/core/components/user-avatar/user-avatar.ts +++ b/src/core/components/user-avatar/user-avatar.ts @@ -14,7 +14,7 @@ import { Component, Input, OnInit, OnChanges, OnDestroy, SimpleChange } from '@angular/core'; -import { CoreSites } from '@services/sites'; +import { CoreSiteBasicInfo, CoreSites } from '@services/sites'; import { CoreUtils } from '@services/utils/utils'; import { CoreEventObserver, CoreEvents } from '@singletons/events'; import { USER_PROFILE_PICTURE_UPDATED, CoreUserBasicData } from '@features/user/services/user'; @@ -22,6 +22,7 @@ import { CoreNavigator } from '@services/navigator'; import { CoreNetwork } from '@services/network'; import { CoreUserHelper } from '@features/user/services/user-helper'; import { CoreUrlUtils } from '@services/utils/url'; +import { CoreSiteInfo } from '@classes/site'; /** * Component to display a "user avatar". @@ -35,7 +36,8 @@ import { CoreUrlUtils } from '@services/utils/url'; }) export class CoreUserAvatarComponent implements OnInit, OnChanges, OnDestroy { - @Input() user?: CoreUserWithAvatar; + @Input() user?: CoreUserWithAvatar; // @todo Fix the accepted type and restrict it a bit. + @Input() site?: CoreSiteBasicInfo | CoreSiteInfo; // Site info contains user info. // The following params will override the ones in user object. @Input() profileUrl?: string; @Input() linkProfile = true; // Avoid linking to the profile if wanted. @@ -71,8 +73,23 @@ export class CoreUserAvatarComponent implements OnInit, OnChanges, OnDestroy { /** * @inheritdoc */ - ngOnInit(): void { - this.siteId = this.siteId || CoreSites.getCurrentSiteId(); + async ngOnInit(): Promise { + this.siteId = this.siteId ?? (this.site && 'id' in this.site + ? this.site.id + : CoreSites.getCurrentSiteId()); + + if (this.site && !this.user) { + this.user = { + id: ('userid' in this.site + ? this.site.userid + : this.site.userId) + ?? (await CoreSites.getSite(this.siteId)).getUserId(), + fullname: this.site.fullname ?? '', + firstname: this.site.firstname ?? '', + lastname: this.site.lastname ?? '', + userpictureurl: this.site.userpictureurl, + }; + } this.setFields(); } @@ -189,4 +206,6 @@ export type CoreUserWithAvatar = CoreUserBasicData & { isonline?: boolean; courseid?: number; lastaccess?: number; + firstname?: string; // The first name(s) of the user. + lastname?: string; // The family name of the user. }; diff --git a/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.html b/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.html index 25ceee8f7..a78a68793 100644 --- a/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.html +++ b/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.html @@ -20,7 +20,7 @@
- +

{{site.fullname}}

diff --git a/src/core/features/login/pages/reconnect/reconnect.html b/src/core/features/login/pages/reconnect/reconnect.html index af0a6e681..dcde5f15f 100644 --- a/src/core/features/login/pages/reconnect/reconnect.html +++ b/src/core/features/login/pages/reconnect/reconnect.html @@ -45,7 +45,7 @@