Merge pull request #3032 from dpalou/MOBILE-3944
MOBILE-3944 user: Link interests with tags pagemain
commit
90298ee327
|
@ -1,3 +1,3 @@
|
||||||
<ng-container *ngFor="let tag of tags">
|
<ng-container *ngFor="let tag of tags">
|
||||||
<ion-badge (click)="openTag(tag)" class="core-tag-list-tag">{{ tag.rawname }}</ion-badge>
|
<ion-badge (click)="openTag(tag)" class="core-tag-list-tag" role="link">{{ tag.rawname }}</ion-badge>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
|
@import "~theme/globals";
|
||||||
|
|
||||||
:host {
|
:host {
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
|
|
||||||
ion-badge {
|
ion-badge {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@include margin-horizontal(4px, 4px);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,10 +94,12 @@
|
||||||
</a></p>
|
</a></p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
<ion-item class="ion-text-wrap" *ngIf="user.interests">
|
<ion-item class="ion-text-wrap" *ngIf="interests" class="core-user-profile-interests">
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<h2>{{ 'core.user.interests' | translate}}</h2>
|
<h2>{{ 'core.user.interests' | translate}}</h2>
|
||||||
<p>{{ user.interests }}</p>
|
<ion-badge *ngFor="let interest of interests" role="link" (click)="openInterest(interest)">
|
||||||
|
{{ interest }}
|
||||||
|
</ion-badge>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
<core-user-profile-field *ngFor="let field of user.customfields" [field]="field" contextLevel="course"
|
<core-user-profile-field *ngFor="let field of user.customfields" [field]="field" contextLevel="course"
|
||||||
|
|
|
@ -49,6 +49,7 @@ export class CoreUserAboutPage implements OnInit, OnDestroy {
|
||||||
formattedAddress?: string;
|
formattedAddress?: string;
|
||||||
encodedAddress?: SafeUrl;
|
encodedAddress?: SafeUrl;
|
||||||
canChangeProfilePicture = false;
|
canChangeProfilePicture = false;
|
||||||
|
interests?: string[];
|
||||||
|
|
||||||
protected userId!: number;
|
protected userId!: number;
|
||||||
protected site!: CoreSite;
|
protected site!: CoreSite;
|
||||||
|
@ -107,6 +108,10 @@ export class CoreUserAboutPage implements OnInit, OnDestroy {
|
||||||
this.encodedAddress = CoreTextUtils.buildAddressURL(this.formattedAddress);
|
this.encodedAddress = CoreTextUtils.buildAddressURL(this.formattedAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.interests = user.interests ?
|
||||||
|
user.interests.split(',').map(interest => interest.trim()) :
|
||||||
|
undefined;
|
||||||
|
|
||||||
this.hasContact = !!(user.email || user.phone1 || user.phone2 || user.city || user.country || user.address);
|
this.hasContact = !!(user.email || user.phone1 || user.phone2 || user.city || user.country || user.address);
|
||||||
this.hasDetails = !!(user.url || user.interests || (user.customfields && user.customfields.length > 0));
|
this.hasDetails = !!(user.url || user.interests || (user.customfields && user.customfields.length > 0));
|
||||||
|
|
||||||
|
@ -250,6 +255,17 @@ export class CoreUserAboutPage implements OnInit, OnDestroy {
|
||||||
return avatarUrl;
|
return avatarUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open a user interest.
|
||||||
|
*
|
||||||
|
* @param interest Interest name.
|
||||||
|
*/
|
||||||
|
openInterest(interest: string): void {
|
||||||
|
CoreNavigator.navigateToSitePath('/tag/index', { params: {
|
||||||
|
tagName: interest,
|
||||||
|
} });
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
@import "~theme/globals";
|
||||||
|
|
||||||
:host {
|
:host {
|
||||||
|
|
||||||
.core-user-profile-maininfo::part(native) {
|
.core-user-profile-maininfo::part(native) {
|
||||||
|
@ -36,6 +38,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.core-user-profile-interests {
|
||||||
|
ion-badge {
|
||||||
|
cursor: pointer;
|
||||||
|
@include margin-horizontal(3px, 3px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
:host-context([dir="rtl"]) ::ng-deep core-user-avatar .edit-avatar {
|
:host-context([dir="rtl"]) ::ng-deep core-user-avatar .edit-avatar {
|
||||||
|
|
|
@ -68,6 +68,7 @@ export class CoreUserTagAreaHandlerService implements CoreTagAreaHandler {
|
||||||
avatarUrl,
|
avatarUrl,
|
||||||
heading: userbox.innerText,
|
heading: userbox.innerText,
|
||||||
details: [],
|
details: [],
|
||||||
|
url: profileUrl,
|
||||||
user: {
|
user: {
|
||||||
id: Number(match[1]),
|
id: Number(match[1]),
|
||||||
profileimageurl: avatarUrl || '',
|
profileimageurl: avatarUrl || '',
|
||||||
|
|
Loading…
Reference in New Issue