open-learning-exchange/planet

View on GitHub
src/app/teams/teams-member.component.html

Summary

Maintainability
Test Coverage
<mat-card-header>
  <img mat-card-avatar [src]="member?.avatar" class="cursor-pointer" (click)="openMemberDialog(member)">
  <a mat-card-title class="cursor-pointer" (click)="openMemberDialog(member)">{{ member?.userDoc?.fullName || member?.userDoc?.firstName || member?.name }}</a>
  <mat-card-subtitle>
    <p class="primary-text-color" *ngIf="member?.userPlanetCode !== planetCode"><ng-container i18n>Member of Planet</ng-container> {{member?.userPlanetCode}}</p>
    <span i18n *ngIf="member?.userId === user._id && member?.userPlanetCode === planetCode">(You)</span>{{' '}}
    <span i18n *ngIf="member?.userId === teamLeader?.userId && member?.userPlanetCode === teamLeader?.userPlanetCode">(Team Leader)</span>{{' '}}<span *ngIf="visits">({{ visits?.count || 0 }} <ng-container i18n>visits</ng-container>)</span>
    <p *ngIf="visits && (userStatus === 'member' || user.isUserAdmin)"><ng-container i18n>Last visit:</ng-container> {{ visits?.recentTime | date }}</p>
    <p class="primary-text-color" *ngIf="member?.doc?.leadershipTitle">{{member?.doc?.leadershipTitle}}</p>
    <p class="primary-text-color" *ngIf="member?.role">{{member?.role}}</p>
  </mat-card-subtitle>
  <button *ngIf="actionMenu.length" class="top-right-icon" mat-icon-button [matMenuTriggerFor]="memberMenu">
    <mat-icon>more_vert</mat-icon>
  </button>
  <mat-menu #memberMenu="matMenu">
    <button mat-menu-item (click)="openDialog({ member: member, change: 'remove' })" *ngIf="actionMenu.indexOf('remove') > -1">
      <mat-icon>clear</mat-icon>
      <span i18n>Remove</span>
    </button>
    <button *ngIf="actionMenu.indexOf('leader') > -1"
      (click)="openDialog({ member: member, change: 'leader' })" mat-menu-item>
      <mat-icon>person</mat-icon>
      <span i18n>Make Leader</span>
    </button>
    <button *ngIf="actionMenu.indexOf('title') > -1"
      (click)="openDialog({ member: member, change: 'title' })" mat-menu-item>
      <mat-icon>edit</mat-icon>
      <span *ngIf="memberType === 'community'" i18n>{ titleChangeText, select, Add {Add Title} Change {Change Title}}</span>
      <span *ngIf="memberType === 'other'" i18n>{ hasRole, select, true {Change Role} false {Add Role}}</span>
    </button>
  </mat-menu>
</mat-card-header>
<mat-card-content *ngIf="member?.tasks && member?.tasks.length > 0">
  <span class="mat-caption" i18n>Tasks</span>
  <mat-selection-list (selectionChange)="toggleTask($event)" [disabled]="userStatus !== 'member'" [disableRipple]="userStatus !== 'member'">
    <mat-list-option checkboxPosition="before" *ngFor="let task of member?.tasks" [selected]="task.completed" [value]="task">
      <p class="ellipsis-title">{{task.title}}</p>
    </mat-list-option>
  </mat-selection-list>
</mat-card-content>